Tài liệu đặc tả kỹ thuật "Architecture.md (2021)"
(matklad.github.io)Khuyến nghị viết ARCHITECTURE.md
- Khuyến nghị mạnh mẽ các maintainer dự án mã nguồn mở bổ sung tài liệu
ARCHITECTUREbên cạnhREADMEvàCONTRIBUTING. - Tài liệu này mô tả kiến trúc cấp cao của dự án, và nên giữ ngắn gọn vì những người đóng góp lặp lại sẽ cần đọc nó.
- Tài liệu
ARCHITECTUREchỉ nên bao gồm những nội dung không thay đổi thường xuyên; thay vì cố đồng bộ với mã nguồn, tốt hơn là rà soát vài lần mỗi năm.
Mục đích và tầm quan trọng của tài liệu
- Kiến thức về kiến trúc vật lý của dự án là khác biệt lớn nhất giữa người đóng góp thông thường và nhà phát triển cốt lõi.
- Nếu chưa quen với dự án, sẽ mất gấp 2 lần thời gian để viết patch và gấp 10 lần thời gian để xác định cần sửa mã ở đâu.
- Tệp
ARCHITECTURElà một cách hiệu quả để thu hẹp khoảng cách này, đồng thời cũng tạo cơ hội để nhìn lại cấu trúc của dự án.
Cấu trúc của tài liệu
- Nên bắt đầu bằng phần tổng quan từ một góc nhìn mới về vấn đề, rồi cung cấp một bản đồ mã nguồn chi tiết giải thích mối quan hệ giữa các module.
- Nên nêu rõ các tệp, module và kiểu dữ liệu quan trọng, nhưng thay vì liên kết trực tiếp thì khuyến khích tìm kiếm theo tên để không cần bảo trì liên kết.
- Cần chỉ rõ một cách tường minh các bất biến kiến trúc và các ranh giới giữa những tầng.
Bất biến kiến trúc và ranh giới
- Các bất biến quan trọng thường được biểu đạt bằng sự vắng mặt của một thứ gì đó, và chỉ đọc mã thì khó nhận ra điều này.
- Ranh giới giữa các tầng hoặc hệ thống ngầm chứa thông tin về cách hệ thống được triển khai, đồng thời ràng buộc mọi cách triển khai khả dĩ.
Mối quan tâm xuyên suốt
- Sau khi hoàn thành bản đồ mã nguồn, nên thêm một mục riêng cho các mối quan tâm xuyên suốt.
- Một ví dụ hay về tài liệu
ARCHITECTURElà architecture.md của rust-analyzer.
Ý kiến của GN⁺:
- Tài liệu
ARCHITECTUREđóng vai trò quan trọng trong việc hỗ trợ hiểu dự án và giúp người đóng góp mới nhanh chóng làm quen với codebase. - Tài liệu này làm rõ cấu trúc dự án, nhấn mạnh các nguyên tắc và ranh giới kiến trúc quan trọng để giúp nhà phát triển hiểu hệ thống tốt hơn.
- Việc áp dụng tài liệu
ARCHITECTUREtrong cộng đồng mã nguồn mở có thể góp phần vào tăng trưởng bền vững và bảo trì dự án, và đây là một cách tiếp cận rất hữu ích cũng như thú vị với các nhà phát triển.
1 bình luận
Ý kiến Hacker News