Krótka, lepsza i poprawna odpowiedź
Pomysł, że dobrze napisany „samodokumentowany kod” jest wszystkim, czego potrzebujesz, to anty-wzór i powinien umrzeć, nawet jeśli zawiera wyjątki od komentarzy wyjaśniających „dlaczego”. To mit, że zawsze możesz napisać cały kod dla dowolnego algorytmu wystarczająco wyraźnego, aby każdy programista mógł na niego rzucić okiem (lub że nie będzie wymagał refaktoryzacji lub czasu organizacyjnego, którego nie masz). Co ważniejsze, częściej niż nie, programiści, którzy myślą, że piszą czysty kod, nie robią tego.
Znacznie lepsza odpowiedź niż komentarze powinna służyć jedynie wyjaśnieniu „dlaczego”, że komentarze powinny:
- wyjaśnij „dlaczego” (oczywiście)
- wyjaśnij „co” w poszczególnych wierszach tylko wtedy, gdy kod jest złożony lub cel jest niejasny i nie może być lub nie warto dalej upraszczać
- wyjaśnij „co” blokom kodu, aby przyspieszyć zrozumienie i zlokalizowanie tego, czego potrzebujesz
Wyjaśnienie, jak wykonać kopię zapasową
Ludzie błędnie myślą, że jedynym powodem, dla którego ludzie używają komentarzy, jest wyjaśnienie, co oznacza wiersz kodu. Prawda jest głównym celem komentowania kodu, aby był szybszyprzejrzeć kod i znaleźć to, czego szukasz. Kiedy wrócę do kodu później lub przeczytam kod innej osoby, na pewno mogę odczytać i zrozumieć część dobrze napisanego kodu - ale czy nie jest to szybsze i łatwiejsze do przeczytania na górze komentarza mówiącego o tym, co robi ta sekcja kodu i pomiń to całkowicie, jeśli nie tego szukam? Po co tam siedzieć i w ogóle wymyślić kod, nawet jeśli jest dobrze napisany, jeśli możesz rzucić okiem na kilka komentarzy i zrozumieć całą funkcję? Dlatego używamy opisowych nazw dla funkcji - nikt nie mówi, że nie muszę używać opisowej nazwy dla mojej funkcji, ponieważ ktoś może po prostu przejrzeć mój czysto napisany kod, aby zobaczyć, co robi.
Na przykład, jeśli przeglądam czyjąś funkcję, czy łatwiej jest przejść wiersz po wierszu przez kod, aby zobaczyć, co robi, lub rzucić okiem na trzy dobrze napisane komentarze w całej funkcji, aby zobaczyć dokładnie, co ta funkcja robi i gdzie robi to?
Kolejnym anty-wzorcem jest nadużywanie funkcji do komentowania kodu. Dobrze nazwane funkcje są ważną częścią dokumentacji kodu, ale czasami programiści oddzielają 2-3 wiersze kodu, które nigdy nie zostaną użyte nigdzie indziej w funkcji do celów dokumentacji. Dlaczego nadużywanie funkcji jest lepsze niż nadużywanie komentarzy? Korzystanie z takich funkcji jest takie samo, jak uwzględnianie instrukcji GOTO - tworzy kod spaghetti, który może być trudny do naśladowania.
Zasadniczo, gdy pracujesz w środowisku korporacyjnym, w którym ludzie stale dzielą się kodem, a ludzie nie zawsze mają czas na doskonalenie swojego kodu, kilka dobrych komentarzy może zaoszczędzić mnóstwo czasu i frustracji. I pamiętaj, że chociaż jesteś guru, który potrafi czytać kod z prędkością światła, prawdopodobnie nie wszyscy w twoim biurze są.