PředmětyPředměty(verze: 945)
Předmět, akademický rok 2023/2024
   Přihlásit přes CAS
Doporučené postupy v programování - NPRX043
Anglický název: Recommended Programming Practices
Zajišťuje: Studijní oddělení (32-STUD)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2022
Semestr: letní
E-Kredity: 6
Rozsah, examinace: letní s.:2/2, KZ [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Způsob výuky: prezenční
Je zajišťováno předmětem: NPRG043
Další informace: https://d3s.mff.cuni.cz/teaching/nprg043
Garant: doc. Ing. Lubomír Bulej, Ph.D.
Třída: Informatika Mgr. - Softwarové systémy
Kategorizace předmětu: Informatika > Programování
Prerekvizity : {NXXX010, NXXX019, NXXX020, NXXX021, NXXX026, NXXX027, NXXX028, NXXX029, NXXX032, NXXX034, NXXX035, NXXX068}
Neslučitelnost : NPRG043
Záměnnost : NPRG043
Je neslučitelnost pro: NPRG043
Je záměnnost pro: NPRG043
Anotace -
Poslední úprava: G_I (16.03.2011)
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.
Podmínky zakončení předmětu -
Poslední úprava: doc. Ing. Lubomír Bulej, Ph.D. (06.10.2017)

Zápočet je podmíněn účastí na cvičeních a vypracováním úkolů ve stanovených termínech.

Literatura
Poslední úprava: T_KSI (04.05.2007)

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.

Požadavky ke zkoušce -
Poslední úprava: doc. Ing. Lubomír Bulej, Ph.D. (06.10.2017)

Předmět nemá zkoušku v klasické podobě. Výsledná známka z předmětu je odvozena z bodového hodnocení úkolů.

Sylabus -
Poslední úprava: doc. Ing. Lubomír Bulej, Ph.D. (16.01.2024)

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.

 
Univerzita Karlova | Informační systém UK