Názory ke článku Java tutoriál - Objektově orientované programování (3. díl)
2. 5. 2007
Akorát si myslím, že ti co hodnotí si špatně prohlídli stupnici a hodnotí obráceně než by chtěli :-) Já hodnotím za 1.
Tak, jak jsou věci řečeny, jsou sice formálně správně (česky: nic proti ničemu), ale ze zkušenosti vím, že po jejich přečtení začne laický čtenář programovat velmi často přesně proti duchu zásad OOP.
Příkladem budeiž výklad dědičnosti. Většina nováčků si povšimne, že potomek může ke zděděným atributům a metodám něco přidat, ale naprosto jim unikde to nejdůležitější: že potomek musí být speciálním případem předka. Tohle tam totiž nekdo nevypíchne. Při nedodržení této zásady se však větší programy hroutí na vlastní neohrabanosti. Tohle ale čtenářům nikdo neřekne.
Obdobné je to s rozhraním. Autor stručně oznámil, jak typické rozhraní vypadá, ale nikde nepadla zmínka o jeho účelu a o jeho důležitosti.
Pravda, takto pojaté výklady mi dávají vydělat, když pak jako konzultant chodím a ukazuji, kde mají mí zákazníci, jejichž projekty se dostaly do potíží, co naprogramováno blbě. Už mne ale to nekonečné vysvětlování, že OOP je něco jiného, než co daní programátoři mezi řádky pochopili ze svých učebnic, nějak unavuje.
Nemohli byste vedle popisu syntaxe a knihoven, kterým se věnuje tutoriál, prozradit také něco o tom, jaký styl myšlení OOP vyžaduje a jak se v něm progamuje? Jinak se bojím, že vychováte nové zaměstnance mých budoucích zákazníků.
2. 5. 2007
Dlouze jsem přemýšlel, odkud Vás znám - a už vím. Vaše jméno je mi velmi povědommé z někdejších dílů ABC, kde jste psal o programování, nemýlím-li se?
K tématu: nechcete právě takový článek - něco o tom, jaký styl myšlení OOP vyžaduje a jak se v něm progamuje - napsat? Buď jako samostatný článek, či jako dodatek, pro čtenáře by jistě byl velmi přínosný a výklad pak zohledněn získanými zkušenostmi.
5. 5. 2007
Vadi mi jedna vec,ze kod je pisany po anglicky a strasne zle (aspon mne)sa to uci.Toto by som bol rad,keby sa to zmenilo v buducich kapitolach.Dakujem
Plne souhlasim. Clanky pro uplne zacatecniky by nemeli zacinat OOP, protoze to neni zpusob zapisu programu, ale zpusob mysleni.
Lepsim pristupem by bylo vysvetlit nektere detaily ohledne tridy, metod, funkci, promennych a pripadne mozna jeste modifikatoru pristupu, coz by bohate stacilo k vytvareni i pomerne slozitych neoop programu a az by po 15 clancich ovladal clovek alespon trochu programovani a trochu mu to myslelo, tak mu poskytnout skutecne uplny prehled OOP a nejlepe s nekolika priklady jak bez OOP a jak efektivne s OOP.
Kazdopadne v clanku chybi pomerne velke mnozstvi informaci o OOP - polymorfismu, abstraktni tridy a treba tusim, ze jsem si tam nikde nevsiml ani konstruktoru.
Samostatný článek o objektovém stylu myšlení je podle mne na nic, protože se podle něj nikdo nic moc nenaučí. To je opravdu na rozsáhlejší povídání - ještě lépe na dlouhý seriál.
Možná bych mohl zkusit udělat nějaký výcuc ze svých příspěvků na konferencích a zkusit v něm trochu vysvětlit, proč se v celém světě stále více prosazují metodiky, které doporučují začít učit objektové myšlení hned od samého začátku výuky programování a ne až někdy dodatečně. Pokud byste měli zájem, ozvěte se přímo na můj mail a zkusíme se dohodnout.
Mně bude teď od prázdnin vycházet na stránkách NetBeans "konkurenční seriál". Pro mnohé ale bude mít jednu zásadní nevýhodu: bude anglicky. V něm se bude učit Java od samého začátku skrz naskrz objektově. Ti, které angličitna neobtěžuje, tak budou moci porovnat, jaký je mezi těmi dvěma způsoby výuky rozdíl (vynechám-li možnost nahlédnout do knihy, o níž se zmiňuji v odpovědi na jiný příspěvek).
Výuka zaměřená především na technologii tak, jak ji realizuje Java tutoriál, je sice nesmírně potřebná, ale je vhodné ji zařadit až v druhé etapě, tj. až poté, co student získal základy onoho objektového myšlení. Jinak si koleduje o zápis do pořadníku programátorů, kteří přicházejí na přeškolení ze strukturovaného na objektový způsob myšlení. Samotná objektová syntaxe totiž způsob myšlení nezmění.
Pak mi tedy vysvětlete, proč se v celém světě posledních 10 let stále intenzivně prosazuje metodika výuky "[i]Object First[/i]" a poslední dobou dokonce její posílená verze "[i]Desigh Patterns First[/i]". Ta totiž právě přišla s tím, že objektový způsob myšlení se musí učit od prvních hodin výuky. V opačném případě se totiž programátoři musejí odnaučovat mnohé z toho, co se před tím pracně naučili. Používat třídy totiž ještě neznamená objektově programovat.
Zkuste si někde "pustit přes palec" knihu "[i]Myslíme objektově v jazyku Java 5.0[/i]" a zjistíte, že to jde. OOP se probírá od samého začátku a na podmíněné příkazy a cykly dojde až někde v poslední třetině knihy. Do té doby nejsou potřeba.
Velké programátorksé firmy už dávno přišly na to, že převedení klasicky vyškolenézho programátora na programátora objektově orientovaného zabere minimálně rok až rok a půl intenzivního přeškolování -- čím zkušenější programátor, tím déle to trvá. Kdo se jednou naučil přemýšlet v posloupnostech příkazů, těžko se přeučuje na množiny objektů posílajíích si navzájem zprávy.
Mne živí mimo jiné právě těmito velkými firmami objednávané přeškolování programátorů, kteří se ve škole naučili psát programy v OOP jazyku, ale nenaučili se objektově myslet. Pak totiž v tomto jazyku dále "patlají" své strukturované programy a diví se, že ono slibované zvýšení produktivity a robustnosti stále nepřichází. Znovu opakuji: Používat třídy ještě neznamená objektově programovat.
1. 8. 2007
Slovenský preklad nájdete na http://www.gymspmkr.edu.sk/informatika/JavaTutorial/
Kto sa vyzná v trminológií mohol by mi helfnut s revíziou
kontaktujte ma prosím na adrese etki@zoznam.sk
12. 8. 2007
už zmíněný konkurenční článek vychází ?
Můžete uvést odkaz, připadně mi ho poslat mailem ?
díky
20. 11. 2007
Zdravim,
v textu nefungují párové tagy (STRONG), resp. (/STRONG).
Používám IE 6.0
2. 10. 2008
je to strasne... pozeram to od prveho dielu a .. strasne.. anglicke komentare anglicke obrazky tagy v kode je vtom chaos.. si to odkial skopiroval?
16. 10. 2008
Dobrý den,
článek je velice kvalitní a dobře srozumitelný. Možná to bude tím, že je to celé obšlehnuté z oficiálních stránek sunu.com s českým překladem. Netvrdím, že je to špatná věc, někdo třeba neumí anglicky, ale bylo by přinejmenším slušné tuto skutečnost přiznat na začátku a né se vydávat za originálního autora.
16. 10. 2008
Omlouvám se, já trouba si nevšimnul úvodní zmínky o původu článku. Pochopím, když můj příspěvěk vymažete...
29. 11. 2008
Naprostý souhlas s veilem.. Angličtinu ovládám, takže ang. komentář strávím, ale já prostě z toho zdrojáku nejsem schopen zjistit, co je příkaz Javy a co si autor vymyslel jako proměnnou nebo metodu.. Vím, že jsem začátečník, ale pro ty je přece seriál určen, ne? :) Co to má být např. newValue? Je to prostě něco a jenom autor asi tuší co :)
3. 3. 2009
Ahoj, dík za tutoriál, jen prosím neříkejte, že objekty mají stavy a akce. Lépe vlastnosti a akce a lze říct, že aktuální hodnoty všech vlastností určují momentální stav objektu.
Stav je hodně spjat s konečnými automaty, které se pomocí objektů samozřejmě modelují a naopak, jeden objekt může reprezentovat celý konečný automat a pak můžeme říkat, že je v nějakém stavu.
Prosím nebrat nějak tragicky ;-)
17. 3. 2009
Reagoval na komentář od uživatele Etki :
iba opravim:
http://www.gymspmkr.edu.sk/informatika/JavaTutorial/index.html
30. 3. 2009
Celé je to obšlehnuté z knížky Java 6 - Výukový kurz pokud se nepletu:)i s obrázky..=)
Reagoval na komentář od uživatele Chavier :
Ale já mám takový dojem, že hned v nulté nebo první lekci se autor zmínil o tom, že je to použito z jiného zdroje.
Reagoval na komentář od uživatele rudyment :
Díky za názor. Začínám s Javou a OOP, předtím jsem udělal pár programů v Pascalu, ale to jsou dva různé světy. Určitě by mi v začátcích pomohly služby, které poskytuješ. Myslím tím poradenství pro lamy jako jsem já, resp. jakou se nejspíš stanu až postoupím o level výše ;)
Mohl by jsi mi poslat kontakt na bobster@seznam.cz ?
Díky MV
14. 2. 2013
jakozto uplny zacatecnik se mi clanek libi.
Schazi mi zde vic prikladu. Napr. uz moc nechapu a nedokazu si predstavit co s TandemBike, lehce nechapu proc "print" je v Bicycle a ne v BicycleDemo.
12. 6. 2013
#20 Kamil
Taky jsem začátečník, tak nevím, jestli uvažuju správně, ale řek bych že metoda printState je vytvořena v Bicycle proto, aby si spro ni mohl pohodlně sáhnout - ať chceš změnit převod, zabrzdit, zjistit něco o kole - vše je po kupě. Teda aspoň mi to přijde jako zatím jediný důvod...
Co uděláme s tandemBike je asi na nás :D
10. 7. 2013
Tutoriály sa mi páčia ale tiež v tých príkladoch nechápem, že či napr. tam jak je "void changeGear(int newValue)" či tam má byť priamo zadaná hodnota (napr. 2) alebo tam má byť napísané newValue.
6. 8. 2013
Rád bych se podělil o pár zajímavých nabídek. Před pár dny jsem se díky Javě a http://itresources.cz/ dostal na zajímavou práci v Německu. Dost mi pomohl hlavně odborný CV profil, který jsem si u nich zdarma vytvořil. Pokud jste v Javě zběhlí, tak to bude dobrý základ pro Vaši kariéru v zahraničí. Snad někomu pomůžu :) - Hodně štěstí "Javisti" .
26. 6. 2015
#11 veil
https://docs.oracle.com/javase/tutorial/java/concepts/object.html