abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:33 | Nová verze

    Google Chrome 126 byl prohlášen za stabilní. Nejnovější stabilní verze 126.0.6478.55 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Nová verze

    Byl vydán Mozilla Firefox 127.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 127 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | Nová verze

    Byla vydána (𝕏) nová verze 9.5 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 11:44 | IT novinky

    Společnost Raspberry Pi dnes vstoupila na Londýnskou burzu jako Raspberry Pi Holdings plc (investor).

    Ladislav Hagara | Komentářů: 0
    včera 01:22 | IT novinky

    Do 17. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2024 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.

    Ladislav Hagara | Komentářů: 0
    10.6. 22:33 | IT novinky

    Apple na své vývojářské konferenci WWDC24 (Worldwide Developers Conference, keynote) představil řadu novinek: svou umělou inteligenci pojmenovanou jednoduše Apple Intelligence, iOS 18, visionOS 2, macOS Sequoia, iPadOS 18, watchOS 11, …

    Ladislav Hagara | Komentářů: 10
    10.6. 21:44 | Nová verze

    Vyšla nová verze XMPP (Jabber) klienta Gajim, která přidává podporu reakcí pomocí emoji (XEP-0444: Message Reactions) a citace zpráv (XEP-0461: Message Replies). Přehled dalších vylepšení je k dispozici na oficiálních stránkách.

    sonicpp | Komentářů: 1
    10.6. 15:00 | Nová verze

    Po po téměř roce vývoje od vydání verze 5.38 byla vydána nová stabilní verze 5.40 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 75 vývojářů. Změněno bylo přibližně 160 tisíc řádků v 1 500 souborech. Přehled novinek a změn v podrobném seznamu.

    Ladislav Hagara | Komentářů: 7
    10.6. 12:00 | Zajímavý článek

    Uroš Popović popisuje, jak si nastavit Linux na desce jako Raspberry Pi Zero, aby je šlo používat jako USB „flešku“.

    Fluttershy, yay! | Komentářů: 1
    10.6. 08:44 | Zajímavý software

    Andreas Kling oznámil, že jelikož už se nevěnuje nezávislému operačnímu systému SerenityOS, ale výhradně jeho webovému prohlížeči Ladybird, přičemž vyvíjí primárně na Linuxu, SerenityOS opustí a Ladybird bude nově samostatný projekt (nový web, repozitář na GitHubu).

    Fluttershy, yay! | Komentářů: 2
    Rozcestník

    Programovani: Nazvy pracovnich promennych

    15.12.2010 02:05 | Přečteno: 1861× | poslední úprava: 15.12.2010 03:09

    Mozna to nekomu prijde nezajimave, ale ja si vsimam, ze stale dokola pouzivam tytez nazvy promennych pro tytez typy cinnosti. Programuji ruzne aplikace v PHP, proto tedy pro zajimavost uvadim sve zvyky pri psani zakladnich prvku programovani v PHP. Mozna tak treba nekdy v nejakem kodu poznate muj rukopis :)

    Smycky
    zasadne promenna $ii vsude kde je to mozne (drive to bylo $xx)
    for ($ii=0;$ii<10;$ii++) 
      { /* nejaka cinnost */ }
    Prochazeni pole
    jen a pouze $cc, nikdy jinak (jen pokud by doslo ke konfliktu)
    while ($cc=each($nejake_pole)) 
      { /* nejaka cinnost s $cc["key"] a/nebo $cc["value"] */ }
    Vysledky a vybery z databaze
    zazita trojice $q, $ares a $arow, pokud nejde jinak, tak $qx, $xares, $xarow.
    $q="nejaka query";
    if ($ares=mysql_query($q))
      while ($arow=mysql_fetch_assoc($ares))
        { /* nejaka cinnost s polem $arow */ }
    Zazita sablona pro funkce
    function DruhFunkce_NazevFunkce(...) {
    $ret=false;
    /* pokud jsou parametry OK, pak cinnost jejimz vysledkem je prepsani $ret; */
    return $ret;
    }
    
    Jak je to u vas? Mate nejake takove zazite zvyky? :)        

    Hodnocení: 80 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    15.12.2010 03:09 klusik | Plzeň
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Ahoj, v PHP používám:

    na smyčky klasické $i

    na pole nemám nic "specifického"

    na výběry používám něco jako:
    $sql_chocolates = "SELECT cacao, nameOfChocolate, isDia FROM chocolates WHERE cacao>70";
    $data_chocolates = mysql_query($sql_chocolates);
    if (mysql_num_rows($data_chocolates))
    {
      while ($chocolates = mysql_fetch_array($data_chocolates))
      {
        echo "Name of chocolate is ".$chocolates['nameOfChocolate']." and contains ".$chocolates['cacao']." % of cacao. And it is ".getNotIfNot($chocolates['isDia'])." good for diabetics.";
      }
    }
    
    ;) ;) Je to trošku vykonstruovaný příklad, tak se omlouvám za funci getNotIfNot, ale ... řekněme, že vrací string "not", pokud je parametrem false ;)
    Prostě já ;) www.klusik.cz
    Drum Bass avatar 15.12.2010 03:24 Drum Bass | skóre: 7 | blog: drum_bass
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    :) a pouzivate nejake automaticke doplnovani? Ptam se proto, ze ty nazvy pouzivate docela dlouhe, me by to po chvili nutilo to zkracovat pokud bych tedy nemel automaticke doplnovani. Osobne pouzivam Kate, ten automaticke doplnovani umi tak, ze si pamatuje co je jednou napsano a je schopen to doplnit. Tedy ne konkretni slovnik trebas vsech funkci PHP ale doplnil by libovolne slovo, ktere se uz do souboru (zdroje) napsalo - slovnik se tedy vytvari vlastnim psanim.

    To je taky jeste druha vec, jak clovek pojmenovava promenne. Treba ten muj zpusob - z toho nikdo nepozna na co to je, pokud to je nekde dal v kodu. Z $chocolates je daleko lip poznat co tam asi bude, narozdil od meho $arow :D

    Ohledne vykonstruovaneho prikladu, to jeste nic neni:) To ja vykonstruoval daleko vetsi brutus:

    function Service_Distribute_CopyCMSData_PrintConfiguredProjects() { ... }

    funkce vypise napovedu se seznamem projektu u nichz si vyvojari mohou sesynchronizovat data z produkcniho serveru na vyvojovy server za ucelem testovani na vyvojovem serveru. Hrozny nazev :)
    ________________ avatar 15.12.2010 07:25 ________________ | skóre: 5 | blog: _
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Ja používam čo najdlhšie názvy identifikátorov vačšinou viac slovné, aby bolo hneď každému jasné o čo sa v kóde jedná.... V PHP a Jave používam camelCase lexikálne konvencie, v C# alebo F# PascalCase u public a protected členov tried a camelCase u private členov tried a lokálnych premenných. V Delphi a VB.NET používam PascalCase u všetkých identifikátorov. Jednoslovné názvy premenných používam len výnimočne.

    Čo sa týka automatického doplňovania syntaxe tak používam Visual Studio, intelli sense je v dnešnej dobe samozrejmosť, ušetrí to kopec času a teda aj peňazí. Každý programátor by sa mal naučiť používať IDE(VS, NetBeans) ak sa chce udržať v konkurencii.
    15.12.2010 13:08 klusik | Plzeň
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Jsem zjistil, že všude to dělám tak nějak intuitivně jinak; v céčku jedu_pres_podtrzitka, v javěJenPřesCCase, v PHP tak nějak oboje ;)

    Jinak s tím, že by se měl každý naučit používat IDE souhlasím i nesouhlasím (ať žije Schrodinger :-D); prostě je fajn to používat, ale nemělo by to být to jediné, co člověk umí. Občas potřebuju něco napsat na vzdáleném stroji třeba ve VIMu a když to není nakonfigurované, tak prostě musím vědět, jak se co píše, jak se píše třída v Javě, jak se píše to či ono, co Eclipse třeba sám doplní ;)
    Prostě já ;) www.klusik.cz
    15.12.2010 13:06 klusik | Plzeň
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Automatické doplňování prakticky jen to z kate (v Kile to funguje taky, tak jsem na to přišel, právě...) ;) Ale většinou píšu v BlueFishovi, takže nic moc ;)

    Tak $cc a $arrow může být dobré, ale spíš jen pro nějaké lokální cosi, já nevím -- iterátory a tak. Ale názvy věcí, které využívám globálně všude (funkce atd.), tak se snažím víceslovně přes camelCase.

    Pěkný příklad ;) ;) To se musí nechat ;) ;) Ale zase to má alespoň nějaký význam, to moje "printNotIfNot()" to už je prostě jen "aby to tam bylo" -- normálně to nepoužívám, to jen do tutoho příkladu, aby bylo jasné, co to dělá, že ;) ;)
    Prostě já ;) www.klusik.cz
    15.12.2010 05:46 ____ | skóre: 15 | blog: _
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych

    Nechtěl bych teda po vás ten kód číst.

    Drum Bass avatar 15.12.2010 07:18 Drum Bass | skóre: 7 | blog: drum_bass
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    tak samozrejme ten kdo se v tom musi i po case vyznat jsem i ja sam a sam dobre vim, co to je se vyznat kolikrat i ve sve treba o hodne starsi, jeste ne tak dobre zdokumentovane praci. Jasne ze pouzivam treba komentare vsude kde to je vhodne, a tyhle zazite promenne pouzivam pouze jako temporary. V ramci kusu projektu pouzit neco jako promennou $cc na neco duleziteho by mohla byt pekna sebevrazda :)
    15.12.2010 13:09 klusik | Plzeň
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Ale tak zase, od čeho jsou komentáře, žejo... buď budu psát funkce jako udělejMiVýpisVšechDomůZDanéhoKatastru(), nebo printCatastr(), ale v komentáři si musím napsat, co to dělá :-D
    Prostě já ;) www.klusik.cz
    15.12.2010 13:20 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Co dokazes vyjadrit v kodu, vyjadri v kodu. Komentare hniji prekvapive rychle.
    Grunt avatar 15.12.2010 13:25 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Už si někdy viděl backtrace s takovými nádherami (parametry ausgerechnet to samé) a pro jistotu aspoň tak s 50 framy? Lahoda. Pak možná změníš názor na komentáře.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    15.12.2010 13:30 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Ano, vidam je kazdy den. Dobre/expresivne jmeno promenne/metody neznamena dlouhe jmeno. Nic z toho nesouvisi s komentari, proto nevim, proc bych na ne mel menit nazor.
    Grunt avatar 15.12.2010 13:33 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    proto nevim, proc bych na ne mel menit nazor
    No snad protože jsem to řekl já, ne?
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    15.12.2010 13:34 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Aha, ok :D
    16.12.2010 23:21 klusik | Plzeň
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Já myslím, že sice jo, ale není to samospásné, jak se píše jinde; prostě strašně se mi líbí Javadoc, že to samo generuje atd., je to přehledné a tak, tohle umět PHP třeba, tak to dělám taky. Samozřejmě, můžu si v bashi nebo v čemkoliv napsat skript, kterej mi to vytvoří, dkyž to tak budu psát (a nepochybuji, že něco takového existuje...) ;) Ale beru "defaultní" možnosti ;)
    Prostě já ;) www.klusik.cz
    Josef Kufner avatar 17.12.2010 01:01 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    PHP něco takového má a pak tuším, že i Doxygen to zvládá.
    Hello world ! Segmentation fault (core dumped)
    randy avatar 15.12.2010 20:47 randy | skóre: 21 | Hviezdoslavov
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    ale ved to je uplne v pohode kod ;)) indovia z HP pouzivaju funkcie stylu OvRunNnmModelToolsJavaOptsLauncherClassPathOrDieVerbose()

    tu je konkretny kod z HP OV NNMi
    R>
    16.12.2010 14:21 qiRzT | skóre: 14 | blog: U_Marvina
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    To se skoro nabízí otázka proč ještě vůbec psát kód tý funkce a nenapsat všechno rovnou do názvu :-) V php by se určitě dalo vymyslet, jak to udělat, aby to fungovalo.
    Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
    16.12.2010 23:22 klusik | Plzeň
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    :-D :-D Tak to je dobrá hláška ;) ;)
    Prostě já ;) www.klusik.cz
    frEon avatar 17.12.2010 16:24 frEon | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    v php nevim, ale v takovym lispu by to slo krasne.
    Talking about music is like dancing to architecture.
    Josef Kufner avatar 17.12.2010 16:29 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    V PHP to taky jde lehce. Možná ne přímo s funkcema, ale s metodama tříd určitě. A když to uděláš šikovně, tak to bude podle názvu hádat, co měla chybějící třída umět. ;-)
    Hello world ! Segmentation fault (core dumped)
    frEon avatar 17.12.2010 16:45 frEon | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    nj, googlil jsem, a ono to php ma uz neco podobneho jeko metoda method_missing v ruby. zajimave
    Talking about music is like dancing to architecture.
    17.12.2010 18:30 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    ... to php ma uz neco ...

    jn, uz vic jak 6 let :-) (stable verze)
    frEon avatar 20.12.2010 12:44 frEon | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    nj, uz je to tak davno, co jsem to naposledy videl?
    Talking about music is like dancing to architecture.
    15.12.2010 10:28 musa | skóre: 1 | blog: Test
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Souhlas, to je hnus, navic formatovaci sablona "Matlal".
    15.12.2010 07:03 ext3fs
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Ja jsem nikdy treba neprisel na chut zapisum jako:
    Moje_Funkce()
    MojeFunkce()
    mojeFunkce()
    
    ale vzdy a v kteremkoli jazyce (uz jen C, BASH, ojedinele PHP) pouzivam zapis
    moje_funkce()
    a nevidim jedinou vyhodu u tech prvnich trech.
    ________________ avatar 15.12.2010 07:32 ________________ | skóre: 5 | blog: _
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    hlavne by sa mali používať oficiálne lexikálne konvencie jazyka, ktoré sú pre každý jazyk dané. a hlavne nepoužívať hungarian notation. potržítkovú syntax môžte používať v C++ pythone alebo Ruby, ale určite nie v Jave alebo C# programátor ktorý nedodržiava oficiálne lexikálne konvencie jazyka je prasa.
    Konqui avatar 15.12.2010 08:55 Konqui | skóre: 18 | blog: Konqui | Rožnov pod Radhoštěm
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Oficiální konvence Pythonu je třeba odsazovat mezerami. Odsazuju zásadně tabulátorem - jsem prase? Já si to zase myslím o ostatních - kdo odsazuje mezerami, je hovado...
    Open/save dialogy z GTK+ jsou nejkřiklavější ukázkou toho nejdebilnějšího software, co vůbec může existovat.
    15.12.2010 09:58 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    kdo odsazuje mezerami, je hovado...

    Já si zase nemyslím nic lichotivého o člověku, pro něhož je to, že někdo preferuje jiný coding style než on, důvodem k nadávkám…

    Marián Kyral avatar 15.12.2010 10:34 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    kdo odsazuje mezerami, je hovado...
    Odsazuj si čím chceš. Já třeba taky odsazuji tabulátorem. Akorát, že místo \t se vloží mezery ;-)

    Je celkem jedno jestli tabulátor nebo mezera. Nejhorší je zdroják, kde to programátor kombinuje dle nálady. U něj to vypadá OK, ale když si to otevře někdo, kdo má nastavený tabulátor na jiný počet míst, tak je z toho pěkný guláš :-(
    15.12.2010 14:31 xavier | skóre: 10 | blog: borkovo
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Tohle se občas objevuje ve zdrojácích k javě(např. třída String). Názvy metod jsou odsazené 4 mezerami a blok příkazů metody 1 tabulátorem s velikostí 8. Když jsem to viděl poprvé, tak jsem myslel, že v jejich konvenci neodsazují ten vnořený blok(mám nastavený tabulátor na 4 znaky). Tam to ale vypadá, že to je způsobené tím, že každý vývojář má nastavené něco jiného, protože se to liší u různých metod i v jednom souboru.
    masomlejn avatar 15.12.2010 21:27 masomlejn | skóre: 16
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Proto bůh stvořil emacs a fortran-mode...
    Grunt avatar 15.12.2010 12:56 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    hlavne by sa mali používať oficiálne lexikálne konvencie jazyka, ktoré sú pre každý jazyk dané
    Ne, ne. Hlavně by se neměly vymýšlet hlouposti. To bych bral jako první dobré pravidlo.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    15.12.2010 07:25 otec
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    K čemu je dobré to zdvojování ($ii místo prostého $i)? Protože je to delší a hůř se to čte, nebo máš ještě nějaký jiný důvod? Jak už tu kdosi napsal - takový kód bych nechtěl číst.
    Drum Bass avatar 15.12.2010 07:33 Drum Bass | skóre: 7 | blog: drum_bass
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    pouze zvyk, zadny specialni duvod to nema.
    Jan Drábek avatar 15.12.2010 08:11 Jan Drábek | skóre: 41 | blog: Tartar | Brno
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych

    U forcyklů: i,j,k,l (jiný zvyk to komplikuje ostatných pro čtení), ii je fakt nepřehledné a jednoduše se přehlídne.

    U foreach cyků: $result as $key => $value

    U mysql dotazů $query, $result, $row

    Zkracování vede jen ke zmenšení přehlednosti, sice se argumentuje leností, ale když umíte psát všemi deseti tak ta expresivita názvu opravdu převáží.

    E.g. nerad bych s vámi na nějakých kódech. Do

    01010010 01000101 01010000 01101100 01001001 00110010 01000100 01100101 01010110
    Marián Kyral avatar 15.12.2010 10:38 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Bohužel znám jednoho staršího pána, který používá proměnné i, j, k, l, ijk, kkk, kll, ikk, xyz, zzz. Opravovat něco v jeho kódu je fakt záhul. Musel jsem si ten zdroják celý přeformátovat, proměnné přejmenovat a až potom jsem se v tom vyznal.
    15.12.2010 11:23 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Zkracování vede jen ke zmenšení přehlednosti, sice se argumentuje leností, ale když umíte psát všemi deseti tak ta expresivita názvu opravdu převáží.

    To se nedá takhle generalizovat. Když půjdu do extrému, opravdu si nemyslím, že označení řídící proměnné cyklu outermost_cycle_counter místo i nějak přispěje přehlednosti programu. A i jinak jsou pro mne příliš dlouhá jména proměnných (víc než nějakých 10 znaků) většinou spíš otravná, a to i když je nemusím psát, ale jen číst. Navíc to zvyšuje riziko nutnosti zalomit řádek a tím zdroják dále znepřehlednit.

    16.12.2010 12:34 Tomáš | skóre: 31 | blog: Tomik
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    opravdu si nemyslím, že označení řídící proměnné cyklu outermost_cycle_counter místo i nějak
    A co teprv, když člověk zjistí, že to outermost není outermost, ale potřebuju přidat ještě jeden vnější cyklus, nebo naopak zjistím, že vnější cyklus nepotřebuju atd.
    pek avatar 15.12.2010 10:21 pek | skóre: 20
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Moje oblíbené jsou foo, bar a baz.
    15.12.2010 10:39 osvc1
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    dummy1,dummy2,...
    15.12.2010 12:14 vita
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    toto, titi, tata, tutu :)
    Milan Lajtoš avatar 15.12.2010 11:22 Milan Lajtoš | skóre: 22 | blog: /blog/babraq
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    A prečo nie názvy premenných, ktoré vyplývajú z kontextu? Ak iterujem cez foreach napr. zamestnancov s ich platmi, príde mi škoda nepoužiť pár $name a $salary. Pri obyčajnom for-cykle samozrejme premenné i, j, k, l.

    Znovupoužívanie generických konštrukcií sa častokrát nevyplatí - či už môže dôjsť k chybe pri recyklovaní premenných, zlému skopírovaniu pri copy&paste (napríklad iterujem od 1 po n, kde by som mal od 0 po n-1) alebo rôznych iných.

    Samozrejme netreba šetriť na názvoch funkcií/metód a skutočne popísať čo robia! Nie je nič horšie ako keď sa pozeráte na signatúru int doMagic(bool x, int bbz, int* pols). Z tohto zápisu nie je vôbec jasné, čo by to malo robiť.

    Mojím pravidlom je snaha písať všetky názvy premenných, metód, tried, atď. anglicky. Tak ako ja neviem čo znamená premenná $koleTapja, tak niekto nemusí vedieť, čo robí funkcia upecHovno(bool sAlobalom).
    “Every great achievement was once considered impossible.”
    mkoubik avatar 15.12.2010 11:39 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Pokud používáš objektová jazyk, tak je IMHO "pomocná proměnná" (tj. ne instanční) signál že něco smrdí a je na čase refaktorovat. Podobně jako public atribut, private metoda, použití ifu, jediný boolean atribut metody, operátor new jinde než v továrničce a sposta dalších věcí. Pokud si k tomu člověk vypěstuje podvědomý odpor, tak si často ušetří nepříjemnosti.
    vulgární Nick avatar 15.12.2010 12:16 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    No jasně, lokální proměnné jsou kontrearevoluční a podmínkové výrazy jsou buržoazní přežitek.

    Děkujeme programátorům-teoretikům, že nás baví.
    JSEM PRASE A HOVADO.
    Saljack avatar 15.12.2010 13:29 Saljack | skóre: 28 | blog: Saljack | Praha
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Vyjímečně s tebou musím souhlasit. Celkem jsem nepochopil ten if, jak ho jako nepoužívat? Co je špatného na privátních metodách? Jediný boolean parametr, taky nechápu proč by se neměl používat.
    Sex, Drugs & Rock´n Roll.
    15.12.2010 13:33 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    "jediny boolean parametr" - obycejne to znaci, ze by se metoda mela rozdelit na dve metody (protoze asi dela dve ruzne veci).
    Saljack avatar 15.12.2010 13:39 Saljack | skóre: 28 | blog: Saljack | Praha
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    A co když je to jenom setter? Tak to psát dvakrát setTrue setFalse?
    Sex, Drugs & Rock´n Roll.
    15.12.2010 13:42 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Je tam "obycejne", tedy ne vzdy. V pripade trivialniho setteru na jedne metode nevidim nic spatneho.
    xkucf03 avatar 15.12.2010 16:01 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Já na tom nevidím nic špatného ani v těch netriviálních případech – naopak.

    Proč psát:
    boolean hodnotaPodleKtereSeRozhoduji = …;
    Trida o = …;
    …
    if (hodnotaPodleKtereSeRozhoduji) {
        o.setAbcdTrue();
    } else {
        o.setAbcdFalse();
    }
    místo:
    boolean hodnotaPodleKtereSeRozhoduji = …;
    Trida o = …;
    …
    o.setAbcd(hodnotaPodleKtereSeRozhoduji);
    
    ?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Grunt avatar 15.12.2010 16:09 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Já zas především nechápu na co kvůli jednomu blbému přiřazení (jedna instrukce) budovat celý další stackframe.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    15.12.2010 16:21 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. V onech 97% kodu programu je totiz vykon uplne irelevantni (resp. je jedno, jestli zabere 10 nebo 1000 instrukci).

    (Nehlede na to, ze kvuli setteru se stackframe velmi pravdepodobne budovat nebude)
    Grunt avatar 15.12.2010 16:33 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    V onech 97% kodu programu je totiz vykon uplne irelevantni (resp. je jedno, jestli zabere 10 nebo 1000 instrukci).
    Jo, zvláště když takový program 90% svého času nedělá nic jiného než jen furt něco volá (zrovna přiřazování asi bude dost frekventovaná akce a to vůbec nehledím na možnost, že může být v cyklu). A navíc se to musí fakt luxusně debugovat. V jakém duševní stavu musí člověk být aby implementoval přiřazování do proměnné voláním, to fakt nechápu.
    Nehlede na to, ze kvuli setteru se stackframe velmi pravdepodobne budovat nebude
    Pokud je to makro, tak ne. Pokud je to standardní volání implementované instrukcí call (a ne jmp) tak jo.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    Heron avatar 15.12.2010 16:39 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Pokud je to makro, tak ne. Pokud je to standardní volání implementované instrukcí call (a ne jmp) tak jo.

    Java HotSpot strašně rád inlinuje. Takže to ve výsledku není ani call, ani jmp ale prosté přiřazení. Ve strojáku ze všech těch geterů a seterů nakonec zůstane jen práce s registrem (případně adresou).

    Grunt avatar 15.12.2010 16:45 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    No i tak nechápu, jak může někomu něco takového přijít pohodlnější. Je to jako psát místo c = a + b c = add(a,b). V mém případě to tipuju buď na nějakou mentální degenerativní poruchu nebo malou hladinu alkoholu v krvi.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    15.12.2010 16:55 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Ty to asi moc nechapes. Nikdo nepise c = add(a, b), ale stejne jako ty c = a + b. My se bavime o tom, proc je lepsi psat obj.setC(a + b) misto obj.c = a + b;
    Grunt avatar 15.12.2010 16:47 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    BTW: To se musí fakt dost dobře debugovat když člověk očekává podle zdrojové řádky že je ve vlastním stack framu a přitom je furt na tom samém místě kde místo očekávaného call je mov.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    15.12.2010 16:53 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Zvlastni, ale kdyz debuguju Javu nebo PHP, tak se s takovym problemem nesetkavam :D
    15.12.2010 16:50 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Jo, zvláště když takový program 90% svého času nedělá nic jiného než jen furt něco volá (zrovna přiřazování asi bude dost frekventovaná akce a to vůbec nehledím na možnost, že může být v cyklu). A navíc se to musí fakt luxusně debugovat. V jakém duševní stavu musí člověk být aby implementoval přiřazování do proměnné voláním, to fakt nechápu.

    Tak zkusim to jinak. Prirazovat promenne hodnotu neni zvykem ani v OOP. V OOP se setterem nastavuje atribut objektu. Ano, nekdy tento atribut je implementovan jako promenna, to te ale jako uzivatele nejakeho API nemusi a nema vubec zajimat. Jindy zase nastaveni tohoto atributu znamena spusteni nekolika metod jinych objektu, zapis na disk nebo treba vyhozeni vyjimky.

    Dulezite je, ze tato implementace zmeny atributu se muze menit (a ver tomu, ze se skutecne meni). Co bys delal jako uzivatel GUI knihovny, ktera pro nastaveni vysky okna puvodne ve verzi 1.0 vyzadovala pouze zmenu nejakeho datoveho prvku a ve verzi 1.1 jeste vyzadovala prekresleni okna? S tvym pristupem bys musel na 1001 miste menit svuj kod, s OOP pristupem nemusis menit ani radku.

    Pokud je to makro, tak ne. Pokud je to standardní volání implementované instrukcí call (a ne jmp) tak jo.

    Bavime se o objektovych jazycich, zadny assembler. Tedy treba C++, ktere tu metodu bezpochyby inlajnne, C#, Java, Ruby, kde to bude zrejme zase uplne jinak ...
    15.12.2010 18:15 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Já zas především nechápu na co kvůli jednomu blbému přiřazení (jedna instrukce) budovat celý další stackframe.
    1) "Celý další stackframe" není nic tak hroznýho.
    2) Není to "jedno blbé přiřazení", ale je to "jedno blbé přiřazení s kontrolou přístupu", i.e. nepředává se pouze přiřazovaná hodnota, ale i this.

    Nehledě k tomu, že zavolání funkce je flexibilní - umožňuje dál kód rozšířovat. Například když změníš vlastnost objektu, může být užitečné, aby se ten objekt podle toho aktualizoval (voláním nějaké privátní funkce), což s prostým přířazením nepůjde.

    Nadruhou stranu, samozřejmě, existují případy, kdy prosté přiřazení stačí... (například když má třída přiřazovací operátor :-P :-D)
    15.12.2010 16:12 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Pokud je to rozdeleni metod skutecne nepohodlne (jako v uvedenem pripade), tak neni problem si udelat metodu setAbcd(hodnotaPodleKtereSeRozhoduji), ktera obsahuje ten nepohodlny IF a vola setAbcdTrue() a setAbcdFalse().

    Metoda by mela delat jen jednu vec.
    15.12.2010 18:18 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Sorry, ale to je hovadina. Když už, tak by to mělo být obráceně; funkce setAbcdTrue() bude volat setAbcd(true).
    15.12.2010 18:43 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    A reknes proc? Proc by mela metoda (napr.) setVisible() okno zobrazovat i schovavat?
    15.12.2010 19:10 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    A reknes proc? Proc by mela metoda (napr.) setVisible() okno zobrazovat i schovavat?
    Nic takového jsem neřekl.
    Moje pointa byla v tom, že se obejdeme bez ifu.

    Ale když už jsme u toho, tak ano, nevidím důvod, proč by měla být ta metoda rozdělena do setVisibleTrue() a setVisibleFalse().
    15.12.2010 19:21 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Pripominam, ze se nebavime o trivialnich getterech a setterech, ktere pouze nastavuji nejakou instancni promennou.

    Ted te ocituji, ale vymenim nic nerikajici jmena metod mym prikladem:

    Sorry, ale to je hovadina. Když už, tak by to mělo být obráceně; funkce showWindow() bude volat setWindowVisibility(true).

    Z toho mi jasne vyplyva, ze chces implementaci obou veci (zobrazeni i skryti) implementovat v metode setWindowVisibility().

    A proc by to mely byt dve metody a ne jedna? Protoze metoda by mela delat jednu vec - kdezto setWindowVisibility() by v tvem podani implementovala dve ruzne (dokonce presne opacne) veci. Myslim, ze je docela zrejme, ze implementace skryti a zobrazeni okna budou pravdepodobne dost odlisne ...
    15.12.2010 20:09 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Protoze metoda by mela delat jednu vec
    Ale vždyť to ta metoda dělá jednu věc - nastavuje viditelnost okna. To, že vevnitř to řeší tak a tak je navenek jedno.
    Myslim, ze je docela zrejme, ze implementace skryti a zobrazeni okna budou pravdepodobne dost odlisne ...
    Proč by měly být (výrazně) odlišný? Windows manager taky pravděpodobně udržuje u každého okna všelijaký informace včetně boolean visible.
    xkucf03 avatar 15.12.2010 21:26 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    A co když těch stavů bude víc? Třeba minimalizované, maximalizované, ikonifikované, normální – pak budeš mít čtyři metody, aby „každá dělala jen jednu věc“? Jak bude takové API přehledné? Spousta metod – a jak poznáš, že zrovna tyhle patří k sobě a jiné dělají něco úplně jiného? A co když budeš třeba měnit stavy objednávky – někde asi budeš chtít mít číselník stavů, jakých může objednávka nabývat, abys to měl na jednom místě, ne? Změna stavu nebude triviální setter, bude dělat něco víc (třeba něco posílat, počítat, ověřovat), ale to ti nebrání, abys změnu stavu měl jako jednu metodu a jako parametr jí předával nějaký Enum – stav, na který se má změnit.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    16.12.2010 18:39 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Mozna to nebylo z mych postu jasne, ale ja se tu snazim mluvit hlavne o konecne implementaci techto zmen atributu.

    API at je maximalne pohodlne. Verejne metody muzou klidne zdanlive "obsluhovat" nekolik veci najednou (ale samozrejme rozumne), ale pak by tyto veci mely delegovat nebo rozdelovat ostatnim metodam.

    Zkratka, snazim se rict, ze funkce uvedena nize je spatna:
    function chytraFunkce($prepinac)
    {
    	if($prepinac == true) {
    		...
    		...
    		spousta kodu
    		...
    		...
    	}
    	else {
    		...
    		...
    		spousta kodu
    		...
    		...
    	}
    }
    
    xkucf03 avatar 16.12.2010 19:56 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych

    V takovém případě více méně* souhlas, jenže ono to často vypadá takhle:

    function chytraFunkce($prepinac) {
    	...
    	...
    	spousta kodu
    	...
    	...
    
    	if($prepinac == true) {
    		…trochu kódu…
    	} else {
    		…trochu kódu…
    	}
    	...
    	...
    	spousta kodu
    	...
    	...
    }

    nebo tam dokonce ani ten vnitřní if (…) není a jednoduše předáváš ten $přepínač někam dál.

    *) i když někdy může být rozdělení na více metod kontraproduktivní – v případě, že se jedná o kód, který od odjinud volat nebudu.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    mkoubik avatar 16.12.2010 20:04 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    V tom případě opakuji:
    Pokud je v ifu jenom část metody, nešlo by upravit životní cyklus objektu, vyčlenit společné části a rozdílnost fáze v podmínce řešit polymorfismem?
    xkucf03 avatar 16.12.2010 22:49 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    a co z toho?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    15.12.2010 19:35 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Jeste jsem zapomnel: ta pointa je spatne. V tvem pripade bude ten IF schovany uvnitr metody setVisible() (vzdyt o tom je tento thread!)
    15.12.2010 20:06 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Nemusí to tak být. setVisible() může nastavit vnitřní proměnnou a zavolat update() a tam (ne)musí být if potřeba podle vlastností backendu. Zkrátka ten if by měl (imho) být co možná nejníž.
    vulgární Nick avatar 15.12.2010 13:41 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Rozhodně neplatí vždy. Raději třeba java.awt.Component.setVisible(boolean) než show() a hide().
    JSEM PRASE A HOVADO.
    15.12.2010 14:40 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Takže když budu mít metodu, z níž se uprostřed pět procent buď provede nebo ne, tak mám napsat dvě skoro stejné a při každé změně v těch zbylých 95 procentech je obě stejně přepsat?
    15.12.2010 14:44 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Takova metoda si velmi pravdepodobne zaslouzi kompletni refaktorizaci (hlavne rozdeleni).
    15.12.2010 17:13 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Určitě ne v plné obecnosti a pro mne osobně ani ve většině případů.
    15.12.2010 17:33 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Nesmi se to brat jako dogma. Kdyz si potrebuji za par hodin zplacnout nejakou malickost, taky se nedrzim vsech "spravnych zasad". I refaktorizace stoji nejaky cas a nekdy se to jednoduse nevyplati ...
    15.12.2010 13:18 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Co je spatneho na pomocne (neinstancni) promenne, privatni metode a pouziti ifu? Diky.
    15.12.2010 13:40 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    ty ses teda dobrej jeliman... :))

    jestlis v zivote neco naprogramoval (o cemz pochybuju ale stejne), mohl bys poslat nejakou ukazku ? rad bych se neco "priucil" ...

    btw. jak treba vynasobis 2 matice bez pomocne neinstancni promenne? thx
    vulgární Nick avatar 15.12.2010 13:43 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Třeba nesnáší i pole a tvoří místo nich instanční proměnné jako arrayItem1, arrayItem2 a arrayItem3, ... :)
    JSEM PRASE A HOVADO.
    15.12.2010 13:48 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    jo to jedine. a pak to misto cyklu vsechno rucne rozepise... :)

    to mkoubik: ta ukazna nemusi byt nic velkyho. staci par set radku na vysvetleni koncepce...
    vulgární Nick avatar 15.12.2010 13:54 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Nerozepíše to jen tak! Napíše si na to metody: iteration1, iteration2 ... iteration44563. Bude to pak přehlednější a lépe se to bude refaktorovat. :))
    JSEM PRASE A HOVADO.
    mkoubik avatar 15.12.2010 14:15 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Poněvadž se tady vynořila horda chytrolínů, tak se to pokusim vysvětlit. Jednak tyhle pravidla pouze "naznačují, že je pravděpodobně něco špatně". Rozhodně je nelze brát dogmaticky, jenom je to impuls k zamyšlení. Druhak to platí pro objektový návrh architektury. Teď k jednotlivým bodům:
    • Pomocné (kontextové) proměnné se samozřejmě hojně používají a leckde to má smysl. Např pokud je součástí nějakého algoritmu, ale ty se obvykle píší procedurálně (např to slavné násobení matic) a moje rady se tedy na ně nevztahují. Příklad kde to smrdí je např když v rámci jedné metody vygeneruješ data, uložíš do proměnné a pak s nimi dál pracuješ - stojí zato popřemýšlet o rozdělení metody
    • Public atribut Zamyšlení: "opravdu chci, aby se mi v tomhle atributu jiné objekty jakkoliv hrabaly, nehodili by se setter?"
    • Private atribut Zamyšlení: "Aha, tady máme vyčleněnou společnou funkčnost (která není součástí API) několika metod jedné třídy, neměla by to být public metoda jiné třídy (není porušen single responsibility princip)? Neměla by ta metoda public? Jak tu metodu budu testovat?"
    • Jediný bool parametr/if/switch Zamyšlení: "Nevykonává tahle metoda 2 oddělitelné funkce? Pokud je v ifu jenom část metody, nešlo by upravit životní cyklus objektu, vyčlenit společné části a rozdílnost fáze v podmínce řešit polymorfismem?". Samozřejmě existuje spousta legitimních použití ifu a bez něj by to nešlo. Třeba ten setter. Kombinace bool parametru a ifu v metodě nicméně smrdí a to tím víc, čím větší část metody je v tom ifu (Pozor: "smrdí" neznamená "je špatně").
    • Operátor new Zamyšlení: "Opravdu musím ten objekt vytvářet zrovna tady? Co když budu chtít vyměnit implementaci v celé aplikaci? To budu v kódu hledat new ImplementationA() a nahrazovat za new ImplementationB()? A co mockování (např připojení k databázi) v testech? Nebylo by lepší vytvářet instance na jednom místě? Třeba v IoC kontejneru nebo ServiceLocatoru?"
    Nevim jestli jsem toho naprogramoval hodně nebo málo, ale tyhle návyky jsem si vybudoval praxí (nejsou to nějaký akademický kecy). Čím objektovější jazyk člověk používá, tím dřív k tomuhle dospěje. Pokud někdo píše algoritmy v céčku, tak ho to moc trápit nemusí (a chápu že mu to přijde k smíchu) a spokojí se s tím že bude celej život čučet na int i,j,k;.
    vulgární Nick avatar 15.12.2010 14:29 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
    Rozbalit Rozbalit vše Re: Programovaniosmdesát: Nazvy pracovnich promennych
    Zvláští, před chvíli tady "něco smrdělo", teď tu "možná něco smrdí, ale spíš ne"...

    Jinak děkujeme za výcuc z nějaké knížky o programování pro začátečníky.

    P. S.: Něco tady fakt smrdí, není vám to trapné?
    JSEM PRASE A HOVADO.
    mkoubik avatar 15.12.2010 14:35 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Programovaniosmdesát: Nazvy pracovnich promennych
    "Něco smrdí" znamená "možná není správně", "možná něco smrdí" tudíž znamená totéž. Jinak přijde mi, že v knížkách pro začátečníky se nějaké to if, while a Auto extends DopravniProstredek dočteš hnedka z kraje. Názory, které tu prezentuju jsou (bohužel) spíš taková avantgarda, o výuce programování ve školách radši nemluvě.
    15.12.2010 14:41 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovaniosmdesát: Nazvy pracovnich promennych
    Existuje neco, co nesmrdi?
    mkoubik avatar 15.12.2010 14:48 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Programovaniosmdesát: Nazvy pracovnich promennych
    Ne, existují pouze věci které smrdí tak málo, že se tím nemá cenu zabývat.
    mkoubik avatar 15.12.2010 14:30 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Jinak, nejsem jedinej programátor teoretik, kterej se ohání akademickejma žvástama. Kdysi jsem četl blog od nějakého ruby programátora, kde byly podobné best-practices pěkně vysvětlený a ne a ne to teď vygooglit. Tohle mi přišlo do cesty a je to na stejný téma.
    15.12.2010 14:37 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Pridam jeste jednu vec: dedeni trid smrdi, protoze je vetsinou lepsi uprednostnit kompozici pred dedicnosti.

    Takove flamy jsou zbytecne - vetsinou z nich vyjde, ze vzdy zalezi na konkretnim pripade a nema cenu kolem sebe machat ucebnicovymi pouckami. Verim, ze i na takove GOTO se najde use case, ve kterem je vhodne a tedy se neda obecne oznacit a priori za spatne.
    mkoubik avatar 15.12.2010 14:47 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Právě tak jsem se to snažil podat - je užitečné mít reflex "když vidím public atribut, tak to se mnou škubne a zamyslim se" reflex "když vidím public atribut, změním ho na private a dopíšu setter/getter" je k ničemu.

    Stejně tak když vidíš před sebou na chodníku psí hovno, tak tě na to podvědomí upozorní a reflexivně se mu vyhneš, i když určitě existuje situace kdy by se hodilo do něj šlápnout.
    Heron avatar 15.12.2010 14:58 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Právě tak jsem se to snažil podat - je užitečné mít reflex "když vidím public atribut, tak to se mnou škubne a zamyslim se" reflex "když vidím public atribut, změním ho na private a dopíšu setter/getter" je k ničemu.

    Upřímně řečeno lepší by to bylo naopak. Atributy psát vždy jako private a k nim (třeba automatické, triviální) get/set metody a v případě opodstatněného použití jej předělat jako public.

    15.12.2010 15:02 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Jiste, on ale zrejme mluvi o cizim/starem kodu ("kdyz vidim public atribut ..."). Na vytvoreni public atributu musi mit clovek hodne dobry duvod ...
    15.12.2010 15:08 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Upřímně řečeno lepší by to bylo naopak. Atributy psát vždy jako private a k nim (třeba automatické, triviální) get/set metody a v případě opodstatněného použití jej předělat jako public.
    Vůbec nejlepší by bylo, kdyby Gosling tolik nečetl manuál k C++ a Javu udělal více podle Smalltalku. Tam jsou všechny členské proměnné v Java terminologii protected a metody public, což je taková úroveň oprávnění, kterou obvykle programátor potřebuje.
    When your hammer is C++, everything begins to look like a thumb.
    mkoubik avatar 15.12.2010 15:12 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    V ruby jsou všecnhy atributy private, ale zas je tam extrémně jednoduché generování getterů a setterů.
    16.12.2010 21:57 Kvakor
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Verim, ze i na takove GOTO se najde use case, ve kterem je vhodne a tedy se neda obecne oznacit a priori za spatne.
    Dobrým příkladem jsou linuxové moduly, kde se používají skoky pro zjednodušení kódu při inicializaci tak, aby se v okamžiku, kdy něco nevyjde, nemusleo složitě řešit to, co už bylo inicializováno/naalokováno a co ještě ne. Ne že by to nešlo řešit bez skokú, ale buď by to znamenalo držet si stav (což zabíra zbytečně paměť) nebo použít vnoření, která se ale mohou při větším množství stát velmi, velmi nepřelednými a člověk pak při čtení kódu vypadá jak ten zlý pes ze Simpsonů :-) .
    15.12.2010 14:45 xavier | skóre: 10 | blog: borkovo
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Přednáška k návrhu metod.
    15.12.2010 13:46 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Pokud to jde, pracovní proměnné nepoužívám.
    15.12.2010 15:12 kolcon | skóre: 15 | blog: kolcon
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    asi tak, ve vetsine pripadu si vystacim s $_
    15.12.2010 15:55 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Jak by řekl přednášející (už nevím který):
    int moje_promenna_kterou_jsem_si_definoval_po_prednasce_z_programovani_ktera_na_me_udelala_velky_dojem_1;
    int <dtto>_2;
    Luk avatar 15.12.2010 17:14 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Jen mě tak napadlo - má tato konstrukce:
    
    while ($cc=each($nejake_pole)) 
      { /* nejaka cinnost s $cc["key"] a/nebo $cc["value"] */ }
    
    nějakou zvláštní výhodu oproti této:
    
    foreach ($cc as $key => $value)
      { /* nejaka cinnost s $key a/nebo $value */ }
    
    (používám právě tuto druhou cestu a rád bych věděl, jestli ta první není v něčem lepší)? ;-)
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    Luk avatar 15.12.2010 17:16 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Samozřejmě místo $cc má být u druhé konstrukce $nejake_pole, ale to snad každý pochopí.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    15.12.2010 17:24 AHAHA | skóre: 7 | blog: ZZZ
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Prvni verze pravdepodobne zadnou vyhodu nema, je IMHO jen mene prehledna a znacne pomalejsi. each() se hodi na jine veci.
    asfethan avatar 15.12.2010 17:35 asfethan | skóre: 10 | blog: asfalatum | Bratislava
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Po vas by som teda nechcel (o/u)pravovat nejaku aplikaciu. Nazvy podaktorych premennych su nelogicke, ostatne zase prilis usporne.

    Ja mam tiez zavedene nejake pravidla pri svojej tvorbe a sice:

    $x__abcd

    kde x moze by b,m,s,a,i,r tzn. bool, mixed, string, array, integer, resource...

    abcd je zase nazov, ale taky aby bolo hned jasne o co ide...

    Priklad:
    
      $r__db_connection = mysql_connect($s__host, $s__user, $s__pass);
      mysql_select_db($s__database, $r__db_connection);
    
      $r__products = mysql_query("SELECT ...", $r__db_connection);
    
      for ($i__row = 0; $i__row < mysql_num_rows($r__products); $i__row++)  {
    
        $a__product      = mysql_fetch_array($r__products);
        $s__product_name = $a__product['product_name'];
    
      }
    
      // mysql_close, unset a atd...
    
      exit(0);
    
    
    15.12.2010 17:48 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    To je v podstatě jen variace na již zmíněnou maďarskou notaci, jen je tam navíc to zdvojené podtržítko, které IMHO na přehlednosti moc nepřidá (kdyby bylo jedno, tak možná).
    15.12.2010 18:22 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Není mi jasný, proč někdo, kdo má nutkání mít v názvu proměnný i její "typ", používá slabě typovaný jazyk?
    xkucf03 avatar 15.12.2010 18:23 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    +1
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    15.12.2010 18:33 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    IMHO je k tomu donucen okolnostmi. Napadá mne (a) kombinace neznalosti a lenosti (nic jiného neumí a učit se nechce), (b) nedostatek odvahy (nevěří, že by něco jiného zvládl), (c) potřeba přizpůsobit se prostředí (na daném hostingu nic jiného než PHP použít nelze). Nebo prostě jiné výhody převažují - mně třeba taky na PHP spousta věcí vadí (a absence typové kontroly by byla na předních místech), ale jednoduché věci je často prostě nejjednodušší napsat v něm.
    asfethan avatar 15.12.2010 21:27 asfethan | skóre: 10 | blog: asfalatum | Bratislava
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Nie netrpim ziadnym neduhom ktory je popisany v bodoch a,b,c. Riadok na ktorom su tieto body spomenute by mohol byt uplne kludne vymazany, nepridava ziadnu informacnu hodnotu, skor naopak (zavana mi to pokusom o urazku a ukazku prvotriednej arogancie).

    "IMHO je k tomu donucen okolnostmi nebo prostě jiné výhody převažují" - kludne stacilo iba toto napisat...
    15.12.2010 21:47 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Pokud v tom hledáte urážku, je to váš problém, ne můj.
    asfethan avatar 15.12.2010 21:19 asfethan | skóre: 10 | blog: asfalatum | Bratislava
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Ked sa naucite pouzivat iny operator ako "==" mozno to pochopite ;-)
    15.12.2010 22:43 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Teď bych zas mohl já hrát uraženýho :-D
    Jinak samozřejmě já používám i jiný operátory, ale taky používám silně typovaný jazyk.
    asfethan avatar 15.12.2010 22:51 asfethan | skóre: 10 | blog: asfalatum | Bratislava
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Tak ja ovladam viac jazykov a vsade sa snazim mat nejaku stabnu kulturu. Naviedol ma na to pan Herout pomocou jeho knihy Ucebnice jazyka C (ked som sa pred 6timi rokmi tento jazyk ucil). Odhliadnuc od toho ze PHP je naozaj slabo typovany jazyk, zvysuje tento navyk u mna prehladnost a efektivitu. Nehovoriac o tom ze ked nieco riesim totalne unaveny (ci uz fyzicky, psych., alebo splocensky) dokazem sa vyvarovat niektorym chybam :P
    Grunt avatar 15.12.2010 23:24 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Naviedol ma na to pan Herout pomocou jeho knihy Ucebnice jazyka C (ked som sa pred 6timi rokmi tento jazyk ucil). …zvysuje tento navyk u mna prehladnost a efektivitu. …dokazem sa vyvarovat niektorym chybam.

    Jsem jediný u koho tyto bojové výkřiky ve stylu

    vyvolávají jemný úsměv na tváři a jediný co si myslí, že se tu zas řeší leda tak kraviny? To je snad úplně jedno jak to píšeš, ne? Pokud nejsi pako a nebo fakt v nějaké ovlivnění smyslů, tak snad dovedeš rozumně pojmenovat nějaké proměnné a pokud není pako (a nebo též nějak ovlivněn) ten co to po tobě bude číst, tak to snad bude i schopen pochopit. Jestli je to už jazyk interpretovaný nebo překládaný a nebo silně tipovaný nebo slabě tipovaný a nebo rudý nebo růžový.

    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    15.12.2010 23:31 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Aspoň že nenapsal, že to zvyšuje efektivitu o 12.6 procenta. :-)
    Grunt avatar 15.12.2010 23:32 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Jsem hledal mnohem rýpavější plakátek, ale radši jsem to nechal být nebo by se tady ještě na mně mohl někdo rozzlobit. :-)
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    Grunt avatar 15.12.2010 23:31 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    tipovaný
    No dobře. Jdu spát.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    15.12.2010 23:32 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Na tom něco bude, taky to zkusím.
    15.12.2010 19:46 Kvakor
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Taky si myslím, že v danném přípasdě je to zbytečný "overkill", protože jediné problémy s typovostí, se kterými jsem se v PHP setkal, byly s poli a s bitovými operace. A na to stačí jen dvě relativně jednoduché věci: ujistit se, že pole (občas resource nebo objekt) je opravdu pole a ne skalár, na což jsou funkce, a explicitně přetypovat číslo na celé. Prakticky tedy stačí rozlišovat jen pole, resource/objekt a zbytek, těch několik specialit (jako výše zmíněné bitové operace) je jednodušší ošetřit přetypováním.
    asfethan avatar 15.12.2010 21:37 asfethan | skóre: 10 | blog: asfalatum | Bratislava
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Ide o to ze ked niekto cita vas kod, hned vie co je co a kde ma co ocakavat. Bez nejakej specialnej analyzy. Netvrdim ze moj system je najlepsi, ale mne sa s nim velmi dobre pracuje (zvysuje aj efektivitu mojej prace) a vim je velmi silny editor, preto mi to ako overkill nepride, prave naopak.
    15.12.2010 22:14 __dark__
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Ty 2 podtrzitka, to je opravdu skvost. Ale chapu, ze chces byt unikat :)
    15.12.2010 22:12 __dark__
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Hruza :-D

    Zdvojovani standardnich promennych nechapu (proc ne proste i, j?, cc mi nesedi uz vubec). Divnou polohu zavorek taky nechapu, a proc neodsazovat u funkce taky ne. Secteno a podtrzeno - nelibi se mi tvuj styl :)
    Luk avatar 16.12.2010 00:50 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Divnou polohu zavorek taky nechapu, a proc neodsazovat u funkce taky ne.
    Tohle je to poslední, co by se mělo řešit. Běžně se používají různé styly, každému vyhovuje něco jiného.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    16.12.2010 09:20 __dark__
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    Různé styly chápu, ale nevidím smysl v tom, vymyslet si svůj vlastní, který od všech zažitých odbočuje. PS: Komentovat ostatní věci nemám sílu:)
    frEon avatar 17.12.2010 16:29 frEon | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    me prijde kazda poloha zavorek divna, pokud neni lispova ;-)
    Talking about music is like dancing to architecture.
    Josef Kufner avatar 17.12.2010 16:30 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Programovani: Nazvy pracovnich promennych
    indent -kr -i8 -l120
    Hello world ! Segmentation fault (core dumped)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.