Dokumentowanie starszych baz kodu
Gorąco polecam przestrzeganie zasady scouta ze starszymi bazami kodu. Próba udokumentowania starszego projektu niezależnie od pracy nad nim nigdy się nie wydarzy.
Dokumentacja w kodzie
Najważniejszą rzeczą jest użycie funkcji dokumentacji w wybranym środowisku programistycznym, co oznacza pydoc dla komentarzy w python, javadoc w java lub xml w języku C #. Ułatwiają one pisanie dokumentacji w tym samym czasie, co pisanie kodu.
Jeśli polegasz na powrocie i dokumentowaniu rzeczy później, możesz nie poradzić sobie z tym, ale jeśli zrobisz to podczas pisania kodu, to, co należy udokumentować, będzie świeże w twoich myślach. C # ma nawet opcję wydania ostrzeżenia o kompilacji, jeśli dokumentacja XML jest niekompletna lub niezgodna z rzeczywistym kodem.
Testy jako dokumentacja
Innym ważnym aspektem jest dobra integracja i testy jednostkowe.
Często dokumentacja koncentruje się na tym, co klasy i metody robią w oderwaniu, pomijając ich wspólne użycie w celu rozwiązania problemu. Testy często umieszczają je w kontekście, pokazując, jak współdziałają ze sobą.
Podobnie testy jednostkowe często wyraźnie wskazują na zależności zewnętrzne, za pomocą których należy wykpić elementy .
Uważam również, że korzystając z programowania opartego na testach piszę oprogramowanie, które jest łatwiejsze w użyciu, ponieważ używam go od samego początku. Przy dobrej strukturze testowania ułatwienie testowania kodu i ułatwienie korzystania z niego to często to samo.
Dokumentacja na wyższym poziomie
Wreszcie jest co zrobić z poziomem systemu i dokumentacją architektoniczną. Wielu opowiada się za pisaniem takiej dokumentacji na wiki lub za pomocą Worda lub innego edytora tekstu, ale dla mnie najlepszym miejscem na taką dokumentację jest także kod, w formacie zwykłego tekstu, który jest przyjazny dla systemu kontroli wersji.
Podobnie jak w przypadku dokumentacji w kodzie, jeśli przechowujesz dokumentację wyższego poziomu w repozytorium kodu, istnieje większe prawdopodobieństwo, że będziesz ją aktualizować. Korzyścią jest również to, że po wyciągnięciu wersji XY kodu otrzymujesz również wersję XY dokumentacji. Ponadto, jeśli używasz formatu przyjaznego dla VCS, oznacza to, że można łatwo rozgałęziać, różnicować i scalać, podobnie jak kod.
Bardzo lubię pierwszą , ponieważ łatwo jest z niej tworzyć zarówno strony HTML, jak i dokumenty PDF, i jest o wiele bardziej przyjazna niż LaTeX , ale wciąż może zawierać wyrażenia matematyczne LaTeX, gdy są potrzebne.