2009-06-05 17 views

Odpowiedz

36
  • Łatwy do zrozumienia.
  • Łatwo modyfikować.
  • Łatwy do przetestowania.
  • Działa poprawnie (sugestia Kent Becka - bardzo dobrze).

Są to rzeczy, które są dla mnie ważne.

+7

Powinna również działać poprawnie. W przeciwnym razie wydaje mi się to dobrą definicją. –

+1

Dobra uwaga, dodałem to do odpowiedzi. – Ree

1

Kod, w którym różne moduły lub klasy mają wyraźnie określone umowy, to dobry początek.

17

Kod Nie boję się modyfikować.

1

Kod, który nie łamie się w wielu miejscach, gdy dokonasz pojedynczej, pozornie nieznaczącej zmiany. Łatwo też podążać ścieżką kontrolną programu.

10

Kod, który nie wymaga żadnych komentarzy, aby można go było łatwo zrozumieć.

+0

Powiedziałbym, że użycie komentarzy jest minimalne, a nie żadne: (1) nie jest niemożliwe posiadanie sprzecznego intuicyjnego algorytmu; można użyć komentarza, aby uświadomić użytkownika (2) można użyć komentarzy do rozbicia kodu na sekcje logiczne, aby czytelnik od razu miał przegląd. –

+0

Dziękuję za ten komentarz. Co do podziału twojego kodu na logiczne sekcje z komentarzami, zdecydowanie się nie zgadzam. Jeśli czujesz potrzebę rozbicia kodu, użyj metod o poprawnych nazwach. Jeśli chodzi o algorytmy przeciwne do intuicji, jeśli to zrobisz, wątpię, czy potrzebujesz komentarza, aby opisać, co się dzieje. Jeśli nadal musisz, dokumentowanie twojego rozwiązania jest prawdopodobnie bardziej przydatne niż dodawanie komentarzy do kodu. –

1

Kod Haskella bez punktów. (Nie do końca jednak.)

2

Kod, który brzmi jak najbliżej ludzkiego języka. Mam na myśli to na wszystkich poziomach: od użytej składni, nazywania konwencji i wyrównania aż po zastosowane algorytmy, jakość komentarzy i złożoność dystrybucji kodu między modułami.

Najprostszym przykładem dla konwencją nazewnictwa:

if (filename.contains("blah")) 

kontra

if (S_OK == strFN.find(0, "blah")) 

Część z nich zależy od środowiska/używane API, ale większość z nich jest oczywiście obowiązkiem dewelopera

1

Kod wielokrotnego użytku jest również ważny. Więc nie tylko ważna jest jakość kodu, ale gdzie umieścisz. Przykład, logika biznesowa do kontrolera jest bezużytecznym kodem