Programátorův pohled na svět

dustin

Re:Programátorův pohled na svět
« Odpověď #135 kdy: 09. 01. 2016, 09:15:14 »
Obvykle stačí jedno slovo, slepence nebývají potřebné. Název proměnné - podstatné jméno, název metody - sloveso, název rozhraní - přídavné jméno. Dodržování těchto pravidel krásně zpřehlední aplikaci, čte se to jak pohádka.

Ty krásně přehledné jednoslovné názvy bych chtěl vidět. Možná se to čte jako pohádka, akorát ji pochopí jenom autor, prvních pár dnů... Ale co, zaplaceno se dostane a po nás přece potopa...


Trident

Re:Programátorův pohled na svět
« Odpověď #136 kdy: 09. 01. 2016, 09:37:36 »
Obvykle stačí jedno slovo, slepence nebývají potřebné. Název proměnné - podstatné jméno, název metody - sloveso, název rozhraní - přídavné jméno. Dodržování těchto pravidel krásně zpřehlední aplikaci, čte se to jak pohádka.

Ty krásně přehledné jednoslovné názvy bych chtěl vidět. Možná se to čte jako pohádka, akorát ji pochopí jenom autor, prvních pár dnů... Ale co, zaplaceno se dostane a po nás přece potopa...
Je to opet historicky relikt osobniho technologickeho vyvoje. Omezeni nazvu souboru na 8-12 pismen, omezeni delky procedur a funkci, omezeni systemova (ano fakt jsme se jeste na VS ucili delat kratsi zdrojaky kvuli mistu), ciselne kody chyb. A tyhle zvyky si lide nesou i do 21 stoleti.

Proti tomu stoji javovsky prilis popisne:
space.earth.my_city.street32.olddirtyhouse.someflat.uglyroom.lightswitch.tinybutton je fakt maso. A nedivim se ze javisti se kolikrat bez idecka co jim to graficky rozlozi neobejdou, nebot proste kouknu v editoru a vidim tady moc nefunguje.

Radovan.

Re:Programátorův pohled na svět
« Odpověď #137 kdy: 09. 01. 2016, 09:51:47 »
Proti tomu stoji javovsky prilis popisne:
space.earth.my_city.street32.olddirtyhouse.someflat.uglyroom.lightswitch.tinybutton je fakt maso. A nedivim se ze javisti se kolikrat bez idecka co jim to graficky rozlozi neobejdou, nebot proste kouknu v editoru a vidim tady moc nefunguje.

- Kolik programátorů ve Windows je potřeba na vyměnění žárovky?
- 472. Jeden napíše WinGetLightBulbHandle, jeden napíše WinQueryStatusLightBulb, jeden napíše WinGetLightSwitchHandle...

dustin

Re:Programátorův pohled na svět
« Odpověď #138 kdy: 09. 01. 2016, 10:12:24 »
Extrémy se najdou na obou stranách, jistě. A proto je potřeba používat rozum a cit.

Mimochodem, to "kouknu do editoru a vidím" u složitějšího softu stejně nefunguje, vidím kousíček a abych to pochopil, stejně musím nastudovat, co se děje kolem. A tomu rozumné popisné názvy sakra pomáhají. Orientaci v cizím kódu řeším skoro každý den.

Nevidím důvod se např. u byznys aplikací (které živí většinu vývojářů) omezovat na 80 znaků. Pokud někdo není ochoten zaplatit 3k za fullhd monitor, nevěřím, že se programováním živí.

Jo, např. linuxový kernel má historický limit 80 znaků a správci to tvrdě vyžadují, přímo ve zdrojácích kernelu je na to skript, který štábní kulturu kontroluje. Jenže kernelí kód vzorem přehlednosti a čitelnosti kódu není ani náhodou...

Kit

Re:Programátorův pohled na svět
« Odpověď #139 kdy: 09. 01. 2016, 13:41:10 »
Obvykle stačí jedno slovo, slepence nebývají potřebné. Název proměnné - podstatné jméno, název metody - sloveso, název rozhraní - přídavné jméno. Dodržování těchto pravidel krásně zpřehlední aplikaci, čte se to jak pohádka.

Ty krásně přehledné jednoslovné názvy bych chtěl vidět. Možná se to čte jako pohádka, akorát ji pochopí jenom autor, prvních pár dnů... Ale co, zaplaceno se dostane a po nás přece potopa...
Je to opet historicky relikt osobniho technologickeho vyvoje. Omezeni nazvu souboru na 8-12 pismen, omezeni delky procedur a funkci, omezeni systemova (ano fakt jsme se jeste na VS ucili delat kratsi zdrojaky kvuli mistu), ciselne kody chyb. A tyhle zvyky si lide nesou i do 21 stoleti.

Jsou snad mé ukázky použití funkce s více parametry nečitelné?

Nedělám to kvůli místu, ale kvůli čitelnosti. Už jsem psal, že oko má při čtení problém na řádcích, které mají víc než 65 znaků. Kratší zdrojáky dělám kvůli SRP. Číselné kódy chyb systémových funkcí konvertuji na výjimky s popisným textem.

Ještě nějaký problém?

Citace
Proti tomu stoji javovsky prilis popisne:
space.earth.my_city.street32.olddirtyhouse.someflat.uglyroom.lightswitch.tinybutton je fakt maso. A nedivim se ze javisti se kolikrat bez idecka co jim to graficky rozlozi neobejdou, nebot proste kouknu v editoru a vidim tady moc nefunguje.

Evidentně je zde porušován Déméteřin zákon. To snad ani nemá cenu číst a tomu vývojáři bych to omlátil o hlavu. V Javě se má psát objektově.


Kit

Re:Programátorův pohled na svět
« Odpověď #140 kdy: 09. 01. 2016, 13:46:55 »
Nevidím důvod se např. u byznys aplikací (které živí většinu vývojářů) omezovat na 80 znaků. Pokud někdo není ochoten zaplatit 3k za fullhd monitor, nevěřím, že se programováním živí.

Šířka monitoru s tím vůbec nesouvisí. Texty s kratšími řádky je obvykle možné číst pohybem očí shora dolů. U textů s dlouhými řádky je nutno hýbat očima (nebo i hlavou) zleva doprava a zpět. To velmi unavuje a tedy i snižuje produktivitu.

Kit

Re:Programátorův pohled na svět
« Odpověď #141 kdy: 09. 01. 2016, 13:51:56 »
V tomhle mi teda přijde lepší využít defaultní parametry:

Kód: (Python) [Vybrat]
content = file_get_contents(
    filename="source.txt",
    usePath=False,
    context=stream_context_create(),
    offset=-1,
    maxle=100000,
)

Pokud to daný jazyk umožňuje, je to OK. V PHP si musim pomoct jinak.

Kit

Re:mysleni pana Programatora
« Odpověď #142 kdy: 09. 01. 2016, 14:04:26 »
Spíše měl asi na mysly dlouhé výrazy. Zalomení dlouhého výrazu na 2-3 řádky se, alespoň u mě, čitelnosti moc nepomůže, možná spíš naopak. Pro někoho (včetně mě) je lepší, když se to rozloží na více menších kroků.

Ale pokud se to rozdeli na vice radku, tak pak v podstate korespenduje radek s krokem. Naopak zavadeni pomocnych promennych, ktere se nasledne ihned pouziji prave jednou me prijde jako obfuskace kodu.

Pokud někdo ty pomocné proměnné nazve pom1, pom2, foo, bar a dalšími nesmysly, tak je to obfuskace. Pokud jsou ty názvy snadno čitelné, diktovatelné a sémanticky správné, tak naopak čitelnosti pomáhají.

Re:mysleni pana Programatora
« Odpověď #143 kdy: 09. 01. 2016, 14:11:24 »
Pokud někdo ty pomocné proměnné nazve pom1, pom2, foo, bar a dalšími nesmysly, tak je to obfuskace. Pokud jsou ty názvy snadno čitelné, diktovatelné a sémanticky správné, tak naopak čitelnosti pomáhají.
Myslíš, že v tomhle příkladu http://forum.root.cz/index.php?topic=12452.msg153091#msg153091 pomáhají čitelnosti? Mně přijde nejčitelnější ten prostřední (s rozumným odsazením, tady mi to oproti textarea ujelo)

Ten poslední mi nepřijde moc čitelný, protože si musím zbytečně všímat, že cars_with_id je použito na druhém řádku a ty dva řádky si v hlavě spojit do jednoho a to je zdržení. Jo, kdyby ty fce byly složitější, tak by se to dalo pochopit, že by pojmenování možná pomohlo.

Kit

Re:Programátorův pohled na svět
« Odpověď #144 kdy: 09. 01. 2016, 14:13:10 »
Mimochodem, to "kouknu do editoru a vidím" u složitějšího softu stejně nefunguje, vidím kousíček a abych to pochopil, stejně musím nastudovat, co se děje kolem. A tomu rozumné popisné názvy sakra pomáhají. Orientaci v cizím kódu řeším skoro každý den.

Každá třída by měla být "kouknu do editoru a vidím". Minimum skrytých závislostí a pokud možno vše mít popsáno v rozhraní, které by zároveň mělo být co nejštíhlejší. Veřejné objekty a metody jsou implicitně také součástí rozhraní třídy, proto by se i jimi mělo šetřit.

Ivan Nový

Re:mysleni pana Programatora
« Odpověď #145 kdy: 09. 01. 2016, 14:17:12 »
Myslim si, ze vetsina programatoru ma (pri nejmensim na zacatku kariery) sklony k bipolarnimu vnimani sveta.
Programator zpravidla nezna "je tam trochu vody". Programator formuluje otazky jako:
je tam nejaka voda? (1 kapka staci k odpovedi ano).
je ta sklenice plna(neexistuje pro nej skoro plna)? Zkratka tak, aby bylo mozne odpovidat ano - ne stejne jako mu to vyhodnocuje pocitac.

Programator, ackoliv je v ramci IT sveta v podstate delnicka profese, tak jiste znaky analytickeho mysleni potrebuje.

Rekl bych, ze obecne bude mezi programatory relativne malo lidi vericich (ve smyslu nejakeho nabozenstvi).

A ano, programator je clovek ktery rad vidi nejaky cil, konec, reseni problemu. Na rozdil od tech mene prirodnich vet kde 50 popsanych stranek nemusi znamenat vubec zadny zaver(ackoliv penize z grantu prozrany byly)
V zasade s tebou souhlasim. Ten bipolar zustava nekterym az do pozdni dospelosti. Je to urcitym zpusobem i profesne omezujici nebot takovy clovek neni prilis schopen nejakeho kompromisu nebo sebekritiky.
Ale nechapu co se ti na prirodnich vedach tak nezamlouva. Vetsinou tam je nejaky vysledek jako ze na zaklade statistiky a pozorovanim se dana zvirata chovaji protoze...  Nebo posledni vysledky optickych jevu kolem cerne diry jsou taky dost cool. A vice konkretni jsou vyzkumy z fyziky a chemie.

Kdysi davno kdyz jeste matematika byla na skolach modlou a jistym politickym nastrojem presvedcovani vericich na ateismus se matematika radila mezi prirodni vedy (na me byvale skole jsem kvuli tomu byl taky nejak prirazen k teto sekci neb socialismus skolstvi stale obchazi...)
Matematika spise je hromadou nejakych myslenkovych konstrukci(zjednodusenych) ktere by mely popisovat realne deje ve svete. Spis se jedna o velice abstraktni jazyk na popisovani deju. Avsak umele vytvoreny.
Jaký druh na Zemi je nejcennější? Člověk a jeho výtvory, protože evoluce ani za miliardy let dinosauřího druhového panování, nic podobného nevytvořila. A jak se zdá, na vrcholu této evoluce bude myslící stroj, který nebude potřebovat okolní svět, a svět si vytvoří sám v sobě. Superinteligence bude autistická.

Kit

Re:mysleni pana Programatora
« Odpověď #146 kdy: 09. 01. 2016, 14:19:58 »
Pokud někdo ty pomocné proměnné nazve pom1, pom2, foo, bar a dalšími nesmysly, tak je to obfuskace. Pokud jsou ty názvy snadno čitelné, diktovatelné a sémanticky správné, tak naopak čitelnosti pomáhají.
Myslíš, že v tomhle příkladu http://forum.root.cz/index.php?topic=12452.msg153091#msg153091 pomáhají čitelnosti? Mně přijde nejčitelnější ten prostřední (s rozumným odsazením, tady mi to oproti textarea ujelo)

Ten poslední mi nepřijde moc čitelný, protože si musím zbytečně všímat, že cars_with_id je použito na druhém řádku a ty dva řádky si v hlavě spojit do jednoho a to je zdržení. Jo, kdyby ty fce byly složitější, tak by se to dalo pochopit, že by pojmenování možná pomohlo.

Ten prostřední mi také přijde nejčitelnější. Také proto, že se jedná o fluent interface, u kterého je to jaksi standardní zápis. Jen to odsazení bych zvolil 4 mezery, resp. jeden tab.

Ivan Nový

Re:Programátorův pohled na svět
« Odpověď #147 kdy: 09. 01. 2016, 14:32:39 »
Výraz space.earth.my_city.street32.olddirtyhouse.someflat.uglyroom.lightswitch.tinybutton je špatně proto, že ukazuje na špatný objektový návrh,
volání této metody v míste použití by mělo vypadat switchButton() a vše by mělo být převedeno na zasílání zpráv objektům uvnitř toho řetězce volání. Kontext by měl být zřejmý z obsahu těla metody, kde to volání je použito.

Když dítě skládá kostky lega, taky ho nezajímá, z čeho ty kostky jsou vyrobeny. To zajímá jen výrobce těch kostek.

BLEK.

Re:Programátorův pohled na svět
« Odpověď #148 kdy: 13. 01. 2016, 21:07:20 »
Já jako programátor to vidím obdobně. Vysvětlovat neprogramátorovi jaký to je je jako vysvětlovat to psovi. Bude na tebe čumět a může ti chvilku i připadat že ti rozumí ale pak ti dojde že je to jen blbej pes a že tomu nemůže rozumět, je to marný.

Ptát se jaké je to být programátorem je ptát se jaké je to být bohem. Jedinej způsob jak pochopit jaký je být programátorem je stát se jím. Pokud máš rád filozofování o smyslu a fungování věcí, tak programování tě nakopne na úplně novej level. Ale je to nebezpečný, může se ti stát že tě to tak chytne že tě už nebude zajímat nic jinýho. :-)

Pokud tě chytne programování tak, že tě nebude zajímat nic jiného, tak pak hrozí, že ti psycholožka diagnostikuje poruchu osobnosti :-(

Viz třeba zde: http://www.jikos.cz/~mikulas/komix/FREESOFT.GIF

Unknown

Re:mysleni pana Programatora
« Odpověď #149 kdy: 14. 01. 2016, 09:45:46 »
Myslim si, ze vetsina programatoru ma (pri nejmensim na zacatku kariery) sklony k bipolarnimu vnimani sveta.
Programator zpravidla nezna "je tam trochu vody". Programator formuluje otazky jako:
je tam nejaka voda? (1 kapka staci k odpovedi ano).
je ta sklenice plna(neexistuje pro nej skoro plna)? Zkratka tak, aby bylo mozne odpovidat ano - ne stejne jako mu to vyhodnocuje pocitac.

Programator, ackoliv je v ramci IT sveta v podstate delnicka profese, tak jiste znaky analytickeho mysleni potrebuje.

Rekl bych, ze obecne bude mezi programatory relativne malo lidi vericich (ve smyslu nejakeho nabozenstvi).

A ano, programator je clovek ktery rad vidi nejaky cil, konec, reseni problemu. Na rozdil od tech mene prirodnich vet kde 50 popsanych stranek nemusi znamenat vubec zadny zaver(ackoliv penize z grantu prozrany byly)
V zasade s tebou souhlasim. Ten bipolar zustava nekterym az do pozdni dospelosti. Je to urcitym zpusobem i profesne omezujici nebot takovy clovek neni prilis schopen nejakeho kompromisu nebo sebekritiky.
Ale nechapu co se ti na prirodnich vedach tak nezamlouva. Vetsinou tam je nejaky vysledek jako ze na zaklade statistiky a pozorovanim se dana zvirata chovaji protoze...  Nebo posledni vysledky optickych jevu kolem cerne diry jsou taky dost cool. A vice konkretni jsou vyzkumy z fyziky a chemie.

Kdysi davno kdyz jeste matematika byla na skolach modlou a jistym politickym nastrojem presvedcovani vericich na ateismus se matematika radila mezi prirodni vedy (na me byvale skole jsem kvuli tomu byl taky nejak prirazen k teto sekci neb socialismus skolstvi stale obchazi...)
Matematika spise je hromadou nejakych myslenkovych konstrukci(zjednodusenych) ktere by mely popisovat realne deje ve svete. Spis se jedna o velice abstraktni jazyk na popisovani deju. Avsak umele vytvoreny.
A jak se zdá, na vrcholu této evoluce bude myslící stroj, který nebude potřebovat okolní svět, a svět si vytvoří sám v sobě. Superinteligence bude autistická.
Vy jste z Prognostickeho ustavu?