Poprzedni wpis (Brakujące ogniwo) | Następny wpis (Zamieszania trochę było)

Miód, miód!

While comments are neither inherently good or bad, they are frequently used as a crutch. You should always write your code as if comments didn't exist. This forces you to write your code in the simplest, plainest, most self-documenting way you can humanly come up with. (#, podkr. oryg.)

Od zawsze staram się pisać kod tak, by nie trzeba było go komentować. Od zawsze staram się komentować kod tam, gdzie jego działanie jest nieoczywiste (tzn. nie jest jasne, dlaczego ten kod działa). To samo tyczy się testów — nie ma rzeczywistej potrzeby pisania testów do kodu, który:

  1. jest oczywisty
  2. jest kolejną (liczoną w tysiącach) implementacją algorytmu, o którym wiadomo, że działa

Potrzeba osiągnięcia coverage na poziomie 85% nie jest rzeczywistą potrzebą uzasadniającą pisanie testów. Podobnie jest z docstringami — to, że jakiś kod został wydzielony do funkcji/metody nie oznacza, że trzeba go dokumentować.

I na zakończenie jeszcze jeden cytat, odnoszący się do zwyczaju komentowania kodu (wyjątek z listy popularnych usprawiedliwień do dawania komentarzy w kodzie).

The code too complex to understand without comments. I used to think this case was a lot more common than it really is. But truthfully, it is extremely rare. Your code is probably just bad, and hard to understand. Re-write it so that's no longer the case. (#)

Komentarze (4)

#1 Piotr Hosowicz skomentował(-a) 25 lipca 2008 o 09:49

Zgadzam się w 100% z tym drugim cytatem. Sam na to wpadłem kiedyś, jeśli fragment kodu jest dla mnie samego ledwo zrozumiały oznacza to, że jest po prostu do d*py i trzeba go napisać inaczej.

#2 PiotrB skomentował(-a) 25 lipca 2008 o 10:11

Zasada jest prosta: komentarz wolno napisać tylko wtedy, kiedy opisuje dlaczego coś zostało zrobione (a nie jak)

#3 sebpa skomentował(-a) 29 lipca 2008 o 16:47

"jest oczywisty"

hmmm, oczywistosc rzecz wzgledna, lepiej nie osadzac co jest oczywistoscia,

dla mojego geometry ze staszica wszystko bylo oczywiste, nawet skomplikowane twierdzenia, dowody i inne takie

"to jest oczywiste, chwila zadumy, tak to jest oczywiste"

a docstringi nawet jak proste i "oczywiste" byc powinny sie znalezc w kodzie!

#4 jarek skomentował(-a) 29 lipca 2008 o 23:02

@sebastian:
Nie. Nie powinny. Komentowanie funkcji/metody, która nazywa się to_base64 i enkoduje argument do base64 uwłacza intelektowi czytelnika kodu. Nie chcę czegoś takiego doświadczyć i nikomu tego nie zrobię.

I nie zmienią tego obyczaje zadekretowane w naszej firmie. ;)

Skomentujesz?

* 


* 


* oznacza pole wymagane