Pravidla pro pojmenování proměnných

pavlix

  • ****
  • 253
    • Zobrazit profil
Re:Pravidla pro pojmenování proměnných
« Odpověď #60 kdy: 04. 11. 2016, 12:01:54 »
Je to přesne dnešní programátorská doba

Myslíte tu dnešní dobu, kdy v jednom kuse koukám přes rameno kolegům vimařům, lidem, co pouštějí gdb z příkazové řádky, lidem, co dělají hromadné editace pomocí sedu, atd...? Hrozná to doba.


Re:Pravidla pro pojmenování proměnných
« Odpověď #61 kdy: 04. 11. 2016, 12:11:57 »
Je to přesne dnešní programátorská doba

Myslíte tu dnešní dobu, kdy v jednom kuse koukám přes rameno kolegům vimařům, lidem, co pouštějí gdb z příkazové řádky, lidem, co dělají hromadné editace pomocí sedu, atd...? Hrozná to doba.

Výtažek, který s mými příspěvky nijak nesouvisí, jen jste si jej ohl dle své potřeby?
Když chceš, dokážeš vše!

Ivan Nový

Re:Pravidla pro pojmenování proměnných
« Odpověď #62 kdy: 04. 11. 2016, 12:20:24 »
Je to přesne dnešní programátorská doba

Myslíte tu dnešní dobu, kdy v jednom kuse koukám přes rameno kolegům vimařům, lidem, co pouštějí gdb z příkazové řádky, lidem, co dělají hromadné editace pomocí sedu, atd...? Hrozná to doba.

Bashismus je strašná choroba :-)))

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Pravidla pro pojmenování proměnných
« Odpověď #63 kdy: 04. 11. 2016, 12:39:47 »
...

Většina věci, které Vám generuje IDE je děláno tak aby je program mohl vytvořit, to jestli jsou 100% dobře, maximálně optimalizovaný jak rychlost, tak velikost je věc vedlejší, to je právě to o čem mluvím. Dnešní doba je fajn, každý mámě X GB a tak velikost programu je OK a nikdo ji neřeší, ale nepřijde Vám lepší napsat program, který je přehlednější, čitelnější, méně náročnější a menši než to, co by jste vygeneroval/vyklikal z IDE?

Treba v pripade tech generovanych parseru - ne, neprijde me to lepsi. V ramci bakalarky jsem si parser psal a kdyz jsem pak srovnal, jak trivialne, prehledne a i vykoneji to generaval tusim ten ANTLR, tak jsem byl zatracene prekvapeny. V ramci skoly budiz, napsat si neprilis vykonny, hure udrzovatelny parser s ne prilis chytrymi chybovymi hlaskami neni zase takovy problem. Ale ve vsem volnem case, pokud neni cilem naucit se psat parser? Nebo nedejboze v praci, kde by me za takove plytvani mohli i vyhodit? Citelnejsi to bude akorat pro autora custom parseru, ale pro dalsi vyvojare bude popis pro ANTLR urcite prehlednejsi. Custom reseni neni ani mene narocne a mensi netusim. Ale osobne resit par KB nebo MB, kdyz knihovny muzou mit desitky az stovky MB? Bikeshedding, nic jineho.

Priklad jednoduche gramatiky:
Kód: [Vybrat]
grammar Expr;
prog: (expr NEWLINE)* ;
expr: expr ('*'|'/') expr
    | expr ('+'|'-') expr
    | INT
    | '(' expr ')'
    ;
NEWLINE : [\r\n]+ ;
INT     : [0-9]+ ;
Muzete si to zobrazit v klikatku, mit to zaintegrovane v IDE. Napr. takto -> http://www.antlr.org/images/antlrdt-v4-plugin.png. Prepsat ten (asi jakykoliv) parser do kodu zabere urcite podstatne vice mista, nez ten predpis pro vygenerovani. Casove bude rucny parser o nekolid radu drazsi - precejen zkonvertovat gramatiku z dokumentace na predpi pro generator muze byt na hodinku, nebo den, vypiplat si vlastni parser se bude spise pocitat na tydny. Navic ten predpis pro vygenerovani je velmi intuitivni, na rozdil od implementace custom parseru, kde pokud nedodrzujete nejake predem stanovene konvence, tak budete dlouho bloudit, nez ho cely pochopite (myslim samozrejme netrivialni pripady).

Tak jako tak IDE musite stanovit strukturu, ve které chcete projekt vést, kde co bude uležené, jak se to má tahat (nemusíte, ale pokud si chcete být 100% jistý, stejně to uděláte) takže to, že mi to stáhne nějakou pro mě nelogickou strukturu projektu je prostě špatně.

Pokud sahate po spatnem seedu, je to vas problem. V pripade JavaScript sveta napr. pro Angular jsou guideliny pro strukturu projektu, pojmenovavani atp. Pokud chcete vynalezat po desate kolo... Pokud jde o one-man-show, write-only projekt, tak prosim, ale takove projekty nejsou v komercnim svete prilis bezne. Tam se naopak hezky postupuje podle doporuceni a best practises, pouzivaji se frameworky, ktere nabadaji, jak kod strukturovat a velmi ulehcuji orientaci v kodu, o to vic, kdyz prijdete k hotovemu.

Našeptávání, refaktoring, autocomplete mě osobně přijde, jako kdyby programátor nevěděl kde co v projektu má, jak se k tomu dostat, jak daný kód dokončit, nebo třeba našeptávání funkci (jak ta funkce vlastně má vypadat? Aha našeptávání mě poradí i včetně zápisu atd). K čemu tedy se člověk musí učit programovat, když tu je chytré IDE a dá se v něm vše naklapat? Nemusím si nic pamatovat, nemusím mít přehled v projektu, nemusím nic znát, IDE to vlatsně umí za mě. Pak mě napadá otázka, k čemu je takový programátor, který když posadíte před konzoli na webovém serveru, kde je spadlá webová aplikace aby jí opravil na Vás bude koukat a ptát se, jaké IDE má použít a kde ho najít?

Na Vaší poslední otázku si myslím je odpověd výše pochopitelná

Vy se zivite vyvojem? Takhle to muze fungovat u maleho skriptu na par stovek radku, tam asi i jeste udrzite cely mentalni model v hlave. Ale jak to jde do tisicu radku, tak budete vetsi a vetsi problemy a to i kdyz jste autorem toho kodu. V realnych pripadech je to ale vyjimecny stav, vetsinou se dela v tymu a cely projekt ma mnoho autoru. Ne, programator si nema pamatovat kompletni strukturu vsech modulu v projektu, parametry a chovani kazde funkce, vsechny cleny vsech trid atp. Nejen, ze je to v realnem svete nemozne, je to i silne neprakticke. Proc si vyhrazovat kazdy den hodiny na memorovani kodu, kdyz to v par vterinach zvladne IDE a me staci jen velmi hruby prehled o projektu?

K posledni casti - auto si asi nebudete opravovat lzickou, tak proc ocekavate od programatora, ze bude pracovat s nevhodnym nastrojem?

PS: Za takoveto vynalezani kola by me pravdepodobne vyhodili. To si nedovedu predstavit, ze bych dosel po tydnu prace za sefem a rekl, ze jsem se cely tyden placal s komponentou, kterou jsem mohl vzit z opensource knihovny a zaintegrovat za pul hodiny s lepsim vysledkem a usetrenym tydnem prace. :o

Sten

Re:Pravidla pro pojmenování proměnných
« Odpověď #64 kdy: 04. 11. 2016, 12:48:52 »
Treba v pripade tech generovanych parseru - ne, neprijde me to lepsi. V ramci bakalarky jsem si parser psal a kdyz jsem pak srovnal, jak trivialne, prehledne a i vykoneji to generaval tusim ten ANTLR, tak jsem byl zatracene prekvapeny. V ramci skoly budiz, napsat si neprilis vykonny, hure udrzovatelny parser s ne prilis chytrymi chybovymi hlaskami neni zase takovy problem. Ale ve vsem volnem case, pokud neni cilem naucit se psat parser? Nebo nedejboze v praci, kde by me za takove plytvani mohli i vyhodit? Citelnejsi to bude akorat pro autora custom parseru, ale pro dalsi vyvojare bude popis pro ANTLR urcite prehlednejsi. Custom reseni neni ani mene narocne a mensi netusim. Ale osobne resit par KB nebo MB, kdyz knihovny muzou mit desitky az stovky MB? Bikeshedding, nic jineho.

Priklad jednoduche gramatiky:
Kód: [Vybrat]
grammar Expr;
prog: (expr NEWLINE)* ;
expr: expr ('*'|'/') expr
    | expr ('+'|'-') expr
    | INT
    | '(' expr ')'
    ;
NEWLINE : [\r\n]+ ;
INT     : [0-9]+ ;
Muzete si to zobrazit v klikatku, mit to zaintegrovane v IDE. Napr. takto -> http://www.antlr.org/images/antlrdt-v4-plugin.png. Prepsat ten (asi jakykoliv) parser do kodu zabere urcite podstatne vice mista, nez ten predpis pro vygenerovani. Casove bude rucny parser o nekolid radu drazsi - precejen zkonvertovat gramatiku z dokumentace na predpi pro generator muze byt na hodinku, nebo den, vypiplat si vlastni parser se bude spise pocitat na tydny. Navic ten predpis pro vygenerovani je velmi intuitivni, na rozdil od implementace custom parseru, kde pokud nedodrzujete nejake predem stanovene konvence, tak budete dlouho bloudit, nez ho cely pochopite (myslim samozrejme netrivialni pripady).

Proč jste nepoužil Bison nebo Boost Spirit, kterému předhodíte gramatiku a parser to vygeneruje automaticky během buildu?


noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Pravidla pro pojmenování proměnných
« Odpověď #65 kdy: 04. 11. 2016, 13:02:07 »
Proč jste nepoužil Bison nebo Boost Spirit, kterému předhodíte gramatiku a parser to vygeneruje automaticky během buildu?

To uz snad vyjde nastejno, ne? Nekde si neco naklikam, pripadne upravim recept, a ono to nekdy vyplivne nejaky kod, ktery nemusi byt esteticky pirtazlivy, ale parser je "napsany" za hodinku, ve vetsine pripadu je podstatne rychlejsi nez custom a je plne funkcni (nejsou ani treba testy, nebo jen velmi malo ve srovnani s vlastnim parserem).

PS: Nezivim se Javou ani psanim parseru, to byl jen priklad jak "dnesni hloupy programator" zvladne ukol za zlomek casu a lepe, nez "chytry poradny programator" dedek, co si to pise na kolene :).

Sten

Re:Pravidla pro pojmenování proměnných
« Odpověď #66 kdy: 04. 11. 2016, 13:14:14 »
To uz snad vyjde nastejno, ne? Nekde si neco naklikam, pripadne upravim recept, a ono to nekdy vyplivne nejaky kod, ktery nemusi byt esteticky pirtazlivy, ale parser je "napsany" za hodinku, ve vetsine pripadu je podstatne rychlejsi nez custom a je plne funkcni (nejsou ani treba testy, nebo jen velmi malo ve srovnani s vlastnim parserem).

PS: Nezivim se Javou ani psanim parseru, to byl jen priklad jak "dnesni hloupy programator" zvladne ukol za zlomek casu a lepe, nez "chytry poradny programator" dedek, co si to pise na kolene :).

Rozdíl je v tom, že na to nepotřebujete žádné speciální IDE, což bylo to, na co jste reagoval.

Ivan Nový

Re:Pravidla pro pojmenování proměnných
« Odpověď #67 kdy: 04. 11. 2016, 13:22:15 »
Proč jste nepoužil Bison nebo Boost Spirit, kterému předhodíte gramatiku a parser to vygeneruje automaticky během buildu?

To uz snad vyjde nastejno, ne? Nekde si neco naklikam, pripadne upravim recept, a ono to nekdy vyplivne nejaky kod, ktery nemusi byt esteticky pirtazlivy, ale parser je "napsany" za hodinku, ve vetsine pripadu je podstatne rychlejsi nez custom a je plne funkcni (nejsou ani treba testy, nebo jen velmi malo ve srovnani s vlastnim parserem).

PS: Nezivim se Javou ani psanim parseru, to byl jen priklad jak "dnesni hloupy programator" zvladne ukol za zlomek casu a lepe, nez "chytry poradny programator" dedek, co si to pise na kolene :).

No proti IDE jsou spíš mladí, starší jsou odkojeni Windows a tedy IDE. Mladí začínali s linuxem a pro ně přitažlivou magií bashe :-)))

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Pravidla pro pojmenování proměnných
« Odpověď #68 kdy: 04. 11. 2016, 13:36:21 »
Rozdíl je v tom, že na to nepotřebujete žádné speciální IDE, což bylo to, na co jste reagoval.

To uricte nepotrebujete ani na ty Visual srandy od Mrkvosrotu, taky to "jde" urcite napsat. Stejne tak tu ANTLR gramatiku muzete napsat rucne textove bez pomoci GUI nebo jak pisete, pouzit uplne jiny nastroj. Ja nepsal, ze neexistuje jina cesta, jen ze ta zatracovana cesta muze byt klidne lepsi/nejlepsi, rychlejsi na implementaci i beh, nez si to placat na vlastnim pisecku od 0 v poznamkovem bloku.

Naopak me prijde ve vetsine pripadu zpatecnicke vyzadovat po programatorovi (nebo i jen glorifikovat) pouzivani objektivne podprumernych nastroju jen proto, protoze "je programator" a stravit tim 10x nebo i vice casu jen proto, ze "je programator" :D. Snad dostavame zaplaceno za funkcionalitu a efektivitu, ne za to, ze "jsme programatori"...

No proti IDE jsou spíš mladí, starší jsou odkojeni Windows a tedy IDE. Mladí začínali s linuxem a pro ně přitažlivou magií bashe :-)))

To snad ne ;D. Ze bych byl tam moc stary? :(

Ale jinak - na FITu si nevybavuju moc studentu, kteri by (dobrovolne) pouzivali Tuxe a textove IDE. Po pravde si z desitek lidi, co jsem s nima delal na projktech, vybavuju presne jednodho linuxaka ve vimu, zbytek Wokna (v te dobe vcetne me).

dustin

Re:Pravidla pro pojmenování proměnných
« Odpověď #69 kdy: 04. 11. 2016, 16:15:11 »
Naopak me prijde ve vetsine pripadu zpatecnicke vyzadovat po programatorovi (nebo i jen glorifikovat) pouzivani objektivne podprumernych nastroju jen proto, protoze "je programator" a stravit tim 10x nebo i vice casu jen proto, ze "je programator" :D. Snad dostavame zaplaceno za funkcionalitu a efektivitu, ne za to, ze "jsme programatori"...

Taky jsem nějak nepochopil, jakou to má výhodu. IMO má každý nástroj své zaměření. Tak jako nebudu psát velký javovský projekt ve vimu, nebudu si na server instalovat grafické IDE kvůli skriptování a editaci konfiguráků.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Pravidla pro pojmenování proměnných
« Odpověď #70 kdy: 04. 11. 2016, 16:23:11 »
Presne tak. I treba to nenavidene (a z hlediska jazyka a knihovny objektivne spatne) PHP muze dobre poslouzit treba na maly e-shop s woocommerce, ktery je nekde na hostingu za par supu. Delat toto napr. v Jave, tak by jen hosting vysel nekolika nasobne draz.

čumil

Re:Pravidla pro pojmenování proměnných
« Odpověď #71 kdy: 04. 11. 2016, 16:34:58 »
Libí se mi dnešní doba programátorska + IDE ...

Programátor bez IDE nevytvoří projekt.

A když ho vytvoří v IDE (krásně dříve řečeno "nakliká") má hnusný kód ... (logicky)

To je okecáváno tím, že to generuje IDE, ale přitom 80% programátorů ani neví, co to to IDE vygenrovalo natož co to dělá a jak by to měli udělat bez IDE.

Líbí se mi jak Kit razí "svůj styl" jelikož osobně to mám stejně ;-)

Za 10 let bude místo IDE podstatné části programu generovat AIDE (Artificial Inteligence Development Environment), vy budete jen připravovat trénovací data a počáteční šablony nutné ke spuštění evolučních algoritmů a aby byla možnost ovlivnit proces hledání řešení pomocí AIDE, ve výsledném kódu se pak stejně nikdo nevyzná a ani ho nebude zkoumat, AI bude generovat rovnou kód pro VM. Nebudete programátor, ale mentor stroje a k mentorování vám bude sloužit AIDE.
A výš kámo že dnešní EA systemy fajlují od určité dimenzionality problému ? Víš taky že žerou pekelně výkonu? Tadle tvoje představa je stejná blbost jako že za 10 let budeme dělat každej tejden 8 hodin.
EA vypadá lehce a a jako lék na všechno. Bohužel, pokud si nikdy EA nevyzkoušel, tak nemůžeš vědět jak moc obtížné je to skutečně na něco aplikovat a dobrat se k výsledku.
EA je super, ale má své limity, ať už implementační, regulační, tak i výkonostní.
Zkoušel si někdy počítat kolik výkonu bys potřeboval na simulaci veškerého života na zemi ? Já ne ale musí to být nepředstavitelné číslo. A přesně tolik výkonu plus know how člověk potřebuje aby udělal AGI.

hrr do toho

Ivan Nový

Re:Pravidla pro pojmenování proměnných
« Odpověď #72 kdy: 04. 11. 2016, 16:56:38 »
Libí se mi dnešní doba programátorska + IDE ...

Programátor bez IDE nevytvoří projekt.

A když ho vytvoří v IDE (krásně dříve řečeno "nakliká") má hnusný kód ... (logicky)

To je okecáváno tím, že to generuje IDE, ale přitom 80% programátorů ani neví, co to to IDE vygenrovalo natož co to dělá a jak by to měli udělat bez IDE.

Líbí se mi jak Kit razí "svůj styl" jelikož osobně to mám stejně ;-)

Za 10 let bude místo IDE podstatné části programu generovat AIDE (Artificial Inteligence Development Environment), vy budete jen připravovat trénovací data a počáteční šablony nutné ke spuštění evolučních algoritmů a aby byla možnost ovlivnit proces hledání řešení pomocí AIDE, ve výsledném kódu se pak stejně nikdo nevyzná a ani ho nebude zkoumat, AI bude generovat rovnou kód pro VM. Nebudete programátor, ale mentor stroje a k mentorování vám bude sloužit AIDE.
A výš kámo že dnešní EA systemy fajlují od určité dimenzionality problému ? Víš taky že žerou pekelně výkonu? Tadle tvoje představa je stejná blbost jako že za 10 let budeme dělat každej tejden 8 hodin.
EA vypadá lehce a a jako lék na všechno. Bohužel, pokud si nikdy EA nevyzkoušel, tak nemůžeš vědět jak moc obtížné je to skutečně na něco aplikovat a dobrat se k výsledku.
EA je super, ale má své limity, ať už implementační, regulační, tak i výkonostní.
Zkoušel si někdy počítat kolik výkonu bys potřeboval na simulaci veškerého života na zemi ? Já ne ale musí to být nepředstavitelné číslo. A přesně tolik výkonu plus know how člověk potřebuje aby udělal AGI.

hrr do toho

Ano, ale na generování částí programů se právě hodí. Existuje plno mechanických činností i kreativní povahy, na kterou se dají využít. Máte-li určitý typ webu, jsou EA vhodné na vygenerování jeho variant pro jiné zákazníky. AI se naučí aktuální styl z internetu, a může produkovat podobné návrhy. Formálně je to využití EA ke generování modifikací gramatik popisujících daný web, a natrénovanou AI použijete jako fitness funkci. Výsledkem bude gramatika, která bude produkovat vizuálně prodejné weby. Když přidáte ke gramatice omezující pravidla spojené se sémantikou webu, vygeneruje vám rovnou funkční web.

Výkon nevadí, protože pak ušetříte, učení bude trvat nějakou dobu, ale pak bude v řádu minut produkovat různé návrhy.

Nakonec Googlu se podařilo vygenerovat pomocí umělé inteligence její vlastní šifrovací algoritmus, takže to není budoucnost, ale pomalu už současnost. Tuším že na Rootu taky o tom psali. Jinak viz zde http://www.osel.cz/9076-neuralni-site-googlu-vynalezly-vlastni-sifrovani.html

Ivan Nový

Re:Pravidla pro pojmenování proměnných
« Odpověď #73 kdy: 04. 11. 2016, 17:03:13 »
Libí se mi dnešní doba programátorska + IDE ...

Programátor bez IDE nevytvoří projekt.

A když ho vytvoří v IDE (krásně dříve řečeno "nakliká") má hnusný kód ... (logicky)

To je okecáváno tím, že to generuje IDE, ale přitom 80% programátorů ani neví, co to to IDE vygenrovalo natož co to dělá a jak by to měli udělat bez IDE.

Líbí se mi jak Kit razí "svůj styl" jelikož osobně to mám stejně ;-)

Za 10 let bude místo IDE podstatné části programu generovat AIDE (Artificial Inteligence Development Environment), vy budete jen připravovat trénovací data a počáteční šablony nutné ke spuštění evolučních algoritmů a aby byla možnost ovlivnit proces hledání řešení pomocí AIDE, ve výsledném kódu se pak stejně nikdo nevyzná a ani ho nebude zkoumat, AI bude generovat rovnou kód pro VM. Nebudete programátor, ale mentor stroje a k mentorování vám bude sloužit AIDE.
A výš kámo že dnešní EA systemy fajlují od určité dimenzionality problému ? Víš taky že žerou pekelně výkonu? Tadle tvoje představa je stejná blbost jako že za 10 let budeme dělat každej tejden 8 hodin.
EA vypadá lehce a a jako lék na všechno. Bohužel, pokud si nikdy EA nevyzkoušel, tak nemůžeš vědět jak moc obtížné je to skutečně na něco aplikovat a dobrat se k výsledku.
EA je super, ale má své limity, ať už implementační, regulační, tak i výkonostní.
Zkoušel si někdy počítat kolik výkonu bys potřeboval na simulaci veškerého života na zemi ? Já ne ale musí to být nepředstavitelné číslo. A přesně tolik výkonu plus know how člověk potřebuje aby udělal AGI.

hrr do toho

Znáte to: Nemusí pršet, jen když kape. Kolik višní, tolik třešní :-)))

Kit

Re:Pravidla pro pojmenování proměnných
« Odpověď #74 kdy: 04. 11. 2016, 18:58:49 »
Je to přesne dnešní programátorská doba

Myslíte tu dnešní dobu, kdy v jednom kuse koukám přes rameno kolegům vimařům, lidem, co pouštějí gdb z příkazové řádky, lidem, co dělají hromadné editace pomocí sedu, atd...? Hrozná to doba.

Když mám Vim, tak přece nepotřebuji ani gdb, ani sed.