Robert C. Martin oferuje w pierwszym rozdziale swojej książki "Clean Code" kilka definicji "czystego kodu" od różniących się dobrze znanych ekspertów od oprogramowania. Jak definiujesz czysty kod?Definicja "czystego kodu"
Odpowiedz
- Ł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.
Kod, w którym różne moduły lub klasy mają wyraźnie określone umowy, to dobry początek.
Kod Nie boję się modyfikować.
Kod, który nie łamie się w wielu miejscach, gdy dokonasz pojedynczej, pozornie nieznaczącej zmiany. Łatwo też podążać ścieżką kontrolną programu.
Kod, który nie wymaga żadnych komentarzy, aby można go było łatwo zrozumieć.
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. –
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. –
Kod Haskella bez punktów. (Nie do końca jednak.)
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
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
- 1. Jaka jest definicja "starszego kodu"?
- 2. Pisanie czystego kodu z zagnieżdżonymi obietnicami
- 3. Pisanie czystego, wydajnego kodu dla iPhone'a
- 4. Okno Definicja kodu nie działa w VS2015
- 5. Konfiguracja czystego kodu log4net z filtrem w C#
- 6. Dowolna biblioteka do generowania czystego kodu z pakietów zasobów i18n?
- 7. Jquery .each() z uwzględnieniem opóźnienia szukającego czystego kodu
- 8. Czy są potrzebne pule wątków dla czystego kodu Haskella?
- 9. Powiąż zdarzenie z elementem za pomocą czystego kodu JavaScript
- 10. Definicja funkcji lub definicja zmiennej?
- 11. ASMX Zwracanie czystego łańcucha
- 12. Tryb czystego pytona Cython
- 13. Definicja końca strony a definicja końca strony
- 14. Definicja głównego() w C
- 15. Przechwytywanie czystego wywołania wirtualnego R6025
- 16. Wskazówki dotyczące projektowania czystego interfejsu
- 17. Usuń całą zawartość przy użyciu czystego JS
- 18. Perl: Jaka jest definicja testu?
- 19. Formalna definicja kontynuacji Scala
- 20. Jaka jest definicja HTTP_X_PURPOSE?
- 21. samodzielna definicja struktury odwołań?
- 22. Definicja funkcji bez {}
- 23. lista definicja Wielu kolumna
- 24. Definicja właściwości Groovy
- 25. Definicja sterownika AngularJS
- 26. Definicja funkcji w Haskell
- 27. definicja container_of makro
- 28. Definicja pamięci i użycie
- 29. XSD Definicja Numeracja
- 30. Definicja macierzy statycznych
Powinna również działać poprawnie. W przeciwnym razie wydaje mi się to dobrą definicją. –
Dobra uwaga, dodałem to do odpowiedzi. – Ree