nechtěl jsem začít diskuzi o getterech a setterech, jen jsem chtěl ukázat, že to heslo YAGNI na wikipedii se týká psaní nadbytečného kódu, ne funkcionality.
Nemusíme vést diskuzi konkrétně o getterech, můžeme přejít do trochu obecnější roviny.
Problém s YAGNI (a to samé platí pro jakékoliv jiné jednoduché a univerzální pravidlo) je v tom, že je složité ho interpretovat a aplikovat. Třeba co přesně je ten "nadbytečný kód"? Ty gettery jsem rozepsal právě abych ilustroval že ta nadbytečnost rozhodně není nějaký přímočarý koncept. Dost záleží na kontextu a zkušenostech.
Kód není jen k tomu aby se přeložil nebo vykonal. Slouží i ke komunikaci s jinými vývojáři. A na základě zkušeností počítám jako jiného vývojáře i sebe po pár měsících. Dokonce bych si troufl tvrdit, že když píšeme kód, tak je to primárně pro lidi a ne pro stroj.
Doporučuju kouknout na
https://www.youtube.com/watch?v=kYVxGyido9g&t=1s Je to sice o C++, ale ten princip je daleko obecnější a není omezený jen na jednotlivá klíčová slova. Spousta věcí v kódu nemá svůj protiklad. Buď tam je, nebo není. A pokud věci píšu když dávají logicky smysl a ne jenom, když je zrovna potřebuju, pak každá taková chybějící věc je informace pro další vývojáře. Pokud budu všechno psát jen ve chvíli, kdy to bude opravdu nutné, tak budoucí čtenář kódu o tuhle informaci přijde.