Který kód je lepší?

dustin

Re:Který kód je lepší?
« Odpověď #15 kdy: 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.


lopata

Re:Který kód je lepší?
« Odpověď #16 kdy: 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.

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Který kód je lepší?
« Odpověď #17 kdy: 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ý.

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Který kód je lepší?
« Odpověď #18 kdy: 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.

bohous

Re:Který kód je lepší?
« Odpověď #19 kdy: 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.


Ivan Nový

Re:Který kód je lepší?
« Odpověď #20 kdy: 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.

bohous

Re:Který kód je lepší?
« Odpověď #21 kdy: 31. 07. 2017, 11:05:14 »
kdyz najdu knihovnu, vyzkousim ji, tak rychleji je to takle jak to mam naspany.

Ivan Nový

Re:Který kód je lepší?
« Odpověď #22 kdy: 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;
   }

lopata

Re:Který kód je lepší?
« Odpověď #23 kdy: 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ší.

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Který kód je lepší?
« Odpověď #24 kdy: 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")
« Poslední změna: 31. 07. 2017, 11:18:50 od Tuxik »

Kryštof

Re:Který kód je lepší?
« Odpověď #25 kdy: 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.

bohous

Re:Kterej kod je lepsi
« Odpověď #26 kdy: 31. 07. 2017, 11:48:08 »
zacatky? rofl. ja uz delam nekolik let vyvojare a za ne-maly penize.  8)

Kryštof

Re:Kterej kod je lepsi
« Odpověď #27 kdy: 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.

bohous

Re:Který kód je lepší?
« Odpověď #28 kdy: 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

Kiwi

Re:Který kód je lepší?
« Odpověď #29 kdy: 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ě.