Uživatelské nástroje

Nástroje pro tento web


dry_princip

DRY (Don't Repeat Yourself)

DRY je princip, který říká: „Každý kousek znalosti musí mít v rámci systému jediné, jednoznačné a autoritativní zastoupení.“

Jednoduše řečeno: Pokud píšete stejný kód nebo logiku na více místech, děláte chybu. Jakmile budete chtít tuto logiku změnit, budete ji muset hledat a opravovat na všech těchto místech, což dříve či později povede k opomenutí a vzniku chyb.


Jak DRY aplikovat v praxi?

1. Extrakce do funkcí a metod

Pokud se v programu opakuje stejný výpočet nebo sekvence příkazů, přesuňte ji do samostatné funkce. Ostatní části kódu pak tuto funkci pouze volají.

2. Využití dědičnosti a kompozice

V objektově orientovaném programování využíváme dědičnost. Místo abychom u každého zvířete definovali metodu dychej(), definujeme ji jednou v rodičovské třídě Zvíře.

3. Konstanty místo "magických čísel"

Nepište v kódu opakovaně sazbu DPH jako * 0.21. Definujte si konstantu DPH_SAZBA = 0.21 na jednom místě. Pokud se zákon změní, upravíte pouze jednu řádku kódu.


WET: Opak DRY

Když programátor princip DRY nedodržuje, říká se, že kód je WET (vtipná zkratka pro Write Everything Twice – „napiš všechno dvakrát“ nebo We Enjoy Typing – „rádi ťukáme do klávesnice“).

Vlastnost DRY (Správný přístup) WET (Špatný přístup)
Údržba Snadná (změna na jednom místě). Těžká (změna na mnoha místech).
Čitelnost Přehledný a modulární kód. Dlouhý, nepřehledný „špagetový“ kód.
Chybovost Nízká pravděpodobnost nekonzistence. Vysoká (zapomenete přepsat jednu kopii).

Pozor na "Over-engineering"

Ačkoliv je DRY důležitý, nesmí se to s ním přehánět. Někdy se programátoři snaží za každou cenu spojit dva kousky kódu, které vypadají podobně, ale logicky spolu nesouvisí. Tomu se říká předčasná abstrakce.

  • Pravidlo tří (Rule of Three): Pokud kód píšete podruhé, můžete si duplicity všimnout. Teprve když ho píšete potřetí, je ten správný čas na jeho refaktorování do společné funkce.

Souvislost s ostatními principy

DRY úzce spolupracuje s dalšími pravidly:

  • KISS (Keep It Simple, Stupid): Udržuj kód jednoduchý.
  • YAGNI (You Ain't Gonna Need It): Nepiš kód pro funkce, které zatím nepotřebuješ (často v marné snaze o budoucí „DRY“).
  • SOLID: Zejména princip jedné odpovědnosti (SRP) pomáhá dosáhnout DRY kódu.

Související pojmy: OOP, Refaktorování, SOLID principy, KISS, YAGNI, Dědičnost.

dry_princip.txt · Poslední úprava: autor: admin