Neopakuj se - Don't repeat yourself

Neopakujte se “ ( DRY , nebo někdy „ neopakujte se “) je princip vývoje softwaru, jehož cílem je omezit opakování softwarových vzorů, nahradit je abstrakcemi nebo pomocí normalizace dat zabránit redundanci.

Princip DRY je uveden jako „Každý kus znalostí musí mít v systému jediné, jednoznačné a autoritativní zastoupení“. Princip formulovali Andy Hunt a Dave Thomas ve své knize The Pragmatic Programmer . Aplikují to docela široce, aby zahrnovali „ databázová schémata , testovací plány , systém sestavení , dokonce i dokumentaci “. Když se úspěšně aplikuje princip DRY, nevyžaduje úprava jakéhokoli jednotlivého prvku systému změnu v jiných logicky nesouvisejících prvcích. Kromě toho se všechny prvky, které logicky souvisejí, mění předvídatelně a jednotně, a jsou proto synchronizovány . Kromě používání metod a podprogramů v kódu spoléhají Thomas a Hunt na generátory kódu , systémy automatického vytváření a skriptovací jazyky, aby dodržovali princip DRY napříč vrstvami.

Alternativy

MOKRÉ

Porušení DRY se obvykle označuje jako MOKRÁ řešení, běžně se jedná o zkratku „napište vše dvakrát“ (alternativně „pište pokaždé“, „baví nás psát“ nebo „ztrácíte čas všichni“). WET řešení jsou běžná ve víceúrovňových architekturách, kde vývojář může mít za úkol například přidat pole komentáře do formuláře ve webové aplikaci. Textový řetězec „komentář“ se může opakovat na štítku, značce HTML, v názvu funkce čtení, soukromé proměnné, DDL databáze, dotazech atd. Přístup DRY eliminuje nadbytečnost pomocí rámců, které omezují nebo eliminují všechny tyto editační úlohy kromě těch nejdůležitějších, takže rozšiřitelnost přidávání nových znalostních proměnných zůstává na jednom místě.

AHA

Dalším přístupem k abstrakcím je princip AHA. AHA je zkratka pro „Vyhněte se unáhleným abstrakcím“, kterou popsal Kent C. Dodds jako první optimalizaci pro změnu a vyhýbání se předčasné optimalizaci. a byl ovlivněn „upřednostňováním duplikace před špatnou abstrakcí“ Sandi Metz .

AHA má své kořeny v tom, že čím hlubší investice jsme do abstrakce kusu softwaru vložili, tím více vnímáme, že náklady na tuto investici nelze nikdy získat zpět ( omyl v ponořených nákladech ). Inženýři tedy mají tendenci i nadále iterovat na stejné abstrakci pokaždé, když se požadavek změní. Programování AHA předpokládá, že jak MOKRÁ, tak SUCHÁ řešení nevyhnutelně vytvářejí software, který je rigidní a obtížně se udržuje. Místo toho, aby začal abstrakcí nebo abstrakcí na konkrétním počtu duplikací, může být software flexibilnější a robustnější, pokud se abstrakce provádí, když je potřeba, nebo když se duplikace sama stala bariérou a je známo, jak abstrakce potřebuje fungovat.

Viz také

Reference

externí odkazy