Obsah

AI generovaný přehled + nějaké mé poznámky k opakování


Základní zdroje

Knihy

  1. "Design Patterns: Elements of Reusable Object-Oriented Software" – Gang of Four (GoF)
    • Klasická „bible“ návrhových vzorů
    • Popisuje 23 základních návrhových vzorů
  2. "Head First Design Patterns"
    • Velmi přívětivý úvod do návrhových vzorů
    • Vhodný pro začátečníky
  3. "Refactoring to Patterns" – Joshua Kerievsky
    • Zaměřený na přechod z kódu bez návrhových vzorů na kód s nimi
  4. "Patterns of Enterprise Application Architecture" – Martin Fowler
    • Více enterprise vzorů a architektur

Online zdroje

    • Výborný online návod s ilustracemi a příklady v různých jazycích
    • Vysvětlení včetně diagramů a kódu
    • Stručné příklady v Javě
    • Shrnutí a příklady v různých jazycích
    • Vhodné pro rychlé připomenutí

Kurzy a videa

  1. Udemy – "Design Patterns in Java"
  2. Coursera – "Software Architecture & Design"
  3. YouTube – "Design Patterns Explained" (mnoho kanálů)

Doporučení ke studiu

  1. Používej konkrétní příklady – nejen teoretické popisy
  2. Implementuj vzory vlastním kódem – např. v Pythonu nebo Javě
  3. Zkoušej použít vzory v reálných projektech
  4. Nauč se rozpoznat situace, kdy se použije daný vzor
  5. Zkoumej, jaké jsou nevýhody použití daného vzoru
  6. Neplňuj si kód všemi vzory najednou – používej jen tam, kde to má smysl
  7. Zkoumej, jak se návrhové vzory liší mezi jazyky (např. v Pythonu se některé vzory implementují jinak než v Javě)

Základní pojmy

Imperativní vs deklarativní jazyk

Mnemotechnická pomůcka

Rozdíl mezi "Good practice" a návrhovým vzorem

Aspekt Good Practice Návrhový vzor
Definice Obecná praxe Formální řešení
Použití Všeobecně Konkrétní problémy
Struktura Neformální Formální
Příklady KISS, čitelnost Factory, Strategy, Observer

Typy návrhových vzorů

Creational (tvůrčí)

Structural (strukturální)

Behavioral (chování)

Otázky k zamyšlení

  1. Jaké znáš návrhové vzory pro neobjektové jazyky a jak se liší návrhový vzor od good practice?
  2. Co je imperativní a deklarativní jazyk a znáš mnemotechnickou pomůcku?
  3. Jaký je rozdíl mezi Factory a Abstract Factory pattern?
  4. Jaké jsou nejčastější chyby při implementaci návrhových vzorů?
  5. Jaký je rozdíl mezi návrhovými vzory a architektonickými vzory?
  6. Jak se návrhové vzory vztahují k principům SOLID?
  7. Jaké jsou nejčastější případy použití návrhových vzorů v praxi?
  8. Jaké jsou nejčastější návrhové chyby začátečníků?
  9. Jaký je vztah mezi návrhovými vzory a testovatelností kódu?
  10. Jaké jsou nejčastější problémy při používání návrhových vzorů v distribuovaných systémech?