yagni

Skratka YAGNI znamená “You Aren’t Gonna Need It”, čo v preklade znamená „Nebudeš to potrebovať“. Ide o princíp softvérového vývoja, ktorý zdôrazňuje, že by ste nemali pridávať funkcionalitu alebo kód, ktorý aktuálne nie je potrebný.

Hlavná myšlienka YAGNI:

•Vývojári majú často tendenciu pridávať do kódu funkcie alebo riešenia, ktoré predpokladajú, že budú potrebné v budúcnosti.

YAGNI tvrdí, že takáto funkcionalita by sa nemala implementovať, pokiaľ nie je momentálne skutočne potrebná.

Príklad:

Bez YAGNI:

Vývojár implementuje funkciu na podporu viacerých jazykov, aj keď aplikácia momentálne potrebuje iba angličtinu.

def translate(text, language):

    if language == “en”:

        return text

    elif language == “es”:

        # Hypotetická podpora pre španielčinu

        return “traducción no disponible”

    else:

        return “translation unavailable”

S YAGNI:

Implementuje len to, čo je potrebné teraz:

def translate(text):

    return text

Prečo používať YAGNI:

1.Minimalizácia zbytočnej práce:

•Funkcie, ktoré sa nikdy nepoužijú, sú stratou času.

2.Jednoduchosť:

•Menej kódu znamená menej potenciálnych chýb a jednoduchšiu údržbu.

3.Rýchlejší vývoj:

•Sústreďte sa len na aktuálne požiadavky projektu.

4.Realistickosť:

•Požiadavky na projekt sa môžu zmeniť, a pridávanie predpokladanej funkcionality môže byť zbytočné.

YAGNI a Agile:

•YAGNI je úzko spojené s Agile metodológiou, ktorá sa zameriava na iteratívny vývoj a plnenie aktuálnych priorít.

•Princíp “Rob len to, čo je potrebné práve teraz” je základom efektívneho plánovania sprintov.

Nevýhody ignorovania YAGNI:

Zbytočná zložitosť: Komplexné systémy s nepoužitým kódom.

Ťažká údržba: Ťažšie pochopenie kódu a oprava chýb.

Nedostatok času: Zameranie na nepodstatné funkcie môže oddialiť dokončenie projektu.

Kedy YAGNI neplatí:

•Ak vývoj dlhodobo predpokladá určité rozšírenia (napr. škálovanie veľkých systémov).

•Pri návrhu architektúry, kde je dôležité myslieť na budúcu rozšíriteľnosť.

Zhrnutie:

YAGNI pomáha udržiavať kód jednoduchý, čitateľný a efektívny. Je to nástroj proti zbytočnému plánovaniu a predčasnej optimalizácii, ktoré môžu spomaliť vývoj a zhoršiť kvalitu softvéru.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top