Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: bohous 31. 07. 2017, 09:22:27

Název: Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 09:22:27
Zdar lidi. Chci se zeptat. Mam 2 ukazky kodu a chci se zeptat, ktera je lepsi:
1.
Kód: [Vybrat]
var connStr = ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString;
            if (args.Length == 1)
            {
                switch (args[0])
                {
                    case "-p":
                        connStr = ConfigurationManager.ConnectionStrings["connstr2"].ConnectionString;
                        break;
                    default:
                        Console.WriteLine("wrong");
                        Console.ReadKey();
                        return;
                }
            }
2.
Kód: [Vybrat]
string connStr;
switch (args.Length)
{
case 0:
connStr= ConfigurationManager.ConnectionStrings["connStr1"].ConnectionString;
break;

case 1:
switch (args[0])
{
case "-p":
connectionString = ConfigurationManager.ConnectionStrings["connstr2"].ConnectionString;
break;

default:
InvalidArg();
return;
}
break;

default:
InvalidArg();
return;
}

Je jsem delal kod prvni. Nevim kdo, nejspis teamliiidr, to prepsal do tvaru 2.
Co si myslite?
Název: Re:Který kód je lepší?
Přispěvatel: PsychoIT 31. 07. 2017, 09:57:47
Nejspíše dva kandidáti na příspěvek na hovnokod.cz 8).
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 10:01:06
s cim mas konkretne problem debile? umis to zapsat lepe? tak do toho
Název: Re:Který kód je lepší?
Přispěvatel: LP 31. 07. 2017, 10:05:06
Nelíbí se mi tak úplně ani jeden. Mimochodem není to Length, ale length, takže ta podmínka nebude platit nikdy(pokud to není nějaká custom vlastnost). Druhá varianta je možná o něco lepší v případě, že se očekává rozšiřování o další parametry. Ale to je čistě "tahání za slovíčka", přepsat to z ifu na switch nebo obráceně je myslím ten nejmenší problém a osobně bych to asi řešil, až se tam opravdu budou přidávat parametry. Ale z kousku kódu těžko soudit... Každopádně v návrhu aplikace jsou vždycky podstatnější věci k řešení, než ify a switche...
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 10:11:49
podstata je, ze jde o konzolovou aplikaci, ktera kdyz ma prepinac -p, tak se pouzije nejakej connection string. kdyz se nezada prepinac, tak je pouzitej nejakej default connection string. Ja mam default connectionstring jeste pred podminkou. jine prepinace tam nebudou.
Název: Re:Který kód je lepší?
Přispěvatel: Tuxik 31. 07. 2017, 10:34:41
Druhej je lepší, teda kromě toho, že má nějaký rozprasený formátování, protože řeší i zadání více argumentů, což je v tomto případě evidentně chyba.
Vzít výchozí hodnotu a vzápětí ji podmíněně změnit mi taky nepřijde úplně hezký - v tomto případě úplně zbytečný a matoucí.
Nicméně bych tak nějak očekával, že parsování argumentů budou mít vývojáři vychytanější a ne že jej budou řešit takhle jednoúčelově.
Název: Re:Který kód je lepší?
Přispěvatel: Ondra. 31. 07. 2017, 10:35:49
ten 2. je o fous lepsi, protoze je to  konzistentenjsi... nicmene je to jedno, protoze je to humus tak jako tak. Pro zpracovani parametru prikazove radky existuje 1000+1 knihoven, neni duvod to psat znovu.
Název: Re:Který kód je lepší?
Přispěvatel: lopata 31. 07. 2017, 10:37:50
Přepsal ti to, protože to máš blbě. Co asi tak ta první varianta udělá, když tu aplikaci zavolám jako?
Kód: [Vybrat]
program -p server -foo

Mimochodem psát si parsování command line je klasický not in house syndrom.
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 10:39:39
1000+1 knihoven, neni duvod to psat znovu.
mam dotahnout kanon na vrabce? jde o jednoucelovou aplikaci, neni duvod resit parsovani parametru jeste pomoci knihovny. Proc bych to proboha delal? Nevim jak to delate vy, asi naprogramujete i to, co se od vas nevyzaduje. vic parametru neni potreba resit. je jenom jeden parametr.
Název: Re:Který kód je lepší?
Přispěvatel: lopata 31. 07. 2017, 10:43:25
mam dotahnout kanon na vrabce? jde o jednoucelovou aplikaci, neni duvod resit parsovani parametru jeste pomoci knihovny. Proc bych to proboha delal? Nevim jak to delate vy, asi naprogramujete i to, co se od vas nevyzaduje. vic parametru neni potreba resit. je jenom jeden parametr.

Protože ta knihovna bude narozdíl od tvého řešení odladěná a bez chyb. Víc parametrů bude potřeba řešit hned v další iteraci, věř tomu. S knihovnou to navíc budeš mít hotové rychleji. Člověk, který to po tobě převezme, tě nebude proklínat, protože pracovat se známou knihovnou je mnohem jednodušší, než se hrabat ve tvém prasokódu.
Název: Re:Který kód je lepší?
Přispěvatel: Ivan Nový 31. 07. 2017, 10:44:59
1000+1 knihoven, neni duvod to psat znovu.
mam dotahnout kanon na vrabce? jde o jednoucelovou aplikaci, neni duvod resit parsovani parametru jeste pomoci knihovny. Proc bych to proboha delal? Nevim jak to delate vy, asi naprogramujete i to, co se od vas nevyzaduje. vic parametru neni potreba resit. je jenom jeden parametr.

A kolik parametrů bude potřeba za 3 roky?
Název: Re:Který kód je lepší?
Přispěvatel: Tuxik 31. 07. 2017, 10:46:13
mam dotahnout kanon na vrabce? jde o jednoucelovou aplikaci, neni duvod resit parsovani parametru jeste pomoci knihovny. Proc bych to proboha delal? Nevim jak to delate vy, asi naprogramujete i to, co se od vas nevyzaduje. vic parametru neni potreba resit. je jenom jeden parametr.
Kanón na vrabce bych nebral, ale vzhledem k tomu, že jsi to na těch 14 řádcích dokázal zprasit, možná by nějaké vyladěné univerzální řešení bylo lepší a ušetřilo by ti starosti.
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 10:47:28
To jako vazne??? Ta aplikace se dal rozsirovat nebude, i ted nema poradne zadnej vyznam. Kdyz si dotahnu na vsechno knihovnu, tak jednoducha aplikace bude mit ne 500kb, ale 5mb nebo vic. A kdyz neni potreba osetrovat vic parametru, co je 100% jisty, tak snad nebudu nad tim uvazovat
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 10:48:16
Novej, ani jeden. Protoze ta aplikace se mozna pouzije ani ne 5x.
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 10:49:48
mam dotahnout kanon na vrabce? jde o jednoucelovou aplikaci, neni duvod resit parsovani parametru jeste pomoci knihovny. Proc bych to proboha delal? Nevim jak to delate vy, asi naprogramujete i to, co se od vas nevyzaduje. vic parametru neni potreba resit. je jenom jeden parametr.
Kanón na vrabce bych nebral, ale vzhledem k tomu, že jsi to na těch 14 řádcích dokázal zprasit, možná by nějaké vyladěné univerzální řešení bylo lepší a ušetřilo by ti starosti.
Zprasit? Proc myslis? Mel jsme pouzit knihovnu? Ne, neni to zapotrebi. Nemel jsem jeste udelat to vic OOP jak je zvykem se na rootu bavit o OOP?
Název: Re:Který kód je lepší?
Přispěvatel: dustin 31. 07. 2017, 10:50:13
podstata je, ze jde o konzolovou aplikaci, ktera kdyz ma prepinac -p, tak se pouzije nejakej connection string. kdyz se nezada prepinac, tak je pouzitej nejakej default connection string.

Zde jsi popsal pravidla pro nastaveni connection stringu. Zatímco tvůj kód:

Citace
Ja mam default connectionstring jeste pred podminkou.

Takže tvůj algoritmus je jiný. Při čtení kódu si musím pamatovat, že na začátku už je nastavený default, takže princip je opačný, než jsi to sám vyjádřil vlastními slovy.

Osobně bych to dal do funkce třeba determineConnectionString() a při zjištění connection stringu bych jej rovnou vracel returnem. Ale někdo má rád v metodě jenom jeden return, proč ne.

Citace
jine prepinace tam nebudou.

Tipnul bych si, že časem budou. Je to tak snad vždycky.

Jenom pár drobností mimo dotaz:

* Váš systém na správu zdrojáků nepodporuje blame, kde bys rovnou viděl, kdo změnil příslušný kód?

* Pokud je connstr1 klíč k defaultnímu a connstr2 klíč k nějakému speciálnímu connection stringu, proč se klíče nejmenují rovnou "defaultconnstr" a třeba "customconnstr"? Čísla 1 a 2 nemají žádný význam, narozdíl od konkrétního názvu. Zdá se to jako blbost, ale správné významové pojmenování je úplně zásadní a ušetří spoustu chyb.
Název: Re:Který kód je lepší?
Přispěvatel: lopata 31. 07. 2017, 10:53:50
Zprasit? Proc myslis? Mel jsme pouzit knihovnu? Ne, neni to zapotrebi. Nemel jsem jeste udelat to vic OOP jak je zvykem se na rootu bavit o OOP?

Podívej, to tvoje řešení je úplně blbě, to neokecáš. Když zadáš nějaký parametr navíc, tak se -p tiše ignoruje a použije se default. Proto ti to teamleader přepsal. Kdybys použil knihovnu, je menší pravděpodobnost, že to dokážeš takhle doprasit. Trochu sebereflexe by neškodilo.
Název: Re:Který kód je lepší?
Přispěvatel: Tuxik 31. 07. 2017, 10:55:48
Tak nad tím neuvažuj vůbec a dej tam
Kód: [Vybrat]
string connStr;
if (args.length == 1 && args[0] == "-p")
    {
        connStr = ConfigurationManager.ConnectionStrings["connstr2"].ConnectionString;
    } else {
        connStr = ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString;
    }
Máš to kratší a ještě víc jednoúčelový.
Název: Re:Který kód je lepší?
Přispěvatel: Tuxik 31. 07. 2017, 11:00:12
Zprasit? Proc myslis? Mel jsme pouzit knihovnu? Ne, neni to zapotrebi. Nemel jsem jeste udelat to vic OOP jak je zvykem se na rootu bavit o OOP?
Ne, není to o knihovně, je to o tom, že ignoruješ chyby zadání parametrů a to se ti jednoho krásnýho dne vymstí. Není to o téhle jedné aplikaci, které se použije 5x a z toho 3x při jejím testování, je to obecný problém, na který dojedeš. Opravil ti to správně, i když to není žádná krása, aspoň to funguje.
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 11:01:11
no jo mate pravdu. jenomze osobne resit knihovnu mi tady neprijde vhodny. aplikace je urcena jenom jednoucelove, export dat z db do souboru, coz se dalo udelat i pomoci sql a bcp utilitky. ne to nemuzu, mi bylo receno, protoze xp_cmdshell neni povolen. tak jsem spravil tuhle appku.
Název: Re:Který kód je lepší?
Přispěvatel: Ivan Nový 31. 07. 2017, 11:01:15
Novej, ani jeden. Protoze ta aplikace se mozna pouzije ani ne 5x.

Pak ale nemá smysl zabývat se optimalitou nebo krásou kódu a použití knihovny je na místě, jak bude výsledek velký je v tomto případě jedno, protože se použije jen 5x a naprogramované to bude rychleji. Přitom se ještě tu knihovnu naučíte, což v budoucnosti jistě zvýší vaši produktivitu.

To, že nemáte standardy na psaní CLI je chyba, ale ne vaše.

Jinak podobné skripty se aplikací pomocí copy&paste šíří jako mor.
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 11:05:14
kdyz najdu knihovnu, vyzkousim ji, tak rychleji je to takle jak to mam naspany.
Název: Re:Který kód je lepší?
Přispěvatel: Ivan Nový 31. 07. 2017, 11:07:14
Tak nad tím neuvažuj vůbec a dej tam
Kód: [Vybrat]
string connStr;
if (args.length == 1 && args[0] == "-p")
    {
        connStr = ConfigurationManager.ConnectionStrings["connstr2"].ConnectionString;
    } else {
        connStr = ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString;
    }
Máš to kratší a ještě víc jednoúčelový.

A úplně neprůstřelné a připravené k rozšíření:
Kód: [Vybrat]
   for(var i in args) {
        if (args[i] == '-p')
           connStr = ConfigurationManager.ConnectionStrings["connstr2"].ConnectionString;
        else
           connStr = ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString;
   }
Název: Re:Který kód je lepší?
Přispěvatel: lopata 31. 07. 2017, 11:13:51
kdyz najdu knihovnu, vyzkousim ji, tak rychleji je to takle jak to mam naspany.

Tak si do toho započítej čas teamleadera, který to musel zbytečně studovat a fixovat. Ve výsledku to bez knihovny není rychlejší.
Název: Re:Který kód je lepší?
Přispěvatel: Tuxik 31. 07. 2017, 11:15:09
A úplně neprůstřelné a připravené k rozšíření:
Kód: [Vybrat]
   for(var i in args) {
        if (args[i] == '-p')
           connStr = ConfigurationManager.ConnectionStrings["connstr2"].ConnectionString;
        else
           connStr = ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString;
   }
a chybu tam máme oba, do toho ifu patří args[0].equals("-p")
Název: Re:Který kód je lepší?
Přispěvatel: Kryštof 31. 07. 2017, 11:19:38
kdyz najdu knihovnu, vyzkousim ji, tak rychleji je to takle jak to mam naspany.

Proč se vlastně tady ptáš, když žádná odpověď Ti není dost dobrá. Každé začátky jsou těžké a trocha pokory by chlapče neškodila.
Název: Re:Kterej kod je lepsi
Přispěvatel: bohous 31. 07. 2017, 11:48:08
zacatky? rofl. ja uz delam nekolik let vyvojare a za ne-maly penize.  8)
Název: Re:Kterej kod je lepsi
Přispěvatel: Kryštof 31. 07. 2017, 11:58:23
zacatky? rofl. ja uz delam nekolik let vyvojare a za ne-maly penize.  8)
Pak se Ti hluboce omlouvám, z toho kódu to nebylo poznat.
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 12:02:45
to byl jenom test, kde se ukazalo, jaki kokoti existuji na rootu. se divim, ze jeste nikdo nerekl, nech to udelam v lispu a ze to neni OOP
Název: Re:Který kód je lepší?
Přispěvatel: Kiwi 31. 07. 2017, 12:05:07
to byl jenom test, kde se ukazalo, jaki kokoti existuji na rootu. se divim, ze jeste nikdo nerekl, nech to udelam v lispu a ze to neni OOP

Tak sem nechoď a bude tu o kokota méně.
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 12:13:11
je vas tu dost.
Název: Re:Který kód je lepší?
Přispěvatel: Kate 31. 07. 2017, 12:21:38
Bože, „Já nejsem blbec, já vás jen tak zkouším“ je snad ještě profláklejší výmluva než „pes mi snědl domácí úkol“

Přestaň už, ztrapňuješ se čím dál tím víc.
Název: Re:Který kód je lepší?
Přispěvatel: Tuxik 31. 07. 2017, 12:30:32
Tak to prosím předělej do LISPu a objektově, ať se nenudíš, ju?
Název: Re:Který kód je lepší?
Přispěvatel: Trupik 31. 07. 2017, 12:32:31
...
A úplně neprůstřelné a připravené k rozšíření:
Kód: [Vybrat]
   for(var i in args) {
        if (args[i] == '-p')
           connStr = ConfigurationManager.ConnectionStrings["connstr2"].ConnectionString;
        else
           connStr = ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString;
   }
Nepriestrelné? Naozaj?
Aký bude výsledný connStr pri tomto volaní:
Kód: [Vybrat]
program -p -o debug
Název: Re:Který kód je lepší?
Přispěvatel: Tuxik 31. 07. 2017, 12:39:48
Nepriestrelné? Naozaj?
Aký bude výsledný connStr pri tomto volaní:
Kód: [Vybrat]
program -p -o debug
A ty nevíš, že -p musí být poslední parametr neprůstřelného řešení, abys ho neprostřelil? To je snad logický... -p, neboli --poslední_parametr
Název: Re:Který kód je lepší?
Přispěvatel: Ivan Nový 31. 07. 2017, 13:33:50
...
A úplně neprůstřelné a připravené k rozšíření:
Kód: [Vybrat]
   for(var i in args) {
        if (args[i] == '-p')
           connStr = ConfigurationManager.ConnectionStrings["connstr2"].ConnectionString;
        else
           connStr = ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString;
   }
Nepriestrelné? Naozaj?
Aký bude výsledný connStr pri tomto volaní:
Kód: [Vybrat]
program -p -o debug

Ano máte pravdu, ještě je tam třeba přidat pravidlo:
Kód: [Vybrat]
   var connStr = null;
   for(var i in args) {
        if (args[i] == '-p')
          connStr = ConfigurationManager.ConnectionStrings["connstr2"].ConnectionString;
   }
   if (connStr == null)
       connStr = ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString;
Název: Re:Který kód je lepší?
Přispěvatel: Aznut 31. 07. 2017, 13:44:40
Ani jeden, ako pisali iny treba kniznicu na parsovanie.
Ale . . ..
Ano treba pouzit kniznicu.
Druhy sa lahsie cita, ale ano treba pouzit kniznicu.
Napr. https://wiki.apache.org/commons/CLI/dotnet, alebo co sa paci, je politika vo firme, ....
Název: Re:Který kód je lepší?
Přispěvatel: Deacon Frost 31. 07. 2017, 13:56:09
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;
Název: Re:Který kód je lepší?
Přispěvatel: Tuxik 31. 07. 2017, 14:06:07
vzdyt to rikam. jenom tady na rootu ti budou kokoti rikat, ze je lepsi knihovna. a v jinym vlakne budou neco rikat o lopatach a lepicich kodu. proste schizofrenie.
To není schizofrenie. Programátor si to napíše sám rychleji, než vůbec najde tu správnou knihovnu a bude mu to fungovat. Opičák/lepič kódu (ano, mluvím o tobě - to co jsi nám předvedl dokonale odpovídá) by raději měl použít knihovnu, aby nenadělal svým myšlením víc škody, než užitku.
Název: Re:Který kód je lepší?
Přispěvatel: Ivan Nový 31. 07. 2017, 14:08:28
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;
A to je pěkné.
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 14:09:41
ted jsi jenom obycejnej lepic webuuu.
Název: Re:Který kód je lepší?
Přispěvatel: Tuxik 31. 07. 2017, 14:30:31
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?
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 14:57:08
jo a proto me plati 100 000kc mesicne, ty lopato ;)
Název: Re:Který kód je lepší?
Přispěvatel: TeamLeader 31. 07. 2017, 15:00:44
Bohus - precital som si Vase prispevky a myslim ze som Vas  celkom pekne identifikoval.
Takze zajtra rano o 9:30 v mojej kancelarii a pohovorime si o tom ako sa prezentujete + celu nasu firmu.
Popravde problem s Vami mame uz nieaky ten piatok a Vas prejav ako aj dosiahnute vysledky nebudeme uz dalej tolerovat. Uz nam je jasne preco menite zamestnanie kazdych 6 mesiacov. Nemyslim si ,ze to bude preto ,ze tak isto ako aj vo vasom byvalom zamestani su vasi kolegovia "kokoti".
Ostatnym sa ospravedlnujem za slovnik naseho "ex-zamestnanca"

S pozdravom TeamLeader
Název: Re:Který kód je lepší?
Přispěvatel: PsychoIT 31. 07. 2017, 15:02:37
Jsem myslel že děti teď mají ve škole prázdniny, hehe ;D.

Ten kód opravený teamleaderm je vlastně v pořádku, bavíme-li se o korporátu. Důležité je že to funguje správně, řeší to problém zákazníka, a navíc jak každý správný projekťák potvrdí:
Citace
Pokud je hovínko v krabičce, tak nesmrdí!
.

Jestlipak víte, ve které firmě vznikl výše ^^^ uvedený citát? Napovím že mají na svědomí Yui framework... :D.
Název: Re:Který kód je lepší?
Přispěvatel: Youda 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.
Název: Re:Který kód je lepší?
Přispěvatel: lopata 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# ;)
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 15:39:16
ja to rikal, zadna knihovna, proc pak. tady mrdnici budou doporucovat knihovna, my god!
Název: Re:Který kód je lepší?
Přispěvatel: Kit 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.
Název: Re:Který kód je lepší?
Přispěvatel: bohous 31. 07. 2017, 16:50:38
jiste ze string je immutable, to je logicke.
Název: Re:Který kód je lepší?
Přispěvatel: Aoidhghean 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  ;)
Název: Re:Který kód je lepší?
Přispěvatel: Kit 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.
Název: Re:Který kód je lepší?
Přispěvatel: erik80 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?
Název: Re:Který kód je lepší?
Přispěvatel: bohous 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
Název: Re:Který kód je lepší?
Přispěvatel: Kit 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
Název: Re:Který kód je lepší?
Přispěvatel: erik80 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?
Název: Re:Který kód je lepší?
Přispěvatel: komunista 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.
Název: Re:Který kód je lepší?
Přispěvatel: Kit 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.
Název: Re:Který kód je lepší?
Přispěvatel: UF 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 ...
Název: Re:Který kód je lepší?
Přispěvatel: bohous 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
Název: Re:Který kód je lepší?
Přispěvatel: UF 31. 07. 2017, 19:40:20
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

ze kteryho blazince si proboha utekl?
Název: Re:Který kód je lepší?
Přispěvatel: Kit 31. 07. 2017, 19:42:33
Ten řádek je sice šílenost, kterou bych takhle určitě nenapsal, ale fukční to zřejmě bude.
silenost? vzdyt to je implementace frameworku

Tak tedy šílenost šíleného frameworku.
Název: Re:Který kód je lepší?
Přispěvatel: phpmatlator 31. 07. 2017, 19:46:40
Už tu chýbal len tento PHP-čkarsky rozumbrada.
Název: Re:Který kód je lepší?
Přispěvatel: UF 31. 07. 2017, 19:52:15
zboj se omlouva - dnes nedorazi - ztratil se na akademicke půdě
Název: Re:Který kód je lepší?
Přispěvatel: Kit 31. 07. 2017, 19:59:34
zboj se omlouva - dnes nedorazi - ztratil se na akademicke půdě

Neva, kdyby se ztratil ve sklepě, bylo by to horší.
Název: Re:Který kód je lepší?
Přispěvatel: hawran diskuse 31. 07. 2017, 20:25:32
... a pak někdo zadá tajnou volbu -6...