seungwon

ประสบการณ์การมีส่วนร่วมโอเพนซอร์ส

สร้าง: 2025-05-03

อัปเดต: 2025-05-27

สร้าง: 2025-05-03 00:00

อัปเดต: 2025-05-27 09:42

บทความนี้มีเป้าหมายเพื่อให้กำลังใจแก่ผู้ที่สนใจใน โอเพนซอร์สแต่มีความกลัว เช่น 'ฉันทำได้เหรอ?', 'ฉันควรจะเริ่มจากตรงไหน?'

วันนี้ ฉันอยากจะแบ่งปันประสบการณ์ที่ฉันได้เรียนรู้และรู้สึกจากการลองเปิดประตูสู่ โอเพนซอร์ส

โอเพนซอร์ส?

เมื่อศึกษาการพัฒนา คุณมักจะได้ยินคำว่า 'โอเพนซอร์ส' บ่อยครั้ง เมื่อคุณดู GitHub คุณจะพบโครงการมากมายที่ขับเคลื่อนโลกเปิดโค้ดอย่างกว้างขวาง

โครงการที่เปิดเผยโค้ดต่อสาธารณะเช่นนี้เรียกว่า 'โอเพนซอร์ส

ตัวอย่างเช่น มีโอเพนซอร์สขนาดใหญ่ เช่น OpenJDK, Spring Framework, Redis และ React

การมีส่วนร่วมในโอเพนซอร์ส

ฉันมีส่วนร่วมในโอเพนซอร์สทั้งหมด 4 ครั้งจนถึงตอนนี้ ฉันมีส่วนร่วมในการค้นหา การปรับปรุงเล็กน้อยของโอเพนซอร์ส ไม่ใช่การเพิ่มฟังก์ชันที่พลิกโฉมโลก

ฉันไม่รู้สไตล์โค้ดของโครงการข้างต้นและไม่รู้รายละเอียดว่ามันทำงานอย่างไร

คุณสามารถเห็นได้ว่า คุณสามารถมีส่วนร่วมในชุมชนได้แม้ว่าจะไม่เข้าใจโค้ดอย่างสมบูรณ์แบบก็ตามฉันเพิ่งเริ่มพัฒนาได้แค่ 2 ปี และฉันไม่รู้สึกว่าฉันมีความสามารถในการพัฒนามากนัก

ฉันแค่มีความสุขที่ได้มีส่วนร่วมในโอเพนซอร์สและสื่อสารในชุมชนนักพัฒนา ฉันจึงยังคงทำกิจกรรมเหล่านี้ต่อไป

ทำไมฉันถึงอยากมีส่วนร่วมในโอเพนซอร์ส?

ตามตรง ในตอนแรกความคิดที่ว่า 'มันคงจะดีถ้าเพิ่มเข้าไปในประวัติย่อใช่ไหม?' ไม่ได้หายไปไหน มันค่อนข้างใหญ่เลยทีเดียว แต่แรงจูงใจที่ยิ่งใหญ่กว่านั้นก็มีอยู่ นั่นคือความปรารถนาที่จะ 'เรียนรู้ให้ลึกซึ้งยิ่งขึ้น' และความจำเป็นที่จะ 'แก้ไขปัญหาที่ฉันประสบ'

ฉันมีโอกาสได้ศึกษา Project Reactor ซึ่งเป็นเทคโนโลยีพื้นฐานขณะใช้ Spring WebFlux ในโครงการทีม ฉันเข้าใจแนวคิดผ่านหนังสือหรือเอกสาร แต่การทำงานจริงและ การปรับปรุงประสิทธิภาพในระบบที่ซับซ้อนเป็นสิ่งที่ฉันต้องดูโค้ดและเผชิญหน้าโดยตรง นอกจากนี้ ฉันมักจะกังวลเกี่ยวกับ 'ฉันจะพิสูจน์ได้อย่างไรว่าฉันเรียน Reactor อย่างขยันขันแข็ง?' และฉันก็คิดว่า 'ฉันต้องมีส่วนร่วมในโอเพนซอร์ส!

เมื่อตัดสินใจที่จะ 'มีส่วนร่วม!' ฉันไม่รู้ว่าจะเริ่มต้นจากตรงไหน การค้นหาส่วนที่ฉันจะแก้ไขในโค้ดจำนวนมหาศาล ไปจนถึงการคาดการณ์ว่าการเปลี่ยนแปลงของฉันจะส่งผลกระทบต่อระบบทั้งหมดอย่างไร ทุกอย่างน่ากลัว

ฉันใช้เวลามากในการลงทะเบียน PR เพราะฉันคิดว่า 'จะเกิดอะไรขึ้นถ้าฉันส่ง PR เหมือนกับฉัน แล้วถูกด่า'”

Reactive Command ของ Lettuce ซึ่งเป็นไคลเอนต์ Java Redis ที่ฉันใช้ในฐานะ Reactive Stack นั้นขึ้นอยู่กับ Reactor และฉันต้องการแก้ไขและปรับปรุงเชน Reactor โดยตรงโดยอิงจากการเรียนรู้ Reactor

ฉันก็แค่ fork หลังจากนั้นก็มองไปที่โค้ดทั้งหมดที่รวม 'Reactive' และ 'reactor' ฉันดูโค้ดทั้งหมดที่สร้างขึ้นด้วย Reactor Publisher เช่น Mono และ Flux

เมื่อฉันดูโค้ดอย่างละเอียดถี่ถ้วน ฉันโชคดีที่ได้พบโค้ดหนึ่งในโค้ดที่ใช้เชน Reactor ซึ่งมีความสามารถในการอ่านลดลงเล็กน้อย และการเชื่อมต่อเมธอดไม่ถูกต้อง มันไม่ใช่การปรับปรุงฟังก์ชันหรือการเปลี่ยนแปลงสถาปัตยกรรมที่อาจทำให้โลกต้องตะลึง แต่ มันเป็นปัญหาเล็กๆ น้อยๆ ที่ชัดเจนในขอบเขตที่ฉันเข้าใจและแก้ไขได้'โอ้ ถ้าเป็นแบบนี้ ฉันก็สามารถมีส่วนร่วมได้!' ฉันคิดว่า

ฉันปรับเปลี่ยนโค้ดอย่างระมัดระวังตามสิ่งที่ฉันเข้าใจ และตรวจสอบว่ามันทำงานตามที่ตั้งใจไว้ในสภาพแวดล้อมท้องถิ่นหรือไม่ แม้ว่ามันจะเป็นการเปลี่ยนแปลงเล็กน้อย แต่ฉันก็พยายามปฏิบัติตามสไตล์ของโค้ดที่มีอยู่ให้มากที่สุดเท่าที่จะทำได้ และฉันก็พยายามเข้าใกล้อย่างระมัดระวังโดยคำนึงถึงการพิจารณาหลายครั้งว่าอาจส่งผลกระทบต่อส่วนอื่นหรือไม่

ฉันคอมมิตการแก้ไขและในที่สุดก็ถึงเวลาที่จะอัปโหลด PR ตามจริง ฉันลังเลและลังเลใจมากแค่ไหนก่อนที่จะกดปุ่ม 'ส่ง' 'ฉันควรส่ง PR ด้วยการเปลี่ยนแปลงแค่นี้หรือไม่?', 'ฉันจะไม่ถูกบอกว่าฉันแก้ไขสิ่งที่เป็นเรื่องธรรมดาเกินไปหรือ?', 'ฉันจะสามารถเขียนคำอธิบายเป็นภาษาอังกฤษได้ดีหรือไม่?' ฉันกังวลเกี่ยวกับสิ่งเหล่านี้

ดังที่กล่าวไว้ก่อนหน้านี้ ฉันกลัวว่าฉันจะถูกด่าเพราะความไม่สมบูรณ์แบบของฉัน แต่ด้วยความคิดที่ว่า 'การเริ่มต้นคือครึ่งหนึ่ง' และ 'คุณไม่สามารถเรียนรู้อะไรได้หากคุณไม่ลอง' ฉันจึงรวบรวมความกล้าที่จะเขียนสิ่งที่ฉันเปลี่ยนแปลงและเหตุผลให้ละเอียดที่สุดเท่าที่จะเป็นไปได้และส่ง PR

ประสบการณ์การมีส่วนร่วมโอเพนซอร์ส

redis/lettuce - #3061

ในที่สุด PR ของฉันก็ถูก 'Merged' และฉันรู้สึกภูมิใจและพอใจอย่างมากกับความจริงที่ว่าโค้ดที่ฉันเขียนและแก้ไขเป็นส่วนหนึ่งของโครงการโอเพนซอร์สที่มีชื่อเสียงซึ่งนักพัฒนานับไม่ถ้วนใช้

เหนือสิ่งอื่นใด การได้รับความมั่นใจว่า 'ฉันก็ทำได้!' เป็นสิ่งที่ฉันได้รับมากที่สุด

คุณลังเลที่จะมีส่วนร่วมในโอเพนซอร์สในขณะนี้หรือไม่?

ไม่เป็นไรถ้าคุณไม่เข้าใจมันอย่างสมบูรณ์ คุณสามารถเริ่มต้นจากส่วนเล็กๆ น้อยๆ เหมือนฉันได้ คุณสามารถแก้ไขการพิมพ์ผิดในเอกสาร เข้าร่วมในการแปล รายงานข้อผิดพลาดง่ายๆ และมีวิธีมากมายที่คุณสามารถมีส่วนร่วมได้ สิ่งสำคัญคือ ความกล้าที่จะก้าวแรกเหนือความกลัว

หากคุณทำผิดพลาด มันเป็น โอกาสที่จะเติบโตมากขึ้นผ่านการรับข้อเสนอแนะจากชุมชน

มันเป็น โอกาสอันมีค่าในการเพิ่มบรรทัดลงในประวัติย่อของคุณและเป็นวิธีการพิสูจน์ว่าฉันได้ศึกษาอย่างหนักจริงจังโดยอิงจากการเรียนรู้

ไม่สามารถแสดงความคิดเห็นในโพสต์นี้ได้

29 พ.ย. 2567 ข่าวล่าช้า: สมัคร Replit แบบชำระเงิน / นิสัยการพัฒนาซอฟต์แวร์ที่ดีบทความบล็อกที่เขียนเมื่อวันที่ 29 พฤศจิกายน พ.ศ. 2567 นี้จะแบ่งปันรีวิวการสมัครสมาชิกแบบชำระเงินของ Replit และแนะนำนิสัยการพัฒนาซอฟต์แวร์ที่ดี 10 ประการ ครอบคลุมกลยุทธ์การเขียนโค้ดและการปรับโครงสร้างที่มีประสิทธิภาพ รวมถึงความสำคัญของการทดสอบ
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 29, 2024

เรื่องราวการพัฒนาโครงการ LegiNote ตอนที่ 2 - สแตกเทคโนโลยีและเวิร์กเกอร์บทความตอนที่สองของเรื่องราวการพัฒนาโครงการ LegiNote ซึ่งจะกล่าวถึงการพัฒนาเวิร์กเกอร์โดยใช้ภาษา Go เนื้อหาครอบคลุมการนำไปใช้ในการรวบรวมและอัปเดตข้อมูล รวมถึงการออกแบบโครงสร้างของโครงการ
statpan
statpan
statpan
statpan

August 20, 2024

[ผู้ที่ไม่ใช่สายงานนี้ สามารถเป็นนักพัฒนาได้ไหม] 16. เคล็ดลับการสร้างพอร์ตโฟลิโอสำหรับนักพัฒนาซอฟต์แวร์มือใหม่บทความนี้จะแนะนำเคล็ดลับในการสร้างพอร์ตโฟลิโอสำหรับนักพัฒนาซอฟต์แวร์มือใหม่ การเขียนรายละเอียดประสบการณ์โครงการและทักษะการพัฒนา รวมถึงการระบุให้ชัดเจนว่าได้พัฒนาบริการอะไรบ้างมีความสำคัญอย่างยิ่ง
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024

โครงการอีกโครงการหนึ่งสิ้นสุดลง แล้วอะไรต่อ แล้วจะทำอย่างไร?โครงการต่างๆ นำเสนอโอกาสในการทำความเข้าใจมุมมองของผู้มีส่วนได้ส่วนเสียที่หลากหลายและการเติบโตอย่างรวดเร็ว ทำความเข้าใจบริบทของแต่ละโครงการและสำรวจศักยภาพในการเติบโตที่ซ่อนอยู่
Byungchae Ryan Son
Byungchae Ryan Son
Byungchae Ryan Son
Byungchae Ryan Son

May 22, 2024

อีกหนึ่งโปรเจ็กต์ที่เสร็จสมบูรณ์แล้ว -1รับข้อมูลเชิงลึกที่มีค่าและเร่งความก้าวหน้าในอาชีพของคุณด้วยการทำความเข้าใจมุมมองที่หลากหลายของผู้มีส่วนได้ส่วนเสียในทุกโครงการที่คุณมีส่วนร่วม
Byungchae Ryan Son
Byungchae Ryan Son
Byungchae Ryan Son
Byungchae Ryan Son

May 3, 2024

[ผู้ที่ไม่ใช่สายงานนี้ สามารถเป็น Developer ได้ไหม] 17. Portfolio ของ Developer มือใหม่ ควรมีอะไรบ้าง?Portfolio ของ Developer มือใหม่ ควรเน้นการแสดงความสามารถในการสร้างฟังก์ชัน CRUD พื้นฐาน และการเชื่อมต่อกับ API ภายนอก
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024