Rudolf Pecinovský: OOP a Java 8 – Návrh a vývoj složitějšího projektu vyhovujícího zadanému rámci
Vychází jako e-kniha v říjnu 2015 v řadě Pecinovského počítačové příručky.
351 stran
ISBN 978-80-87924-03-7 (pdf)
Doporučená koncová cena vč DPH: 99 Kč
Pro první týden prodeje (do 3. 11. 2015) je k dispozici sleva pro autorovy studenty pro nákup přes Payhip. Slevový kód dostanou během výuky.
Kniha je k dispozici v téměř finálním tvaru. Pokud autor objeví nějaké vady (např. překlepy nebo vady sazby či pravopisu), je možné, že vydá mírně upravenou finální verzi. Pokud zakoupíte stávající verzi, dostanete pak ovšem i tu finální.
Kniha je bez DRM (není nijak technologicky bráněno kopírování, ani čtenáře nijak nesledujeme; jen distributor případně může označit stahovaný pdf soubor např. e-mailovou adresou kupujícího.) Abychom podpořili legální šíření, nabízíme komukoli možnost vydělat si 40% z ceny knihy (bez dph a marže distributora) za získání každého nového zákazníka. Více viz stránka Affiliate. Také nabízíme slevu 20% za šíření na sociálních sítích.
Z úvodu:
Účel této publikace
Většina úvodních kurzů objektově orientovaného programování seznámí své studenty s řadou objektových konstrukcí a způsobem jejich zápisu v nějakém programovacím jazyku, ale ne vždy se v nich najde dostatek prostoru k tomu, aby studenti mohli prokázat nabyté znalosti na nějakém netriviálním programu, ve kterém by byla použita většina konstrukcí, které si měli studenti v průběhu výuky osvojit, a který by obsahoval alespoň 20 vzájemně provázaných a kooperujících tříd.
Na VŠE už více než 10 let používáme k tomuto účelu zadání, podle nějž mají studenti vyvinout textovou konverzační hru, která vyhovuje sadě předem zadaných omezujících podmínek. Výhodou této aplikace je, že lze relativně snadno dosáhnout toho, aby každý student vyvíjel něco maličko jiného, ale na druhou stranu se jednotlivá řešení neliší natolik, aby nebylo možno vytvořit testovací program, který by všechna tato řešení přiměřeně zkontroloval.
Jednou z výhod této úlohy je, že díky koncepci zadání a z něj odvozeného frameworku je možno definovat relativně univerzální testovací program, který bude kontrolovat nejenom algoritmickou správnost odevzdaného programu, ale z větší části i jeho architekturu.
Přetrvávajícím problémem však je nedostatek prostoru k dostatečnému procvičení řešení obdobně komplexního problému na hodinách a z toho vyplývající problémy studentů při řešení závěrečné úlohy, která je ve svém celku přece jenom citelně složitější než relativně jednoduché příklady vyvíjené na cvičeních.
Domnívám se, že v této knize popisovaná aplikace a rámec, nad nímž je postavena, mohou být rozumnou inspirací pro vyučující, kteří hledají příklad pro semestrální či závěrečné práce nejenom na univerzitách, ale i na řadě středních škol, které se výuce programování věnují nad rámec povinných osnov. Neskromně si přitom myslím, že školy, jejichž stěžejním cílem není vychovat budoucí špičkové vývojáře a architekty, mohou tuto koncepci převzít v podstatě v té podobě, v jaké je v této publikaci vyložena.
Komu je kniha určena
Tato kniha má sloužit jako doplněk mých učebnic zabývajících se architekturou objektově orientovaných programů. Je primárně určena studentům úvodních kurzů programování, kteří na školách, na nichž učím, připravují svůj semestrální projekt a nedokáží si správně zapamatovat vše, co jsme si na přednáškách či cvičeních řekli. Má proto sloužit jako podklad k zopakování si látky z hodiny a současně jako vodítko při vývoji své vlastní aplikace.
Obecně je publikace určena jako doprovodný materiál pro začátečnické kurzy, v nichž mají studenti prokázat schopnost tvorby složitějšího programu sestávajícího z řady navzájem provázaných tříd a respektujícího požadavky jakéhosi definičního rámce, který pro vytvářený program vymezuje jisté mantinely. Vycházím z toho, že v současné době už programátoři musejí prakticky vždy vytvářet své programy tak, aby vyhovovaly nějakému rámci, který je většinou vymezen použitým frameworkem. Tvorba programů postavených zcela „na zelené louce“, tj. programů, které se nemusejí ničemu přizpůsobovat, je v současné době poměrně výjimečná.
Kniha přepokládá, že čtenář zná základy objektově orientovaného programování na úrovni základního kurzu – mohli bychom říci na úrovni probrané v mých učebnicích
- Java 7 – Učebnice objektové architektury pro začátečníky
- Java 8 – Úvod do objektové architektury pro mírně pokročilé
Výklad na tyto učebnice navazuje a ukazuje čtenářům, jak postupovat při návrhu poněkud většího a komplexnějšího projektu, než jsou projekty probírané na hodinách. Současně jim má pomoci osvojit si práci s externími knihovnami a frameworky.