Tại sao chúng ta vẫn nhúng các mô tả ngôn ngữ tự nhiên của mã nguồn (nghĩa là lý do tại sao một dòng mã được viết) trong mã nguồn, chứ không phải là một tài liệu riêng biệt?
Với các bất động sản mở rộng dành cho môi trường phát triển hiện đại (màn hình độ phân giải cao, màn hình kép, v.v.), IDE có thể cung cấp bảng điều khiển nửa bước trong đó mã nguồn được phân tách trực quan với - nhưng thực chất được liên kết với - ý kiến tương ứng của nó. Ví dụ: các nhà phát triển có thể viết nhận xét mã nguồn bằng ngôn ngữ đánh dấu siêu liên kết (liên kết với các yêu cầu phần mềm bổ sung), điều này sẽ đồng thời ngăn tài liệu làm lộn xộn mã nguồn.
Những thiếu sót nào sẽ ức chế một cơ chế phát triển phần mềm như vậy?
Một mock-up để giúp làm rõ câu hỏi:
Khi con trỏ ở một dòng cụ thể trong mã nguồn (được hiển thị với nền màu xanh lam ở trên), tài liệu tương ứng với dòng tại con trỏ được tô sáng (nghĩa là được phân biệt với các chi tiết khác). Như đã lưu ý trong câu hỏi, tài liệu sẽ ở trạng thái khóa với mã nguồn khi con trỏ nhảy qua mã nguồn. Phím nóng có thể chuyển đổi giữa "chế độ tài liệu" và "chế độ phát triển".
Những lợi thế tiềm năng bao gồm:
- Nhiều mã nguồn và nhiều tài liệu hơn trên (các) màn hình cùng một lúc
- Khả năng chỉnh sửa tài liệu độc lập với mã nguồn (bất kể ngôn ngữ?)
- Viết tài liệu và mã nguồn song song mà không có xung đột hợp nhất
- Tài liệu siêu liên kết thời gian thực với định dạng văn bản cao cấp
- Dịch máy bán thời gian thực sang các ngôn ngữ tự nhiên khác nhau
- Mỗi dòng mã có thể được liên kết rõ ràng với một nhiệm vụ, yêu cầu kinh doanh, v.v.
- Tài liệu có thể tự động đánh dấu thời gian khi mỗi dòng mã được viết (số liệu)
- Động bao gồm các sơ đồ kiến trúc, hình ảnh để giải thích các mối quan hệ, vv
- Tài liệu nguồn đơn (ví dụ: đoạn mã thẻ để đưa vào hướng dẫn sử dụng).
Ghi chú:
- Cửa sổ tài liệu có thể được thu gọn
- Quy trình làm việc để xem hoặc so sánh các tệp nguồn sẽ không bị ảnh hưởng
- Làm thế nào việc thực hiện xảy ra là một chi tiết; tài liệu có thể là:
- giữ ở cuối tập tin nguồn;
- chia thành hai tệp theo quy ước (
filename.c
,filename.c.doc
); hoặc là - điều khiển cơ sở dữ liệu đầy đủ
- Theo tài liệu siêu liên kết, tôi có nghĩa là liên kết với các nguồn bên ngoài (như StackOverflow hoặc Wikipedia) và các tài liệu nội bộ (nghĩa là wiki trên một tên miền phụ có thể tham chiếu chéo tài liệu yêu cầu kinh doanh) và các tệp nguồn khác (tương tự JavaDocs).
Chủ đề liên quan: Điều gì có ác cảm với tài liệu trong ngành?
Gson()
đối tượng đang được thuyết minh trong quan hệ với các lớp MainActivity, cũng không phải như thế nào nó liên quan đến việc giải quyết các yêu cầu kinh doanh cụ thể. Việc mô tả chính mã, thay vì các API mà nó sử dụng, có thể nằm trong một cửa sổ riêng biệt, độc lập với JavaDocs của bên thứ ba.