Chủ đề
- #Cơ hội phát triển
- #Đóng góp mã nguồn mở
Đã viết: 2025-05-03
Đã cập nhật: 2025-05-27
Đã viết: 2025-05-03 00:00
Đã cập nhật: 2025-05-27 09:42
Bài viết này nguồn mởnhằm truyền cảm hứng cho những ai quan tâm đến 'nhưng tôi có thể?', 'Tôi nên bắt đầu từ đâu?'
Hôm nay, tôi muốn chia sẻ những kinh nghiệm mà tôi đã học được và cảm nhận được trong quá trình nguồn mởcủa tôi.
Nếu bạn học lập trình, bạn sẽ thường xuyên nghe đến thuật ngữ 'nguồn mở'.Khi bạn duyệt GitHub, bạn sẽ thấy nhiều dự án thay đổi thế giới mở mã.
Các dự án công khai mã này được gọi là 'nguồn mở'.
Ví dụ: OpenJDK, Spring Framework, Redis, React, v.v.
Tôi đã đóng góp vào nguồn mở tổng cộng 4 lần. Thay vì thêm các tính năng thay đổi thế giới, tôi đang tìm kiếm những cải tiến nhỏcủa nguồn mở.
Tôi không biết phong cách mã của dự án trên cũng như cách nó hoạt động chi tiết.
Bạn có thể thấy rằng bạn có thể đóng góp vào cộng đồng ngay cả khi bạn không hiểu hoàn toàn mã. Tôi mới bắt đầu lập trình được hai năm và tôi không cảm thấy mình có năng khiếu về lập trình.
Tôi chỉ thích đóng góp vào nguồn mở và giao tiếp trong cộng đồng các nhà phát triển, vì vậy tôi tiếp tục những hoạt động này.
Thật lòng mà nói, ban đầu, tôi có nghĩ 'Sẽ tốt hơn nếu có một dòng trong sơ yếu lý lịch của tôi?' Tôi có nghĩ về nó khá nhiều. Nhưng có một động lực lớn hơn. Đó là mong muốn 'muốn học hỏi sâu hơn' và nhu cầu 'muốn giải quyết các vấn đề tôi gặp phải'.
Tôi đã có cơ hội nghiên cứu sâu hơn về Project Reactor, công nghệ cơ bản của Spring WebFlux trong một dự án nhóm. Tôi hiểu các khái niệm thông qua sách và tài liệu, nhưng tôi đã phải tự mình xem mã và trải nghiệm trong các hệ thống phức tạp để tìm hiểu cách thức hoạt động và tối ưu hóa. Tôi cũng thường xuyên nghĩ, 'Tôi nên chứng minh rằng tôi đã học Reactor chăm chỉ như thế nào?' Tôi nghĩ 'Tôi nên đóng góp vào nguồn mở!'.
Khi tôi quyết định 'muốn đóng góp!', tôi không biết phải bắt đầu từ đâu. Tôi sợ phải tìm phần tôi sẽ sửa đổi trong vô số mã và dự đoán những thay đổi của tôi sẽ ảnh hưởng đến toàn bộ hệ thống như thế nào.
Tôi đã mất rất nhiều thời gian để đăng ký PR cuối cùng vì tôi nghĩ, 'Điều gì sẽ xảy ra nếu tôi bị ghét bỏ vì tôi đã đưa ra PR giống tôi?'.
Reactive Command của Lettuce, một ứng dụng khách Java Redis mà tôi đang sử dụng cho Reactive Stack, dựa trên Reactor, và tôi muốn cải thiện nó bằng cách sửa đổi chuỗi Reactor dựa trên việc học Reactor.
Tôi đã phân nhánh một cách bừa bãi và xem xét tất cả các mã bao gồm các chuỗi 'Reactive' và 'reactor'. Tôi dường như đã xem xét tất cả các mã được tạo thành từ các trình xuất bản Reactor như Mono và Flux.
Khi tôi xem xét kỹ mã, tôi may mắn tìm thấy mã có độ dễ đọc hơi kém và mã không kết nối đúng phương thức, trong mã sử dụng chuỗi Reactor. Nó không phải là một sự cải tiến chức năng hoặc thay đổi kiến trúc lớn thay đổi thế giới, nhưng đó là một vấn đề nhỏ và rõ ràng trong phạm vi tôi có thể hiểu và sửa. Tôi nghĩ 'À, tôi có thể đóng góp cho việc này!'.
Dựa trên những gì tôi đã hiểu, tôi đã cẩn thận sửa đổi mã và kiểm tra xem nó có hoạt động theo ý định của tôi trong môi trường cục bộ hay không. Mặc dù đó là một thay đổi nhỏ, nhưng tôi đã tiếp cận một cách cẩn thận bằng cách cố gắng làm theo phong cách của mã hiện có và tự hỏi liệu nó có ảnh hưởng đến các phần khác hay không.
Tôi đã cam kết những gì tôi đã sửa đổi và cuối cùng đã đến lúc gửi PR. Thành thật mà nói, tôi đã rất băn khoăn và do dự trước khi nhấn nút 'gửi'. 'Liệu có ổn không nếu tôi gửi PR với sự thay đổi này?', 'Liệu có ai nói rằng tôi đã sửa những điều hiển nhiên không?', 'Tôi có thể giải thích bằng tiếng Anh không?'.
Như tôi đã nói trước đây, tôi sợ rằng tôi sẽ bị ghét bỏ vì sự thiếu sót của mình. Nhưng với suy nghĩ 'bắt đầu là một nửa' và 'bạn không thể học được gì nếu bạn không thử', tôi đã can đảm gửi PR với những gì tôi đã thay đổi và lý do cho những thay đổi đó chi tiết nhất có thể.
redis/lettuce - #3061
Cuối cùng, PR của tôi đã được 'Hợp nhất', và tôi thực sự cảm thấy rất hài lòng và tự hào vì mã tôi đã viết và sửa đổi đã trở thành một phần của một dự án nguồn mở nổi tiếng được sử dụng bởi vô số nhà phát triển.
Hơn hết, 'Tôi cũng có thể làm được!'.
Không sao nếu bạn không hiểu hoàn toàn. Bạn có thể bắt đầu từ những phần nhỏ, giống như tôi. Có rất nhiều cách để đóng góp, chẳng hạn như sửa lỗi chính tả tài liệu, tham gia dịch thuật và báo cáo lỗi đơn giản. Điều quan trọng là lòng can đảm để vượt qua nỗi sợ hãi và thực hiện bước đầu tiên.
Nếu bạn mắc lỗi, bạn có thể nhận được phản hồi từ cộng đồng thông qua những lỗi đó và đây cũng là cơ hội để phát triển hơn nữa.
Đó là một cơ hội quý giá để thêm một dòng vào sơ yếu lý lịch của bạn, nhưng việc đóng góp vào nguồn mở dựa trên việc học tập cũng có thể là một phương tiện để chứng minh rằng bạn đã thực sự học tập chăm chỉ.
Bài viết này không cho phép bình luận.