Czy istnieje ostateczny przewodnik po pisaniu komentarzy do kodu, skierowany do początkujących programistów?
Idealnie obejmowałoby to, kiedy komentarze powinny (i nie powinny) być używane oraz jakie komentarze powinny zawierać.
Nie komentuj CO robisz, ale DLACZEGO to robisz.
O CO zadba czysty, czytelny i prosty kod z odpowiednim wyborem nazw zmiennych do jego obsługi. Komentarze pokazują strukturę wyższego poziomu w kodzie, której sam kod nie może (lub jest trudny) pokazać.
zbliża się, ale jest to trochę zwięzłe dla niedoświadczonych programistów (myślę, że to rozszerzenie z kilkoma przykładami i przypadkami narożnymi byłoby doskonałe).
Aktualizacja : Oprócz odpowiedzi tutaj, uważam, że ta odpowiedź na inne pytanie jest bardzo istotna.
language-agnostic
comments
Cameron
źródło
źródło
Odpowiedzi:
Powinieneś zdawać sobie sprawę z największej słabości komentarzy: stają się one nieaktualne. Oznacza to, że wraz ze zmianami kodu programiści rzadko aktualizują komentarze, aby zachować synchronizację z kodem. Oznacza to, że nigdy nie można im ufać i nadal czyta się kod. Z tego właśnie powodu twój kod powinien być samodokumentujący. Powinieneś wybierać nazwy funkcji i zmiennych w taki sposób, aby kod brzmiał jak proza.
Więc nie dokumentuj, co robi kod. Zadbaj o to samodokumentujący się kod. Dokument DLACZEGO to robisz. DLACZEGO są zwykle związane z regułami biznesowymi lub architekturą i nie będą się często zmieniać i zestarzeją tak szybko w WHAT. Skrzynie na dokumenty. Wyjątki od dokumentów. Decyzje dotyczące projektu dokumentu. I co najważniejsze, udokumentuj te decyzje projektowe, które wziąłeś pod uwagę, ale zdecydowałeś się ich nie wdrażać (i udokumentuj DLACZEGO zdecydowałeś się ich nie używać).
źródło
Powinieneś przeczytać książkę Czystego kodu Roberta C. Martina . To ładnie wyjaśnia, że jeśli potrzebujesz komentarzy, najprawdopodobniej nie kodujesz poprawnie. Najlepiej byłoby, gdyby kod był „komentujący”. Książka Clean Coder wyjaśnia, jak to zrobić, aby komentarze nie były konieczne, i dobrze opisała, jak robić komentarze w sytuacjach, w których jest to konieczne. (Na przykład wyjaśnienie złożonej formuły matematycznej)
źródło
Jak wspomniano, kod Complete ma różne wytyczne dotyczące pisania komentarzy. Krótko mówiąc, jest to PDL i można je podsumować jako:
Opisz swoje zamiary, a nie to, co robi kod. Unikaj opisywania szczegółów implementacji, chyba że używasz sztuczki lub implementacji niestandardowych. Na przykład, użycie bitów przesuwających do podziału, użycie arytmetyki wskaźnika w celu uzyskania dostępu do członków klasy lub użycie niestandardowego przydziału pamięci dla niektórych obiektów w puli.
Najpierw napisz pseudo kod (tj. Komentarze), a następnie napisz prawdziwy kod po zakończeniu opisu procedury / metody / funkcji. Używany język jest wysoki, ale specyficzny, więc może być dość gadatliwy
Pomyśl o tym, co robi Twój kod, jeszcze przed jego napisaniem
Komentarze powinny być tak zbliżone do rzeczywistego kodu
Celem jest uniknięcie długich, niepowiązanych komentarzy, które mogą być nieaktualne, ale posiadanie komentarzy odzwierciedlających zamiar i cel kodu. Korzystanie z pseudo kodu wysokiego poziomu pomaga również wyjaśnić swoje myślenie przed napisaniem implementacji.
Na GameDev.net [link wyjaśnia PDL] [1] znajduje się link, na wypadek gdybyś nie chciał wyśledzić książki.
źródło
showWindowOnTop(window)
zawsze będzie lepsza niż komentarz tego samego rodzaju, wszystko to jest przestarzałe i zła rada w 2012 r. 1) Nazwy funkcji / metod opisują zamiar, 2) pseudokod jest pustym ćwiczeniem z nowoczesnymi łańcuchami narzędzi 3) Testy mówią ci, co powinien zrobić kod, zanim go napiszesz, 4) dobrze nazwany kod jest lepszy niż komentarze, które nie pasują do źle nazwanego koduKieruję się tylko jedną prostą i wspólną zasadą: Twoje komentarze nie powinny określać, co robi kod, ale dlaczego to robi. Artykuł Martina Fowlera i książka o ponownym faktorowaniu i kompletnej książce zawiera mnóstwo informacji, ale niestety nie jest ona podsumowana, o ile mi wiadomo.
źródło
Moją sugestią byłoby napisanie kodu bez żadnych komentarzy, a następnie odejście od niego. Wróć za rok i przeczytaj. Część, której nie rozumiesz łatwo, to część, którą powinieneś skomentować.
źródło
Bardzo podoba mi się, jak Evan Todd podsumowuje swoje zdanie na temat jedynych użytecznych kategorii komentarzy ( cytowanie z jego bloga ):
źródło