Za mě doporučím určitě se podívat na prvních 6 částí Clean Coders. Je to o tom jak strukturovat kód a pak unit testy. https://cleancoders.com/videos?series=clean-code&subseries=fundamentals .
Jak už bylo zmiňováno SOLID principy, tedy kniha Clean Code.
Problém je v tom, že člověk přečte knihu a nespojí si všechny věci dohrami a až na základě zkušeností si začne uvědomovat, co kdy platí za jakých podmínek. Kdy co dodržovat a kdy je to hovadina.
Nevýhodou je, SOLID a Clean Code je částečně i dost záplata na to jak špatné je OOP a jakou komplexnost a problémy generuje. Navíc mi příjde, že Clean Code dost prosazuje OOP a nedává do kontextu s Funkcionálním programováním. Navíc je v mnoha věcech dost fanatický.
Problém SW Engineeringu je právě v tom, že se v čase dost vyvíjel a prosazovali se často věci od kterých se postupně upustilo. Takže dosud nevím o nějakém materiálu o kterém by se dalo říct: ''Tohle přečteš a seš dobrý programátor". Skutečnost je spíš taková, že člověk se musí prohrabat spoustu nesmyslama, aby přišel k něčemu dobrému. (IMHO jako tento článek)
Další věc je, že se často nevyplatí o věcech dlouho teoretizovat a jít do toho. Jak se říká "Nejlepší analýza je implementace". Tedy je lepší něco zkusit, ale mít poté možnost to dobře refaktorovat a měnit, když je to nesmysl. A na to, aby se to dalo dobře měnit potřebuješ něco z 6 částí Clean Coders. A přece jen jsme lidi a produktivita se odvíjí hodně od toho jak to člověka bavý. Zmého pohledu je zábavnější psát kód něž neco dokola analyzovat (něco čeho se také týká sOlid - Open-Closed principle).