Který kód je lepší?

Youda

Re:Který kód je lepší?
« Odpověď #45 kdy: 31. 07. 2017, 15:07:17 »
Nikdy nepouzivaj third party kniznice na taketo trivialne KOKOTINY. To snad uz medzi nami nie su ziadni programatori, iba lepici? Vsak kazda kniznica ti len nabobtna aplikaciu a zvysuje riziko zanesenia chyby.

Kód: [Vybrat]
var connectionString = ConfigurationManager.ConnectionStrings[new HashSet(args).Contains("-p") ? "connstr2" : "connstr1"].ConnectionString;

Dobra komedie to tu cist.
Tvuj exampl je prvni normalni a pro jednoucelovou utilitku OK.

Pro program, ktery ma byt dlohodobe udrzovany ale rozhodne nejakou java getopt() variantu.

Do pom.xml pridat dependenci na JCommander a do main class par atributu s @Parameter anotaci.

Tady je exampl z http://jcommander.org/

Kód: [Vybrat]
class Main {
    @Parameter(names={"--length", "-l"})
    int length;
    @Parameter(names={"--pattern", "-p"})
    int pattern;

    public static void main(String ... argv) {
        Main main = new Main();
        JCommander.newBuilder()
            .addObject(main)
            .build()
            .parse(argv);
        main.run();
    }

    public void run() {
        System.out.printf("%d %d", length, pattern);
    }
}

Tohle je reseni nas zoufalych lepicu, nadherne citelny kod rizeny pouze anotacemi.
Este ze na rootu je tolik expertu, clovek zasne a skvele se bavi.


lopata

Re:Který kód je lepší?
« Odpověď #46 kdy: 31. 07. 2017, 15:29:32 »
Nikdy nepouzivaj third party kniznice na taketo trivialne KOKOTINY. To snad uz medzi nami nie su ziadni programatori, iba lepici? Vsak kazda kniznica ti len nabobtna aplikaciu a zvysuje riziko zanesenia chyby.

Kód: [Vybrat]
var connectionString = ConfigurationManager.ConnectionStrings[new HashSet(args).Contains("-p") ? "connstr2" : "connstr1"].ConnectionString;

Dobra komedie to tu cist.
Ano.

Tvuj exampl je prvni normalni a pro jednoucelovou utilitku OK.
Tak se zkuste oba zamyslet, co to udělá (a co by to mělo udělat), když to spustím jako:
Kód: [Vybrat]
program -p foo -p bar

Pro program, ktery ma byt dlohodobe udrzovany ale rozhodne nejakou java getopt() variantu.
To není Java, ale C# ;)

bohous

Re:Který kód je lepší?
« Odpověď #47 kdy: 31. 07. 2017, 15:39:16 »
ja to rikal, zadna knihovna, proc pak. tady mrdnici budou doporucovat knihovna, my god!

Kit

Re:Který kód je lepší?
« Odpověď #48 kdy: 31. 07. 2017, 16:24:05 »
Zdar lidi. Chci se zeptat. Mam 2 ukazky kodu a chci se zeptat, ktera je lepsi:
Je jsem delal kod prvni. Nevim kdo, nejspis teamliiidr, to prepsal do tvaru 2.
Co si myslite?

V tom prvním je logická chyba. Do stringu uložíš nějakou hodnotu a pokud je zadán parametr "-p", přepíšeš ji jinou hodnotou. Pokud je connStr immutable, nebude to fungovat. Druhé řešení je tedy lepší, i když by se dalo zjednodušit a hlavně zpřehlednit nebo alespoň přeformárovat zdroják.

bohous

Re:Který kód je lepší?
« Odpověď #49 kdy: 31. 07. 2017, 16:50:38 »
jiste ze string je immutable, to je logicke.


Aoidhghean

Re:Který kód je lepší?
« Odpověď #50 kdy: 31. 07. 2017, 17:08:35 »
A jsme doma... takže žádnej teamliiidr, ale učitel ti dal špatnou známku... a oprávněně :D Tak ve škole vyřiď, že by jsi potřeboval ještě trojku z chování, ju?
Ale no tak, retardovaným dětem bychom se neměli posmívat  ;)

Kit

Re:Který kód je lepší?
« Odpověď #51 kdy: 31. 07. 2017, 17:34:07 »
jiste ze string je immutable, to je logicke.

Když je immutable, tak proč se ho snažíš přepsat? Zbytečně generuješ žrádlo pro GC.

erik80

Re:Který kód je lepší?
« Odpověď #52 kdy: 31. 07. 2017, 18:17:30 »
ja som len taky amater ale nemala by sa urobit aj nejaka kontrola s regexp na ten zadany connectionStr?

bohous

Re:Který kód je lepší?
« Odpověď #53 kdy: 31. 07. 2017, 18:20:13 »
jiste ze string je immutable, to je logicke.

Když je immutable, tak proč se ho snažíš přepsat? Zbytečně generuješ žrádlo pro GC.
no jo vidis to! diky

Kit

Re:Který kód je lepší?
« Odpověď #54 kdy: 31. 07. 2017, 18:29:26 »
ja som len taky amater ale nemala by sa urobit aj nejaka kontrola s regexp na ten zadany connectionStr?

To má přece na starosti
Kód: [Vybrat]
ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString

erik80

Re:Který kód je lepší?
« Odpověď #55 kdy: 31. 07. 2017, 19:09:14 »
ja som len taky amater ale nemala by sa urobit aj nejaka kontrola s regexp na ten zadany connectionStr?

To má přece na starosti
Kód: [Vybrat]
ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString

nerozumiem, kde je tam regexp?

komunista

Re:Který kód je lepší?
« Odpověď #56 kdy: 31. 07. 2017, 19:24:27 »
skoda ze se na skolach neuci lepe o Leninovy, ktery rikaval: "Ucit se, ucit se, ucit se." Teraz tady mame lopaty, opice a nevzdelance. Prohnitej zapad!!! Reknu Vam, pred 89 to byly casy. Programovani bylo o necem jinym jako ted.

Kit

Re:Který kód je lepší?
« Odpověď #57 kdy: 31. 07. 2017, 19:26:26 »
Kód: [Vybrat]
ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString

nerozumiem, kde je tam regexp?

Ne, je tam getter.

Ten řádek je sice šílenost, kterou bych takhle určitě nenapsal, ale fukční to zřejmě bude.

UF

Re:Který kód je lepší?
« Odpověď #58 kdy: 31. 07. 2017, 19:34:09 »
ja som len taky amater ale nemala by sa urobit aj nejaka kontrola s regexp na ten zadany connectionStr?

... ne - tady uz je na vsechny kontroly pozde ...

bohous

Re:Který kód je lepší?
« Odpověď #59 kdy: 31. 07. 2017, 19:38:42 »
Kód: [Vybrat]
ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString

nerozumiem, kde je tam regexp?

Ne, je tam getter.

Ten řádek je sice šílenost, kterou bych takhle určitě nenapsal, ale fukční to zřejmě bude.
silenost? vzdyt to je implementace frameworku