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?
źródło
Odpowiedzi:
W „Wpływ modularyzacji i komentarzy na zrozumienie programu” (1981) Woodfield, Dunsmore i Shen stwierdzili, że „podmioty, których programy zawierały komentarze, były w stanie odpowiedzieć na więcej pytań niż osoby bez komentarzy”.
Jednak w „Learning a Metric for Readable Code” (2010) Raymond PL Buse i Westley Weimer stwierdzili, że komentarze mają ograniczony wpływ na czytelność i jakość:
Z streszczenia:
Od strony 12:
Należy pamiętać, że zwolennicy „kodowania bez komentowania” nie twierdzą, że kod bez komentarzy jest lepszy niż kod z komentarzami. Twierdzą, że określony styl kodu bez komentarzy - taki, który wyodrębnia kod do metod z samoopisującymi nazwami, taki, który wprowadza zmienne wyjaśniające , taki, który ma dobry zestaw testów - jest lepszy niż kod, który nie robi tych rzeczy ale ma komentarze. Może to utrudnić zastosowanie wszelkich przeprowadzonych badań.
źródło