Jak se naučit slušně vyvíjet v Javě

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #30 kdy: 22. 05. 2017, 09:08:12 »
Jeste jsem zapomel dodat jednu vec minimalne Lisp a Prolog je soucast vyuky na beznych IT VS v CR. V nekterych pripadech se tam clovek setka i s tim Haskellem (mozna i se Smalltalkem - ale o takove v CR nevim). Temito jazyky jsem byl tedy take dotcen.

Duvod proc jsem toto vlakno zalozil neni ten abych se naucil zaklady Java SE, ale experienced veci specificke pro Javu a jeji best practices. Znalost jineho jazyka muze byt v nekterych pripadech uzitecna nekdy ne - zalezi od kontextu.
Java není určená pro "experienced věci", ale pro co nejsnadnější psaní kódu. Různé "best practices" a vzory jsou často zbytečné a dost kontraproduktivní. Chce-li se někdo naučit idiomatickou Javu, měl by prostě hodně číst kódy a hodně psát s použitím vlastní hlavy, tj. bez ohledu na něčí "best practices".


Robert

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #31 kdy: 22. 05. 2017, 09:30:06 »
Jeste jsem zapomel dodat jednu vec minimalne Lisp a Prolog je soucast vyuky na beznych IT VS v CR. V nekterych pripadech se tam clovek setka i s tim Haskellem (mozna i se Smalltalkem - ale o takove v CR nevim). Temito jazyky jsem byl tedy take dotcen.

Duvod proc jsem toto vlakno zalozil neni ten abych se naucil zaklady Java SE, ale experienced veci specificke pro Javu a jeji best practices. Znalost jineho jazyka muze byt v nekterych pripadech uzitecna nekdy ne - zalezi od kontextu.
Java není určená pro "experienced věci", ale pro co nejsnadnější psaní kódu. Různé "best practices" a vzory jsou často zbytečné a dost kontraproduktivní. Chce-li se někdo naučit idiomatickou Javu, měl by prostě hodně číst kódy a hodně psát s použitím vlastní hlavy, tj. bez ohledu na něčí "best practices".

Tak tohle me hodne zajima :-) zrovna na nekolika pohovorech pro Javisty jsem se setkal uplne s opacnym pristupem a doslova cloveka zkouseli z patternu a ruznych best practices (cca 100 otazek stahnutych z netu a s kazdym uchazecem to pri pohovoru prosli osobne).

A ano chapu ze kdyz clovek bude bezmyslenkovite pouzivat nejake design patterny nebo best practices, tak bude psat doslova sra***y :-)

Kit

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #32 kdy: 22. 05. 2017, 09:33:27 »
Java není určená pro "experienced věci", ale pro co nejsnadnější psaní kódu. Různé "best practices" a vzory jsou často zbytečné a dost kontraproduktivní. Chce-li se někdo naučit idiomatickou Javu, měl by prostě hodně číst kódy a hodně psát s použitím vlastní hlavy, tj. bez ohledu na něčí "best practices".

Také jsem býval odpůrcem návrhových vzorů, než jsem pochopil jejich smysl.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #33 kdy: 22. 05. 2017, 09:42:15 »
Jeste jsem zapomel dodat jednu vec minimalne Lisp a Prolog je soucast vyuky na beznych IT VS v CR. V nekterych pripadech se tam clovek setka i s tim Haskellem (mozna i se Smalltalkem - ale o takove v CR nevim). Temito jazyky jsem byl tedy take dotcen.

Duvod proc jsem toto vlakno zalozil neni ten abych se naucil zaklady Java SE, ale experienced veci specificke pro Javu a jeji best practices. Znalost jineho jazyka muze byt v nekterych pripadech uzitecna nekdy ne - zalezi od kontextu.
Java není určená pro "experienced věci", ale pro co nejsnadnější psaní kódu. Různé "best practices" a vzory jsou často zbytečné a dost kontraproduktivní. Chce-li se někdo naučit idiomatickou Javu, měl by prostě hodně číst kódy a hodně psát s použitím vlastní hlavy, tj. bez ohledu na něčí "best practices".
A ano chapu ze kdyz clovek bude bezmyslenkovite pouzivat nejake design patterny nebo best practices, tak bude psat doslova sra***y :-)
Jo, tomu se říká cargo cult programming. Návrhové vzory mají v jistých případech smysl, ale málokdo ví, kdy to je. Zkušený vývojář používá "best practices" intuitivně. Super čtení je v tomto směru Knuth (známý svým despektem k "software engineering").

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #34 kdy: 22. 05. 2017, 09:43:58 »
Zkušený vývojář používá "best practices" intuitivně.

Ale pred tim se halt hodi tech par let, kdy je pouziva vedome, nez mu prejdou do krve.


ag

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #35 kdy: 22. 05. 2017, 10:54:09 »
Zkušený vývojář používá "best practices" intuitivně.

Ale pred tim se halt hodi tech par let, kdy je pouziva vedome, nez mu prejdou do krve.

Pokud se je musí učit od někoho, tak je to k ničemu. Akorát z něj bude právě ten týpek na pohovoru, který ptá na "důležité" znalosti. Tohle není lepení bot, kde potřebuješ mít věci v krvi. Kit moc nepřekvapuje, protože stejně vyvíjet neumí a vzory jsou pro něj dobrá schovka.

Na návrhové vzory se má cenu ptát jen úplných začátečníků.

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #36 kdy: 22. 05. 2017, 11:02:19 »
Zkušený vývojář používá "best practices" intuitivně.

Ale pred tim se halt hodi tech par let, kdy je pouziva vedome, nez mu prejdou do krve.

Pokud se je musí učit od někoho, tak je to k ničemu.

A jak jinak? Pokus - omyl? Neni to ztrata casu? (nerikam, ze to nejde, ale otazka je, zda to neni plytvani)

Kit

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #37 kdy: 22. 05. 2017, 11:15:56 »
Pokud se je musí učit od někoho, tak je to k ničemu. Akorát z něj bude právě ten týpek na pohovoru, který ptá na "důležité" znalosti. Tohle není lepení bot, kde potřebuješ mít věci v krvi. Kit moc nepřekvapuje, protože stejně vyvíjet neumí a vzory jsou pro něj dobrá schovka.

Na návrhové vzory se má cenu ptát jen úplných začátečníků.

Návrhové vzory používám i pro komunikaci s těmi začátečníky. Když mu řeknu, aby tuto část udělal přes Simple Factory a tuhle přes Observer, tak předpokládám, že mi rozumí. Pokud ne, musí si to nastudovat.

ag

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #38 kdy: 22. 05. 2017, 12:16:45 »
Zkušený vývojář používá "best practices" intuitivně.

Ale pred tim se halt hodi tech par let, kdy je pouziva vedome, nez mu prejdou do krve.

Pokud se je musí učit od někoho, tak je to k ničemu.

A jak jinak? Pokus - omyl? Neni to ztrata casu? (nerikam, ze to nejde, ale otazka je, zda to neni plytvani)

To je dobrá otázka.

Pokud se je musí učit od někoho, tak je to k ničemu. Akorát z něj bude právě ten týpek na pohovoru, který ptá na "důležité" znalosti. Tohle není lepení bot, kde potřebuješ mít věci v krvi. Kit moc nepřekvapuje, protože stejně vyvíjet neumí a vzory jsou pro něj dobrá schovka.

Na návrhové vzory se má cenu ptát jen úplných začátečníků.

Návrhové vzory používám i pro komunikaci s těmi začátečníky. Když mu řeknu, aby tuto část udělal přes Simple Factory a tuhle přes Observer, tak předpokládám, že mi rozumí. Pokud ne, musí si to nastudovat.

Pokud jste všichni začátečníci, tak je to asi fajn. Obvykle je lepší použít návrh problému, který se řeší. Těžko ti vzor něco sám vyřeší.

Kit

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #39 kdy: 22. 05. 2017, 13:11:42 »
Návrhové vzory používám i pro komunikaci s těmi začátečníky. Když mu řeknu, aby tuto část udělal přes Simple Factory a tuhle přes Observer, tak předpokládám, že mi rozumí. Pokud ne, musí si to nastudovat.

Pokud jste všichni začátečníci, tak je to asi fajn. Obvykle je lepší použít návrh problému, který se řeší. Těžko ti vzor něco sám vyřeší.

Jak chceš použít návrh problému, který se řeší, když ho ještě nemáš?

phi

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #40 kdy: 22. 05. 2017, 13:16:28 »
Muze se clovek naucit slusne vyvijet software (schvalne pisu vyvijet software a ne jen programovat) v Jave, kdyz nema nikoho kdo jej muze mentorovat? (at uz v praci nebo ve skole). Prohrabovat se tunami blogu - ktere beztak pisou indove o svych prasarnach nebude zrejme 2x efektivni. Nejake knihy se ucite vzdycky daji najit nicmene ty budou zrejme rychle zastarale.
Samozrejme. Kazdou chvili tu (v Praze, a mozna i v Brne, ale tam to nesleduju) nekdo otevira vyvoj. A funguje to vzdycky stejne - nejdriv se nabere tucet hodne kvalifikovanych lidi a kdyz se ukaze, ze vyvoj v Praze ma smysl, otevrou se dalsi pozice, kde se nabiraji lopaty. A to je vase prilezitost. Chytnout nejakou takovou rozjizdejici se R&D pobocku ve fazi, kdy jeste ty Acka nabrana za tezke penize jeste neodesla budovat neco jineho (coz obvykle po trech az peti letech udelaji).   

UF

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #41 kdy: 22. 05. 2017, 13:44:30 »
Java není určená pro "experienced věci", ale pro co nejsnadnější psaní kódu. Různé "best practices" a vzory jsou často zbytečné a dost kontraproduktivní. Chce-li se někdo naučit idiomatickou Javu, měl by prostě hodně číst kódy a hodně psát s použitím vlastní hlavy, tj. bez ohledu na něčí "best practices".

Také jsem býval odpůrcem návrhových vzorů, než jsem pochopil jejich smysl.

to zni dost spiritualne ... blahopreju kite

balki

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #42 kdy: 22. 05. 2017, 14:07:57 »
Návrhové vzory používám i pro komunikaci s těmi začátečníky. Když mu řeknu, aby tuto část udělal přes Simple Factory a tuhle přes Observer, tak předpokládám, že mi rozumí. Pokud ne, musí si to nastudovat.

Pokud jste všichni začátečníci, tak je to asi fajn. Obvykle je lepší použít návrh problému, který se řeší. Těžko ti vzor něco sám vyřeší.

Jak chceš použít návrh problému, který se řeší, když ho ještě nemáš?

Obvykle problem vystane uz pri navrhu, alebo pri programovani. Pripadne ten problem ma clovek aspon v hlave. Ak sa pouzije vzor defaultne, bez toho ho bolo treba, tak to je priklad overengineeringu.  V knizkach, napriklad tej od gang of four je vysvetlene, aky je relevantny kontext a aky poroblem sa riesi. (Ano a treba aj hlavu pouzit, knizka tiez nepozna vsetky situacie :) )

Kit

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #43 kdy: 22. 05. 2017, 14:51:03 »
Obvykle problem vystane uz pri navrhu, alebo pri programovani. Pripadne ten problem ma clovek aspon v hlave. Ak sa pouzije vzor defaultne, bez toho ho bolo treba, tak to je priklad overengineeringu.  V knizkach, napriklad tej od gang of four je vysvetlene, aky je relevantny kontext a aky poroblem sa riesi. (Ano a treba aj hlavu pouzit, knizka tiez nepozna vsetky situacie :) )

Ty návrhové vzory nejsou tak komplikované, jak na první pohled vypadají. Třeba implementace Singletonu představuje jen cca 3 řádky ve třídě a vůbec nemusí být statická. Simple Factory má kdekdo ve formě jedné statické metody - Laravel je toho plný.

Použití návrhového vzoru nemusí znamenat napsání celé samostatné třídy nebo dokonce několika tříd. Většina z těch vzorů se dá implemenovat v jediné krátké metodě do 10 řádek. O overengineering se tedy rozhodně nejedná.

Robert

Re:Jak se naučit slušně vyvíjet v Javě
« Odpověď #44 kdy: 22. 05. 2017, 15:00:23 »
Obvykle problem vystane uz pri navrhu, alebo pri programovani. Pripadne ten problem ma clovek aspon v hlave. Ak sa pouzije vzor defaultne, bez toho ho bolo treba, tak to je priklad overengineeringu.  V knizkach, napriklad tej od gang of four je vysvetlene, aky je relevantny kontext a aky poroblem sa riesi. (Ano a treba aj hlavu pouzit, knizka tiez nepozna vsetky situacie :) )

Ty návrhové vzory nejsou tak komplikované, jak na první pohled vypadají. Třeba implementace Singletonu představuje jen cca 3 řádky ve třídě a vůbec nemusí být statická. Simple Factory má kdekdo ve formě jedné statické metody - Laravel je toho plný.

Použití návrhového vzoru nemusí znamenat napsání celé samostatné třídy nebo dokonce několika tříd. Většina z těch vzorů se dá implemenovat v jediné krátké metodě do 10 řádek. O overengineering se tedy rozhodně nejedná.

Laravel neni napsany v Jave, to jak ty prasis kod v PHP nevykladej ostatnim jako Java best practices dekuji :-)