Tại sao một số thư viện opensouce thiếu ý kiến?


8

Tôi không biết điều này có xảy ra với hầu hết các thư viện Opensource hay không, nhưng nhiều người trong số tôi biết và sử dụng (ví dụ OpenSSL, Webkit, ...) tất cả họ đều thiếu bình luận hoặc chứa rất ít bình luận.

Chưa kể rất ít tài liệu của họ, thật khó để đọc mã nguồn của họ. Chúng ta khó có thể hiểu một biến thành viên có nghĩa là gì, hoặc chức năng này làm gì. Điều này dường như chống lại thực hành tiêu chuẩn mã hóa

Tại sao vậy? Làm thế nào mọi người có thể cộng tác với các nguồn mở này với rất ít ý kiến?


2
Không có ý kiến ​​cụ thể là quan trọng, nhưng khả năng đọc của mã. Nhưng tôi đoán bạn có ý đó, vì vậy bạn tôi đề nghị bạn viết lại câu hỏi của bạn. Đây là một câu hỏi liên quan (không phải là một bản sao). lập trình
Doc Brown

Ngoài nhận xét được tạo bởi @DocBrown ở trên, bạn muốn đảm bảo rằng mã của bạn cũng được cấu trúc tốt (ví dụ: các bước mạch lạc trong các câu lệnh). Mã có thể đọc và cấu trúc tốt sẽ loại bỏ sự cần thiết phải đặt hàng tỷ dòng nhận xét không cần thiết. Và các dự án / thư viện OpenSource thường dành cho người dùng trung cấp và nâng cao về ngôn ngữ lập trình / kịch bản. Nếu ai đó chỉ học cách gõ "Hello World" và đi sâu vào đó, không có bình luận hay mã nào có thể có ý nghĩa với họ. Nhận xét là tốt và cần thiết, chỉ khi bạn nghĩ rằng nó sẽ mơ hồ với người dùng bình thường.
hagubear

Lưu ý rằng có ít bình luận không nhất thiết có nghĩa là mã phải khó đọc. Lý tưởng nhất, mã nên được đọc mà không cần bình luận. Xem ví dụ: lập trình
viên.stackexchange.com / questions

Câu trả lời:


15

Viết mã nguồn là niềm vui.

Viết tài liệu và mã nhận xét là ít vui vẻ.

Khi một nhà phát triển làm việc trong một công ty thực thi các bình luận và tài liệu tốt, không có lựa chọn nào: nhà phát triển này viết những điều đó, hoặc anh ta có nguy cơ bị sa thải.

Khi một nhà phát triển đóng góp cho một dự án nguồn mở, anh ta đang làm nó miễn phí và đặc biệt là để giải trí. Không có ai buộc nhà phát triển này làm những việc mà anh ta không sẵn sàng làm, như viết tài liệu và bình luận.

Đó là lý do tại sao nhiều dự án nguồn mở thiếu tài liệu và bình luận sâu rộng.


Làm thế nào mọi người vẫn có thể đóng góp cho các dự án nguồn mở mà không có tài liệu hoặc ý kiến?

  • Nếu mã nguồn có chất lượng cao, không cần bình luận quá nhiều. Các ý kiến ​​về giao diện công cộng và tài liệu đặc biệt hữu ích cho người tiêu dùng dự án, tức là các nhà phát triển chỉ đơn giản sử dụng thư viện, không đóng góp cho họ.

  • Không có yếu tố năng suất liên quan. Tôi đang làm việc trong một công ty nơi codebase thực tế không có bài kiểm tra đơn vị, không có tài liệu và không có ý kiến. Tôi dành nhiều thời gian để tìm hiểu xem phương pháp 600 LỘC đang làm gì hoặc mã hóa những thứ đã được thực hiện, nhưng không thể khám phá được vì thiếu tài liệu, vì vậy, hầu hết thời gian, tôi chỉ đơn giản là lãng phí tiền của công ty thay vì làm gì đó quý giá.

    Mặt khác, đối với một dự án nguồn mở, sẽ không có vấn đề gì nếu một trong những người đóng góp lãng phí một tuần vì thiếu tài liệu hoặc nhận xét thích hợp. Điều tồi tệ nhất có thể xảy ra là người đóng góp này sẽ rời khỏi dự án.

    Khám phá mã mà không có ý kiến ​​hoặc tài liệu thậm chí có thể là thách thức, tức là thu hút một số người đóng góp, thay vì làm họ nản lòng.

  • Trong các dự án doanh nghiệp, không có gì lạ khi một nhà phát triển buộc phải làm việc trên mọi khía cạnh của sản phẩm, và, vài năm sau, phải biết gần như toàn bộ hệ thống. Trong một dự án nguồn mở, không ai bắt bạn phải biết toàn bộ. Bạn chỉ có thể đóng góp cho một phần nhỏ của nó, và có kiến ​​thức tuyệt vời về phần này, mà không cần bất kỳ tài liệu nào.


3
"Khi một nhà phát triển đóng góp cho một dự án nguồn mở, anh ta đang làm nó miễn phí và đặc biệt là cho vui." Có rất nhiều dự án nguồn mở mà mọi người được trả tiền để làm việc cùng. Tôi nghi ngờ các kỹ sư tại IBM làm việc với nhân Linux làm điều đó miễn phí; Tôi nghĩ rằng đó là một sự đánh cược an toàn rằng những người phát triển MySQL đã được trả tiền để làm như vậy; và như thế. Tôi không nói rằng đây là phổ biến nhất hoặc thậm chí đặc biệt phổ biến, nhưng chắc chắn cũng không công bằng khi nói rằng chỉ vì mã sẽ được công khai mà lập trình viên không được trả tiền để thực hiện công việc. Tùy chỉnh thậm chí nhiều hơn như vậy.
CVn

2
@ MichaelKjorling: +1. Thật vậy, tôi đã quên về trường hợp này. Nhân tiện, sẽ rất thú vị khi so sánh các bình luận trong mã nguồn mở nơi các nhà phát triển được trả tiền so với các bình luận trong mã nguồn mở được thực hiện miễn phí.
Arseni Mourzenko

2

Nhiều lý do.

  • Viết tài liệu không thú vị và đối với nhiều dự án, cơ sở người dùng nhóm lập trình; mọi người đều biết mã này nói về cái gì, vì vậy tài liệu không thực sự được xem là một khía cạnh quan trọng của dự án.
  • Tài liệu có thể (và sẽ) trở nên lỗi thời, và tài liệu lỗi thời là tồi tệ hơn không có gì cả. Điều này có nghĩa là tài liệu là một trách nhiệm bổ sung và có thể ảnh hưởng đến tính linh hoạt của cơ sở mã của bạn (nhiều tài liệu hơn có nghĩa là cho bất kỳ thay đổi nào bạn sẽ phải cập nhật mã tài liệu). Đặc biệt đối với các dự án nguồn mở rất cụ thể, đây thực sự là một đối số hợp lệ để nhắm đến tài liệu tối thiểu và viết mã có thể đọc được thay thế.
  • Tính kinh tế của phần mềm nguồn mở là khác nhau. Mặc dù thật tốt khi có những người đóng góp cho dự án của bạn, nhiều dự án là những dự án kiểu đầu tiên mà tác giả đã viết để giải quyết một vấn đề cụ thể và sau đó chỉ cần đưa ra ngoài trời. Vì về cơ bản bạn đang ăn vụn bánh mì của người khác, nên thái độ là bạn không có nhu cầu gì cả, chứ đừng nói đến tài liệu.

2

Làm thế nào mọi người có thể cộng tác với các nguồn mở này với rất ít ý kiến

Giả sử bạn có nghĩa là "Làm thế nào mọi người có thể cộng tác với các mã nguồn mở khó đọc này" - tôi đoán một dự án nguồn mở với mã xấu sẽ đơn giản có ít người đóng góp hơn so với mã tốt. Nhưng đừng quên rằng tính dễ đọc của mã luôn nằm trong mắt của người theo dõi và hầu hết mã nguồn mở không tệ đến mức bạn không thể hiểu ít nhất một chút hoặc ý định của một số chức năng và lớp.

Thông thường, khi bạn muốn đóng góp một cái gì đó cho một dự án nguồn mở, bạn không cần phải hiểu toàn bộ, chỉ những phần mà bạn muốn thêm một tính năng cụ thể. Vì vậy, nếu một nhà phát triển có nhu cầu về một tính năng bị thiếu, rất có thể anh ta sẽ cắn viên đạn, xác định các phần anh ta cần thay đổi, "giải mã" các phần đó về mặt tinh thần và thêm các tính năng mới ở đó. Nếu anh ấy là một người tốt, anh ấy cũng sẽ cố gắng xem xét và cấu trúc lại các phần "được giải mã", nhưng tôi đoán trong thực tế điều này sẽ xảy ra quá hiếm khi.


1
hmm, không chắc chắn về mã xấu có nghĩa là ít người đóng góp hơn. Số lượng người đóng góp càng nhiều hoặc nhiều hơn để làm với cấu trúc và loại dự án như với mã chứa trong đó. Có mã rất tốt chỉ có một hoặc hai người tham gia, đó là dành cho một phân khúc nhỏ và những thứ xấu có hàng ngàn người cắm vào nó với sự giám sát hoặc giám sát của những người mà bản thân họ không phải là những lập trình viên giỏi (nghĩ tất cả những trò chơi đó và những thứ vẽ trường học).
jwenting

1
Tôi ủng hộ "ít người đóng góp hơn nó có thể có ".
LSerni

@Iserni: vâng, đoán tôi nghĩ tương tự về nó, đã thay đổi câu trả lời của tôi cho phù hợp
Doc Brown

Tôi đồng ý với @jwenting. Gần đây có ai nhìn dưới mui xe của Wordpress không?
Radu Murzea
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.