Mẹo để bắt đầu đóng góp cho các dự án nguồn mở của Ultralytics
Tìm hiểu cách đóng góp cho các dự án nguồn mở của Ultralytics và khám phá những mẹo hay nhất liên quan đến tài liệu, đánh giá PR và sử dụng các công cụ thiết yếu.

Nền tảng của phần mềm mã nguồn mở là sự hợp tác, học hỏi và chia sẻ. Các dự án mã nguồn mở là cách tuyệt vời để mọi người cùng nhau xây dựng những giá trị lớn lao. Tại Ultralytics, chúng tôi luôn trân trọng các nguyên tắc của mã nguồn mở và khuyến khích bạn đóng góp vào các dự án của chúng tôi.
Nếu bạn hào hứng muốn đóng góp, dù là viết tài liệu, đánh giá code hay giải quyết các vấn đề, nhưng chưa biết bắt đầu từ đâu hoặc đang gặp một số vấn đề, chúng tôi ở đây để giúp bạn. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn một số mẹo để bắt đầu đóng góp cho các dự án mã nguồn mở của Ultralytics. Hãy cùng bắt đầu nhé!
Link to this sectionTầm quan trọng của những đóng góp từ cộng đồng Ultralytics#
Trước khi xem xét cách đóng góp, hãy trả lời câu hỏi tại sao các đóng góp lại quan trọng đến vậy. Chúng tôi tin tưởng mạnh mẽ vào tầm quan trọng của những đóng góp từ cộng đồng Ultralytics. Bằng cách tham gia vào các dự án mã nguồn mở của chúng tôi, bạn không chỉ giúp chúng tôi xây dựng phần mềm tốt hơn. Những người đóng góp đóng vai trò then chốt trong việc đảm bảo công nghệ của chúng tôi luôn mở, có tính cộng tác và không ngừng phát triển. Các đóng góp của bạn giúp dự án duy trì sự phát triển, khả năng tiếp cận và mang lại lợi ích cho người dùng cũng như nhà phát triển trên toàn thế giới!
Ngoài việc tạo ra phần mềm tiên tiến, đóng góp cho các dự án của Ultralytics còn là cơ hội tuyệt vời để bạn phát triển bản thân. Bạn có thể trau dồi kỹ năng viết code, giải quyết vấn đề và làm việc nhóm khi làm việc cùng các nhà phát triển giàu kinh nghiệm, những người có thể đưa ra hướng dẫn và chia sẻ các thực tiễn tốt nhất (best practices). Những nỗ lực của bạn có thể tạo ra tác động thực tế đến các công cụ được hàng ngàn người sử dụng trên toàn cầu. Tham gia vào cộng đồng của chúng tôi cũng giúp bạn mở rộng mạng lưới chuyên môn, mở ra các cơ hội mới và làm phong phú thêm hồ sơ năng lực của mình để trở nên nổi bật hơn trong mắt nhà tuyển dụng.

Hình 1. Lý do nên đóng góp. Hình ảnh của tác giả.
Link to this sectionCách bắt đầu đóng góp mã nguồn mở cho Ultralytics#
Một cách tuyệt vời để bắt đầu là xem qua hướng dẫn đóng góp chính thức của Ultralytics. Tài liệu này chứa đầy các thực tiễn tốt nhất và mẹo để giúp bạn tận dụng tối đa những đóng góp của mình. Bước đầu tiên là làm quen với những gì đã có trong dự án bằng cách hiểu rõ các nguyên tắc đóng góp và đi sâu vào mã nguồn.
Dù bạn muốn đóng góp vào quá trình phát triển hay chỉ muốn khám phá code mới nhất, bước tiếp theo là clone kho lưu trữ Ultralytics. Sau khi hoàn tất, bạn có thể đi tới thư mục dự án và cài đặt gói ở chế độ editable (có thể chỉnh sửa), như được hiển thị trong đoạn mã dưới đây.
Nếu bạn cần trợ giúp, hướng dẫn bắt đầu nhanh của chúng tôi có mọi thứ bạn cần để bắt đầu một cách suôn sẻ.
Link to this sectionCác lĩnh vực khác nhau để đóng góp#
Khi đã thiết lập môi trường và làm quen với dự án, bạn có thể khám phá các lĩnh vực khác nhau nơi bạn có thể tạo ra tác động ý nghĩa. Ultralytics cung cấp nhiều cách để tham gia và bạn có thể chọn cách đóng góp dựa trên kỹ năng và sở thích của mình.
Dưới đây là một số lựa chọn:
- Tài liệu: Đóng góp cho tài liệu là cách tuyệt vời để thâm nhập vào dự án trong khi rèn luyện kỹ năng viết lách của bạn. Bạn có thể trợ giúp bằng cách cải thiện tài liệu hiện có, bổ sung các chi tiết còn thiếu hoặc tạo ra các hướng dẫn mới giúp người khác đóng góp dễ dàng hơn.
- Sửa lỗi (Bug fixes): Nếu bạn có kinh nghiệm về lập trình, hãy cân nhắc việc sửa lỗi. Các lỗi này có thể từ những điều chỉnh nhỏ đến các vấn đề phức tạp hơn, cho bạn cơ hội tạo ra tác động hữu hình đến dự án.
- Cải tiến tính năng: Đối với những người đã sẵn sàng đi sâu hơn, làm việc với các cải tiến tính năng có thể vừa thử thách vừa bổ ích. Việc này có thể bao gồm thêm các tính năng mới, cải thiện những tính năng hiện có hoặc làm việc theo lộ trình (roadmap) của dự án.
- Đánh giá pull request: Đánh giá các PR là một cách đóng góp có giá trị khác, đặc biệt nếu bạn quen thuộc với các tiêu chuẩn và thực tiễn tốt nhất của dự án. Bằng cách cung cấp phản hồi và đề xuất cải tiến, bạn giúp duy trì chất lượng và tính toàn vẹn của codebase.
- Thảo luận cộng đồng: Tham gia vào các cuộc thảo luận cộng đồng là cách tuyệt vời để đóng góp nếu bạn thích sự cộng tác và chia sẻ ý tưởng. Hãy tham gia vào các cuộc hội thoại đang diễn ra, đề xuất các ý tưởng mới hoặc giúp đỡ người khác bằng cách cung cấp thông tin và giải pháp của bạn.
Mỗi lĩnh vực này đều mang đến cách đóng góp độc đáo và bạn có thể chọn lĩnh vực phù hợp nhất với thế mạnh và sở thích của mình. Hãy nhớ rằng, mỗi đóng góp, dù nhỏ đến đâu, đều đóng vai trò then chốt trong việc giúp Ultralytics phát triển và tiến hóa.

Hình 2. Mỗi đóng góp đều được trân trọng trong cộng đồng đang phát triển của chúng tôi. Nguồn ảnh: Envato Elements.
Link to this sectionĐóng góp cho tài liệu mã nguồn mở của Ultralytics#
Khi đóng góp cho tài liệu của Ultralytics, hãy chắc chắn xem xét tài liệu hiện có và kiểm tra xem có bất kỳ vấn đề hay thảo luận nào nêu bật những lĩnh vực cần cải thiện hay không. Làm như vậy giúp đảm bảo các đóng góp của bạn tập trung vào nơi cần thiết nhất.
Khi viết hoặc chỉnh sửa, hãy nhớ rằng việc tuân thủ các nguyên tắc của dự án để duy trì sự nhất quán là rất quan trọng. Dưới đây là một số mẹo định dạng:
- Luôn sử dụng định dạng Markdown.
- Bắt đầu mỗi tài liệu bằng một lời giới thiệu rõ ràng và giữ cho ngôn ngữ đơn giản, dễ tiếp cận.
- Sử dụng dấu đầu dòng cho danh sách, văn bản mô tả cho các liên kết và hình ảnh dưới 1 MB để trang tải nhanh hơn.
- Trong trường hợp bạn có câu hỏi về định dạng, một cách dễ dàng để kiểm tra lại định dạng của mình là xem cách các tài liệu trước đó đã được định dạng.

Hình 3. Ví dụ về định dạng Markdown (bên trái) và tài liệu trực quan cuối cùng (bên phải). Hình ảnh của tác giả.
Sau khi đã tạo bản nháp, điều quan trọng là phải xem trước nó bằng cách build tài liệu tại máy cục bộ (locally). Bạn có thể phát hiện mọi vấn đề trước khi gửi đi. Để làm việc này, hãy bắt đầu bằng việc clone repository và điều hướng đến thư mục dự án:
Tiếp theo, bạn có thể cài đặt các dependency cần thiết:
Cuối cùng, hãy serve tài liệu tại máy cục bộ để xem lại các thay đổi của bạn:
Bạn có thể xem các tài liệu đã build cục bộ bằng cách điều hướng đến http://127.0.0.1:8000/ trong trình duyệt web của bạn.
Sau khi xem xét về tính rõ ràng, độ chính xác và sự nhất quán, bạn có thể gửi một pull request kèm theo mô tả rõ ràng về tài liệu bạn đã tạo. Hãy chắc chắn đặt tài liệu vào phần thích hợp dựa trên nơi nó thuộc về và phù hợp nhất (hướng dẫn, giải pháp, tích hợp, v.v.). Vui lòng cũng xem qua tệp index.md cho các phần liên quan và tệp mkdocs.yml tổng thể, rồi thực hiện các cập nhật nếu cần. Sự chú ý đến chi tiết sẽ giúp quá trình đánh giá diễn ra suôn sẻ và đảm bảo đóng góp của bạn được tích hợp tốt vào dự án.
Link to this sectionNhững điều cần lưu ý khi đóng góp vào mã nguồn mở#
Khi đóng góp code vào dự án Ultralytics, điều quan trọng là tuân thủ các thực tiễn tốt nhất giúp đảm bảo code của bạn sạch, dễ bảo trì và dễ tích hợp. Dưới đây là một số điểm chính cần lưu ý:
- Tránh trùng lặp code: Tái sử dụng code hiện có bất cứ khi nào có thể và giảm thiểu các đối số (arguments) không cần thiết.
- Thực hiện thay đổi nhỏ, tập trung: Tập trung vào những thay đổi nhỏ, có mục tiêu thay vì những sửa đổi lớn.
- Đơn giản hóa hoặc loại bỏ code: Tìm cơ hội để đơn giản hóa code hoặc loại bỏ các phần không cần thiết.
- Viết docstrings hiệu quả: Giải thích rõ ràng code của bạn làm gì và liên kết đến các tài nguyên liên quan.
- Tránh các dependency không cần thiết: Chỉ thêm các dependency nếu chúng hoàn toàn cần thiết.

Hình 4. Các thực tiễn tốt nhất về tài liệu mã nguồn.
Việc cân nhắc khả năng bảo trì lâu dài của codebase cũng rất cần thiết. Trước khi thực hiện bất kỳ thay đổi nào, hãy tự hỏi liệu các sửa đổi của bạn có thể làm hỏng code hiện có của ai đó đang sử dụng Ultralytics hay không. Nếu có, hãy cân nhắc cách giải quyết vấn đề này và đảm bảo các thay đổi của bạn tương thích nhất có thể.
Sau khi phát triển một đoạn code để đóng góp, bạn cần phải kiểm thử nó. Bạn có thể sử dụng các framework như pytest để kiểm thử các thay đổi của mình trước khi gửi đi. Định dạng code nhất quán là một khía cạnh đóng góp rất quan trọng khác. Các công cụ như Ruff Formatter có thể giúp bạn duy trì sự nhất quán về phong cách và phát hiện bất kỳ lỗi logic hoặc sự không nhất quán nào trong code của bạn.
Link to this sectionĐánh giá pull request#
Đánh giá các pull request (PR) là một cách tuyệt vời để đóng góp! Một PR được tạo ra khi ai đó yêu cầu merge các thay đổi của họ vào dự án chính. Nó giúp dự án Ultralytics hoạt động trơn tru. Khi bạn đánh giá một PR, hãy chắc chắn rằng bạn hiểu lý do tại sao các thay đổi được thực hiện. Tác giả nên giải thích rõ ràng mục đích và lợi ích của bản cập nhật, và bạn sẽ thấy bằng chứng về việc kiểm thử kỹ lưỡng trong PR của họ.

Hình 5. Pull request là gì?
Hãy cùng xem qua một vài điều quan trọng cần tập trung.
- Kiểm tra các unit test: Kiểm tra xem PR có bao gồm các test cho các tính năng hoặc thay đổi mới để xác nhận code hoạt động như mong đợi và không gây ra vấn đề hay không.
- Đánh giá các cập nhật tài liệu: Xác minh rằng tài liệu được cập nhật để phản ánh các thay đổi hoặc tính năng mới, bao gồm các ví dụ, tham chiếu API và các chi tiết liên quan khác.
- Đánh giá tác động đến hiệu năng: Cân nhắc cách các thay đổi ảnh hưởng đến hiệu năng. Nếu cần, hãy yêu cầu các điểm chuẩn (benchmarks) hiệu năng hoặc kiểm thử bổ sung.
- Xác minh các test CI: Đảm bảo tất cả các test Tích hợp liên tục (CI) đều vượt qua, bao gồm các kiểm tra về định dạng code và kết quả unit test.
- Cộng tác để sửa lỗi: Nếu bất kỳ test nào thất bại, hãy làm việc với tác giả để giải quyết các vấn đề trước khi phê duyệt PR.
Với tư cách là người đánh giá, hãy chắc chắn cung cấp phản hồi cụ thể và rõ ràng về bất kỳ vấn đề hoặc mối quan tâm nào. Đưa ra các đề xuất cải tiến và đặt câu hỏi giúp tác giả suy nghĩ thấu đáo về các vấn đề tiềm ẩn. Khuyến khích họ tuân theo các thực tiễn tốt nhất trong lập trình, kiểm thử và tài liệu, đừng ngần ngại hướng dẫn họ đến các tài nguyên có thể giúp ích. Cuối cùng nhưng không kém phần quan trọng, hãy luôn ghi nhận những nỗ lực mà tác giả đã bỏ ra cho PR. Phản hồi tích cực giúp duy trì bầu không khí thân thiện và cộng tác trong cộng đồng mã nguồn mở.
Link to this sectionĐóng góp chính là vì cộng đồng#
Đóng góp cho các dự án mã nguồn mở như Ultralytics có thể mang lại cho bạn cảm giác truyền cảm hứng về cộng đồng. Cho dù bạn đang viết code, đánh giá PR, cập nhật tài liệu hay tham gia thảo luận, mọi nỗ lực đều giúp dự án phát triển và tiến hóa. Việc giải đáp các vấn đề hoặc tham gia vào các cuộc hội thoại, dù là trên GitHub, Discord, Subreddit hay các diễn đàn khác, đều là cách đóng góp giá trị để kết nối với mọi người. Hãy nhớ rằng, những đóng góp của bạn, dù nhỏ đến đâu, đều tạo ra tác động đáng kể và giúp thúc đẩy một môi trường cộng tác và hỗ trợ cho tất cả mọi người!
Tại Ultralytics, chúng tôi rất đam mê thúc đẩy sự đổi mới trong cộng đồng mã nguồn mở. Hãy cập nhật những phát triển mới nhất của chúng tôi bằng cách ghé thăm GitHub repository. Hãy tham gia cộng đồng sôi động của chúng tôi và xem cách chúng tôi đang tạo ra tác động trên khắp các ngành công nghiệp như nông nghiệp và sản xuất.






