A kommentes részre reagálnék:
Vegyünk néhány egyszerű példát:
Megírod a kódot, tökéletesen működik, számodra érthető, hogy mit csinál, talán még későbbiekben emlékszel is, hogy adott kód mit csinál. Viszont ez te vagy. Ha más kerül az általad írt kód elé, akkor ő vajon érteni fogja? Ugyanúgy gondolkodik, mint te és egyből érteni fogja mit akart a költő? A kommentet nem magadnak írod, hanem másoknak, akik nem biztos, hogy ugyanolyan szinten vannak, mint te.
Másik eshetőség, maradjunk ugyanazon kódnál. Te megcsináltad, te tudod mit csinál. Valaki belemódosít egy-két dolgot, amiről nem tudsz, nem nézted meg. A módosított kód már nem 100% azt csinálja, mint amire te elkészítetted. Mennyivel könnyebb lenne, ha lenne ott komment, hogy bocs belenyúltam ezt meg ezt csinálja már.
Lehet szórakozni olyannal, hogy egy ticket számot odabiggyesztünk, amit aztán kereshetünk ki, nézhetjük meg miért is nyitották, mi módosult, miért... Lehet adott kódrészben csak egy sor módosult, de akkor is nézhetsz át mindent. Míg ha ott van komment, akkor el sem kell hagyni az IDE-t.
Én szeretem, hogy ha megfelelően vannak kommentelve a dolgok, mert könnyebb és gyorsabb rájönni, hogy mit is csinál a kód. Főleg ha olyanról van szó, ami egy funkció hívásának a hívásának a hívása. Élvezet azokat visszabogarászni, hogy akkor melyik érték honnan és hogyan is érkezik.
Régen mikor tanultam a programozást, akkor kb minden sort kommenteltem, de most már inkább rászoktam, hogy legalább a funkciókat külön kommentelem/dokumentálom, hogy melyik mire is szolgál, maximum ha van néhány sor, ami ha random előtűnne előttem egy kódban ("Wild Spaghetti code appeared!) és nem érteném elsőre mit is csinál, na azokat szoktam külön kommentelni.