Các wiki có thực sự thích hợp để lưu trữ tài liệu để phát triển phần mềm không? [đóng cửa]


18

Mọi người đều biết rằng phát triển phần mềm được ghi chép tốt dẫn đến thành công. Tuy nhiên, điều đó thường có nghĩa là không chỉ văn bản thuần túy mà cả nội dung nhị phân cũng sẽ được tham gia vào tài liệu, chẳng hạn như sơ đồ UML. Và tôi đã nghe nhiều người nói vậy. Hệ thống kiểm soát phiên bản không phải là nơi thích hợp cho các tệp nhị phân. Tôi hoàn toàn hiểu và đồng ý với vấn đề này. Tôi đã hỏi một số nhà phát triển dày dạn về nơi lưu trữ tài liệu tốt nhất và câu trả lời tôi nhận được là "wiki". Wiki là tốt nhưng tôi đã xem xét một vấn đề tiềm năng khác. Làm thế nào mã nguồn được lưu trữ trong hệ thống kiểm soát phiên bản có thể kết nối với tài liệu liên quan của nó trong wiki? Giả sử ai đó nhân bản kho lưu trữ của git hoặc đồng bóng. Làm thế nào anh ấy / cô ấy có thể tìm thấy tài liệu dễ dàng? Hay tôi vừa bỏ lỡ điều gì?

Tôi biết một số hệ thống wiki có khả năng tích hợp với các hệ thống kiểm soát nguồn. Nhưng mối quan tâm của tôi không phải là về khả năng hội nhập. Nếu bạn đã sao chép mã nguồn từ kho git và sau một thời gian bạn lên tàu và muốn tiếp tục làm việc ngoại tuyến trên tàu (đó là một tính năng lớn của DVCS). Sau đó, bạn đột nhiên nhận ra rằng bạn không có quyền truy cập vào tài liệu vì bạn đang làm việc ngoại tuyến trên tàu. Mặt khác, nếu tài liệu được lưu trữ trong kho git, bạn sẽ có quyền truy cập vào tài liệu với kho lưu trữ được nhân bản.


3
FYI: Wiki không phải là từ viết tắt, đó là một từ Hawaii có nghĩa là "nhanh chóng".
Jörg W Mittag

Thực tế là tài liệu liên quan đến nhị phân không thực sự là một lý do tốt để tránh lưu trữ nó trong hệ thống kiểm soát phiên bản của bạn. Các VCS có thể dễ dàng xử lý các tệp nhị phân. Và nếu bạn lưu trữ nó trong VCS của dự án, bạn có lợi thế là có thể phân nhánh tài liệu của mình khi bạn phân nhánh dự án.
JW01

Khi làm việc ngoại tuyến: Giải pháp mạnh mẽ là chỉ cần tải xuống các trang bạn muốn sử dụng một số trình đọc ngoại tuyến. Thanh lịch hơn là bằng cách nào đó sao chép toàn bộ wiki, nếu thực tế (ví dụ sao chép cơ sở dữ liệu cơ bản và có cài đặt wiki của riêng bạn). Wiki dựa trên VCS là một giải pháp thậm chí thanh lịch hơn. Tôi thường xuyên làm việc ngoại tuyến và thường chỉ cần tải xuống các trang tôi cần thường xuyên là đủ.
sleske

Câu trả lời:


16

WIKI có thực sự thích hợp để lưu trữ tài liệu để phát triển phần mềm không?

Thay vì viết tài liệu, pdf và các loại tệp khác, tại sao bạn không giải phóng toàn bộ tiềm năng của WIKI như một công cụ cộng tác? Bạn có thể viết tài liệu của mình ở đó, đính kèm sơ đồ của bạn và thậm chí tốt hơn: nếu bạn sử dụng Fitnesse , bạn có thể biến các trang wiki của mình thành tài liệu thực sự hữu ích và sống động, vì chúng có thể trở thành một đặc tả thực thi.

Mọi người đều biết rằng, phát triển phần mềm được làm tài liệu tốt dẫn đến thành công

Xem ra cho cái này Tài liệu S NOT KHÔNG ĐƯỢC ĐẾN THÀNH CÔNG, vì họ sẽ không biến mã tào lao thành tốt. Nhưng tài liệu là một phần của con đường đến phần mềm thành công. Nhưng chỉ là một phần và họ sẽ không thay thế các thực hành tốt và những người tốt.


8

Vì nhiều câu trả lời chỉ ra Trac như một gợi ý, tôi muốn đề xuất một cách tương tự, nhưng tốt hơn theo quan điểm của tôi, thay thế: Redmine .

Redmine là một giải pháp quản lý dự án, bao gồm Wiki, Kho lưu trữ tài liệu và tích hợp kiểm soát phiên bản. Theo kinh nghiệm của tôi, nó cũng được viết bằng Ruby on Rails và dễ dàng mở rộng và hack hơn Trac.

Hơn tất cả mọi thứ, nó thực sự dễ sử dụng và thật dễ dàng để nhóm sử dụng nó.

Đặc trưng:

  • Hỗ trợ nhiều dự án
  • Kiểm soát truy cập dựa trên vai trò linh hoạt
  • Hệ thống theo dõi vấn đề linh hoạt
  • Biểu đồ và lịch Gantt
  • Quản lý tin tức, tài liệu và tập tin
  • Nguồn cấp dữ liệu & thông báo qua email
  • Mỗi dự án wiki
  • Diễn đàn theo dự án
  • Theo dõi thời gian
  • Các trường tùy chỉnh cho các vấn đề, mục thời gian, dự án và người dùng
  • Tích hợp SCM (SVN, CVS, Git, Mercurial, Bazaar và Darcs)
  • Tạo vấn đề qua email
  • Hỗ trợ xác thực nhiều LDAP
  • Hỗ trợ người dùng tự đăng ký
  • Hỗ trợ đa ngôn ngữ
  • Hỗ trợ nhiều cơ sở dữ liệu

Đối với bạn có nhu cầu ngoại tuyến, tôi không thích ý tưởng kiểm soát phiên bản lộn xộn với các tài liệu thiết kế. Tôi chắc chắn rằng bạn có lý do để hỏi điều này, nhưng thực sự tần suất bạn ngoại tuyến và cần quyền truy cập vào tài liệu thiết kế? Rất có thể đây là một trường hợp góc.


+1 Tôi sử dụng Redmine tại nơi làm việc và nó thực sự là một hệ thống tuyệt vời.
Luiz Damim

5

Một số wiki (ví dụ: Ikiwiki ) có khả năng lưu trữ dữ liệu của họ trong Git, như bạn đã đề cập. Do đó, bạn có thể liên kết tài liệu dưới dạng mô hình con Git trong kho lưu trữ nguồn thông thường của mình.

Với thiết lập ở trên, việc kéo nguồn và cập nhật các mô hình con sẽ lấy bản sao mới nhất của tài liệu. Ngoại tuyến, bạn có thể chỉnh sửa từng cái một cách tùy ý. Khi bạn quay lại mạng, cả hai có thể được đẩy trở lại bất kỳ vị trí chia sẻ nào bạn đang sử dụng.

Phần khó xử của điều này là bất cứ khi nào tài liệu được cập nhật (thậm chí thông qua giao diện web Ikiwiki), bạn cũng sẽ cần cập nhật mô hình con tương ứng trong kho lưu trữ nguồn Git. Tuy nhiên, điều này có thể dễ dàng được tự động.


Hấp dẫn. Có sự khác biệt giữa việc đưa tài liệu vào kho git và lưu trữ tài liệu qua ikiwiki không?
Edison Chuang

1
@Edison Chuang: Không, không có. Trên thực tế, được cung cấp một bản sao của kho lưu trữ ikiwiki, bạn có thể chỉnh sửa các trang bằng trình chỉnh sửa văn bản bạn chọn (bạn không phải sử dụng hộp nhập văn bản dựa trên trình duyệt tào lao). Bạn thậm chí có thể có các nhánh khác nhau của wiki, để giữ một ảnh chụp nhanh các tài liệu cũ hơn hoặc bất cứ điều gì.
Greg Hewgill

Có vẻ như tài liệu có thể được lưu trữ trong hệ thống kiểm soát phiên bản mà không có bất kỳ vấn đề nào mặc dù các tệp nhị phân. Nhà phát triển chỉ có thể sử dụng các công cụ như ikiwiki để chuyển đổi các trang wiki thành các trang HTML theo yêu cầu.
Edison Chuang

+1 cho công cụ wiki Ikiwiki; các công cụ wiki Hatta là một ý tưởng tương tự cho kho Mercurial.
David Cary

ISTR Fitnesse cũng lưu trữ các trang wiki của nó dưới dạng tệp văn bản, vì vậy chúng cũng có thể được giữ trong hệ thống kiểm soát phiên bản của bạn nếu bạn muốn. Mặc dù mục đích chính của nó là thử nghiệm, không có lý do gì để không sử dụng nó như một hệ thống wiki có mục đích chung cho tài liệu của bạn.
Jules

4

Việc lưu trữ tài liệu trong cùng một kho lưu trữ với mã nguồn là điều hợp lý. Sphinx có vẻ như là một lựa chọn tốt cho tôi.


2

Trac cung cấp giao diện cho Subversion, Wiki tích hợp và các phương tiện báo cáo thuận tiện. http://trac.edgewall.org/
Nhưng tôi không biết về ngăn xếp đã cài đặt của bạn.


Và một giao diện đẹp cho Mercurial. Và nó hoàn toàn có thể hack được.
Frank Shearar

0

Tôi sẽ không cố gắng để phù hợp với công việc ngoại tuyến. Tôi sẽ sử dụng tài nguyên giúp dễ dàng nhất để làm việc với mọi người. Ví dụ: nếu bạn đang viết mã PHP, tôi sẽ đề nghị sử dụng tài liệu nội tuyến có thể được tạo bởi PHPDocumentor . Nó có thể được tạo ở bất cứ đâu và có một plugin cho Trac . Sau đó trực tuyến hoặc tắt, bạn có quyền truy cập vào tài liệu, khá nhanh chóng quá.

Điều quan trọng là về khả năng sử dụng. Nếu khó duy trì, nó sẽ bắt đầu đau khổ. Khi nó bắt đầu bị ảnh hưởng, chất lượng tài liệu đi xuống. Khi điều đó xảy ra, mọi người bắt đầu phàn nàn và sau đó mọi thứ xuống dốc.


-1

Sử dụng wiki để lưu trữ tài liệu có ý nghĩa với tôi.

Veracity là một ví dụ về DVCS cho phép tích hợp chặt chẽ hơn nội dung wiki và mã nguồn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.