|
|
|
||
Programování není pouze o schopnosti napsat fungující program. S kvalitou programu je (vedle návrhu a celé řady
funkčních charakteristik) spojena celá řada charakteristik, které s funkcí programu přímo nesouvisí. Náplní předmětu je
seznámit studenty s praktickými postupy a pravidly, jejichž důsledné dodržování a aplikace vedou ke kvalitnějším
programům. Cílem předmětu je motivovat studenty k osvojení a používání probíraných postupů v praxi.
Předpokládají se znalosti programování v rozsahu bakalářského kursu NPRG031 Programování II.
Poslední úprava: G_I (16.03.2011)
|
|
||
Zápočet je podmíněn účastí na cvičeních a vypracováním úkolů ve stanovených termínech. Poslední úprava: Bulej Lubomír, doc. Ing., Ph.D. (06.10.2017)
|
|
||
1. McConnell, S.: Code Complete. Microsoft Press, 2nd edition, ISBN 978-0735619678, June 2004. 2. On-line zdroje ve formě článků a esejí k probíranému tématu. Poslední úprava: T_KSI (04.05.2007)
|
|
||
Předmět nemá zkoušku v klasické podobě. Výsledná známka z předmětu je odvozena z bodového hodnocení úkolů. Poslední úprava: Bulej Lubomír, doc. Ing., Ph.D. (06.10.2017)
|
|
||
Proces vývoje a tvorby software, inherentní a zavlečená složitost.
Návrh rozhraní (API), obecné principy, návrh veřejných tříd a metod rozhraní.
Návrh tříd, abstrakce a zapouzdření, dědičnost vs. kompozice, polymorfizmus, immutability.
Základní principy objektového návrhu (Single responsibility principle, Open-closed principle, Liskov substitution principle, Interface segregation principle, Dependency inversion principle).
Jednotkové testování, testovatelný design.
Principy objektového návrhu v návrhových vzorech (strategy, observer, decorator, factory).
Návrh metod, metody jako abstrakce, název a účel metody, délka a soudržnost kódu, práce s parametry a vracení hodnot, používání výjimek.
Defenzivní programování, kontrola vstupů a použití assertů, obsluha chyb.
Obecná pravidla pro práci s proměnnými a konstantami, názvové konvence, základní datové typy.
Obecná pravidla pro práci s řídícími strukturami a primitivy, organizace kódu, refaktoring. Poslední úprava: Bulej Lubomír, doc. Ing., Ph.D. (16.01.2024)
|