Jestem zwolennikiem komentowania kodu źródłowego i dokumentowania oprogramowania. Z mojego osobistego doświadczenia i obserwacji wynika, że praca nad kodem źródłowym, który jest rygorystycznie komentowany, pomogła mi na różne sposoby, kiedy musiałem rozwijać oprogramowanie lub utrzymywać je.
Jednak istnieje inny obóz, który mówi, że komentowanie jest ostatecznie bezwartościowe lub jego wartość jest wątpliwa. Wielu zwolenników kodowania bez komentowania twierdzi, że:
- Jeśli fragment kodu jest dobrze napisany, jest zrozumiały i dlatego nie wymaga komentarza
- Jeśli fragment kodu nie wymaga wyjaśnień, przeredaguj go i spraw, aby nie wymagał komentarzy
- Twój pakiet testowy to twoja dokumentacja na żywo
- Z biegiem czasu kod i komentarze nie są zsynchronizowane i staje się kolejnym źródłem problemów
- Agile twierdzi, że działający kod jest ważniejszy niż stosy dokumentacji, więc możemy bezpiecznie ignorować pisanie komentarzy
Dla mnie to tylko dogmat. Ponownie, moją osobistą obserwacją było to, że oprogramowanie napisane przez zespoły inteligentnych i doświadczonych programistów ostatecznie kończy się znaczną ilością kodu, który nie jest oczywisty.
Ponownie, Java API, Cocoa API, Android API itp. Pokazują, że jeśli chcesz pisać i utrzymywać dokumentację wysokiej jakości, jest to możliwe.
Powiedziawszy to wszystko, rozmowy na temat zalet i wad dokumentacji oraz komentowanie kodu źródłowego oparte na osobistych przekonaniach zwykle nie kończą się dobrze i nie prowadzą do satysfakcjonujących wniosków.
Jako taki szukam prac naukowych i badań empirycznych na temat wpływu dokumentacji oprogramowania, zwłaszcza komentowania kodu źródłowego, jego jakości i łatwości konserwacji, a także jego wpływu na produktywność zespołu.
Czy natknąłeś się na takie artykuły i jaki był ich wynik?