Zásady DRY, KISS a YAGNI
Tyto tři zásady by měly zajímat každého vývojáře, protože se týkají čistého kódu. V tomto článku si vysvětlíme, co každý z nich znamená.
DRY Princip
DRY znamená Don’t Repeat Yourself (neopakuj se). V knize „The Pragmatic Programmer“ se můžeme setkat s touto definicí DRY:
Každá znalost musí mít v systému jedinou, jednoznačnou a autoritativní reprezentaci.
To znamená, že byste neměli mít duplicitní kód. Je snazší udržovat kód, který je pouze na jednom místě, protože pokud potřebujete v kódu něco změnit, stačí provést změnu na jednom místě. Kromě toho, pokud máte stejný kód na dvou nebo více místech, je vysoká pravděpodobnost, že se tento kód bude v průběhu času lišit, a když se to stane, stane se to snadnou cestou k zavedení chyb do systému. Duplicitní kód také činí kód složitějším a zbytečně rozsáhlejším.
Neměli byste také psát nejednoznačný kód. Vaše třídy, proměnné, funkce by měly mít konkrétní jméno a jejich název musí odpovídat jejich odpovědnosti. Pokud máte funkci, měli byste vědět, co funkce dělá, pouhým přečtením jejího názvu, aniž byste museli číst kód uvnitř ní.
V knize „Pragmatický programátor“ se také můžeme dočíst, že:
DRY je o zdvojování znalostí, záměrů. Jde o vyjádření
téže věci na dvou různých místech, případně dvěma zcela odlišnými způsoby
To znamená, že nejde jen o kopírování a vkládání kódu – ano, to je také zahrnuto – ale přesahuje to. Jde také o to, že existuje různý kód, který dělá stejnou věc. Možná můžete mít různý kód na dvou nebo více místech, ale dělají stejnou věc různými způsoby, tomu byste se také měli vyhnout.
Princip KISS
KISS je zkratka pro Keep It Simple, Stupid (udržuj to jednoduché, hloupé). Tato zásada říká o tom, aby byl váš kód jednoduchý. Měli byste se vyhnout zbytečné složitosti. Jednoduchý kód se snáze udržuje a je srozumitelnější.
Tento princip můžete uplatnit při návrhu i implementaci kódu. Měli byste odstranit duplicitní kód, měli byste odstranit zbytečné funkce, nepoužívat zbytečné proměnné a metody, používat názvy proměnných a metod, které dávají smysl a odpovídají jejich odpovědnosti, a vždy, když je to možné, dodržovat známé standardy tvorby kódu. Měli byste také oddělit odpovědnosti svých tříd a odpovědnosti od vrstev projektu.
Někdy nemusíte implementovat něco nového, abyste se mohli věnovat svým potřebám, můžete jednoduše využít vlastnosti programovacího jazyka, který používáte. K tomu je dobré, abyste znali vlastnosti programovacího jazyka, se kterým pracujete.
Pokud pracujete v kódu, který je již implementován, a vidíte něco, co není nutné nebo by mohlo být jednodušší, měli byste zvážit jeho refaktorizaci.
Princip YAGNI
YAGNI znamená You Ain’t Gonna Need It. Jedná se o princip z metodiky vývoje softwaru Extreme Programming (XP). Tato zásada říká, že byste neměli vytvářet funkce, které nejsou skutečně nutné.
Tato zásada je podobná zásadě KISS, jakmile se obě snaží o jednodušší řešení. Rozdíl mezi nimi je v tom, že YAGNI se zaměřuje na odstranění nepotřebných funkcí a logiky a KISS se zaměřuje na složitost.
Ron Jeffries, jeden ze spoluzakladatelů XP, jednou řekl:
Vždy implementujte věci, když je skutečně potřebujete, nikdy ne tehdy, když jen předpokládáte, že je potřebujete.
To znamená, že byste neměli implementovat funkce jen proto, že si myslíte, že je jednou budete potřebovat, ale implementovat je právě tehdy, když je skutečně potřebujete. Když to uděláte, vyhnete se tomu, abyste trávili čas s implementacemi, které ani nebyly potřeba a možná je ani nikdy nepoužijete.
Závěr
Dodržování těchto zásad vám umožní psát lepší kód. Nezapomeňte, že čistý kód je snadněji hlavní, lépe se chápe a určitě vám ušetří čas, když budete potřebovat něco změnit nebo implementovat. Vyhýbejte se používání duplicitního kódu, snažte se udržovat kód co nejjednodušší a implementujte funkce jen tehdy, když je to opravdu nutné.