Tài liệu trong mã
Điều quan trọng nhất là sử dụng các phương tiện tài liệu trong môi trường phát triển đã chọn của bạn, điều đó có nghĩa là pydoc cho python, javadoc trong các bình luận java hoặc xml trong C #. Điều này làm cho nó dễ dàng để viết tài liệu cùng lúc với việc viết mã.
Nếu bạn dựa vào việc quay lại và ghi lại những điều sau đó, bạn có thể không nhận được nó, nhưng nếu bạn làm điều đó khi bạn đang viết mã, thì những gì cần được ghi lại sẽ rất mới mẻ trong tâm trí bạn. C # thậm chí có tùy chọn đưa ra cảnh báo biên dịch nếu tài liệu XML không đầy đủ hoặc không phù hợp với mã thực tế.
Các xét nghiệm như tài liệu
Một khía cạnh quan trọng khác là có tích hợp tốt và kiểm tra đơn vị.
Thông thường tài liệu tập trung vào những gì các lớp và phương thức làm riêng rẽ, bỏ qua cách chúng được sử dụng cùng nhau để giải quyết vấn đề của bạn. Các thử nghiệm thường đặt những điều này vào bối cảnh bằng cách hiển thị cách chúng tương tác với nhau.
Tương tự, các bài kiểm tra đơn vị thường chỉ ra các phụ thuộc bên ngoài một cách rõ ràng thông qua đó mọi thứ cần được Mock ed out.
Tôi cũng thấy rằng sử dụng phần mềm phát triển dựa trên thử nghiệm, tôi viết phần mềm dễ sử dụng hơn, bởi vì tôi đang sử dụng nó ngay từ đầu. Với một khung kiểm tra tốt, làm cho mã dễ kiểm tra hơn và làm cho nó dễ sử dụng thường là điều tương tự.
Tài liệu cấp cao hơn
Cuối cùng, có những gì để làm về cấp độ hệ thống và tài liệu kiến trúc. Nhiều người sẽ ủng hộ việc viết tài liệu đó trong wiki hoặc sử dụng Word hoặc trình xử lý văn bản khác, nhưng đối với tôi, nơi tốt nhất cho tài liệu đó là bên cạnh mã, trong một định dạng văn bản đơn giản, thân thiện với hệ thống kiểm soát phiên bản.
Giống như với tài liệu trong mã, nếu bạn lưu trữ tài liệu cấp cao hơn trong kho lưu trữ mã của mình thì bạn có nhiều khả năng sẽ cập nhật nó. Bạn cũng nhận được lợi ích là khi bạn rút phiên bản XY của mã, bạn cũng nhận được phiên bản XY của tài liệu. Ngoài ra, nếu bạn sử dụng định dạng thân thiện với VCS, điều đó có nghĩa là nó dễ dàng phân nhánh, tìm khác biệt và hợp nhất tài liệu của bạn, giống như mã của bạn.
Tôi khá thích reSturationuredText (rst) , vì nó dễ dàng tạo ra cả trang html và tài liệu pdf từ nó bằng sphinx , và thân thiện hơn LaTeX , nhưng vẫn có thể bao gồm các biểu thức toán học LaTeX khi bạn cần.