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

Dec 01 2022
จะเริ่มต้นอย่างไร?
เรื่องราวเบื้องหลัง ⏮ ในฐานะผู้ให้คำปรึกษาที่ ADPList ฉันมักถูกถามเกี่ยวกับผลงานโอเพนซอร์สของฉันในฐานะผู้ส่ง Apache และวิธีเริ่มต้นใช้งาน Github การได้รับการแต่งตั้งให้เป็น Apache Committer (apache/mxnet#19512) เป็นหนึ่งในความสำเร็จที่ยิ่งใหญ่ที่สุดของฉันในโลกของการเขียนโค้ดและเทคโนโลยี
ภาพถ่ายโดย Richy Great บน Unsplash

ย้อนหลัง⏮

ในฐานะผู้ให้คำปรึกษาที่ ADPListฉันมักถูกถามเกี่ยวกับการมีส่วนร่วมแบบโอเพ่นซอร์สในฐานะผู้ส่ง Apache และวิธีการเริ่มต้นใช้งาน Github

การได้รับการแต่งตั้งให้เป็น Apache Committer ( apache/mxnet#19512 ) เป็นหนึ่งในความสำเร็จที่ยิ่งใหญ่ที่สุดของฉันในโลกของการเข้ารหัสและเทคโนโลยี ฉันต้องการแบ่งปันการเรียนรู้จากการใช้เวลากับชุมชนโอเพ่นซอร์ส สิ่งนี้กระตุ้นให้ฉันให้คำปรึกษากับผู้เชี่ยวชาญด้านซอฟต์แวร์ในช่วงต้นอาชีพและวิทยาการคอมพิวเตอร์/engg นักศึกษามหาวิทยาลัย บทความนี้พยายามตอบคำถาม —

วันนี้ฉันจะทำอะไรในเดือนพฤศจิกายน 2022 หากฉันจะเริ่มการเดินทางในโอเพ่นซอร์ส

‍♀ โอเพ่นซอร์สหมายถึงอะไร?

Githubคือต้นแบบของจักรวาลโอเพ่นซอร์ส โดยทำให้แนวคิดของที่เก็บ การดึงคำขอ และการควบคุมเวอร์ชันเป็นที่นิยม โอเพ่นซอร์สนั้นโดยพื้นฐานแล้วเกี่ยวกับการทำให้การเข้าถึงซอร์สโค้ดลดลง มันเกี่ยวกับการทลายกำแพงที่วางไว้ด้วยข้อตกลงไม่เปิดเผยข้อมูล [NDAs] และลิขสิทธิ์และเครื่องหมายการค้าที่เข้มงวด ™ นี่ไม่ได้หมายความว่ารหัสโอเพ่นซอร์สไม่มีใบอนุญาตหรือลิขสิทธิ์ มันเกี่ยวกับการให้อิสระในการแบ่งปันความรู้และข้อมูลสู่สาธารณะด้วยความปลอดภัยในการอ้างอิงและการอ้างอิงที่เหมาะสม โอเพ่นซอร์สเป็นตัวปรับระดับที่ยอดเยี่ยมในแง่นั้น ผู้คนจากทั่วโลกสามารถอ่าน แสดงความคิดเห็น เขียน และแสดงออกได้อย่างอิสระเกี่ยวกับซอฟต์แวร์ที่กำลังพัฒนาในโลกโอเพ่นซอร์ส เสรีภาพในการแสดงออกซึ่งเป็นสิทธิมนุษยชนขั้นพื้นฐาน เมื่อนำไปใช้กับโลกของซอฟต์แวร์และเทคโนโลยี จะแสดงออกมาในรูปของ "โอเพ่นซอร์ส"

‍♂️การสนับสนุนโอเพ่นซอร์สเกี่ยวข้องกับอะไร?

เอาล่ะ ตอนนี้เราอยู่ในหน้าเดียวกันกับคำว่า "โอเพ่นซอร์ส" ที่เกี่ยวข้อง กิจกรรมใดบ้างที่เกี่ยวข้องกับการสนับสนุนระบบปฏิบัติการ

ในความเห็นของฉัน ชุดของการดำเนินการต่อไปนี้อยู่ภายใต้การสนับสนุนของ OS

  1. สร้างปัญหา จุดบกพร่อง และถามคำถาม
  2. เพิ่มคำขอฟีเจอร์ [ผ่านปัญหา จิราหรือซอฟต์แวร์ติดตามโครงการ]
  3. คิดและทำข้อเสนอ
  4. แสดงความคิดเห็นและมีส่วนร่วมในการอภิปราย
  5. ตอบคำถาม
  6. แก้ไขข้อบกพร่อง
  7. ตรวจสอบโค้ดที่พัฒนาโดยสมาชิกคนอื่นๆ ในชุมชน
  8. เพิ่มการทดสอบ ปรับปรุงโครงสร้างพื้นฐานการทดสอบ/CI/CD
  9. เขียนโค้ดคุณลักษณะใหม่
  10. เข้าร่วมกิจกรรมเสมือนจริง/ตัวต่อตัว
  11. ประชาสัมพันธ์ห้องสมุด/สินค้า/บริการ
  12. สื่อสารอย่างแข็งขันในการสนทนา/ช่องแชท/รายการผู้พัฒนา
  13. โหวตและมีส่วนร่วมในขั้นตอนการเผยแพร่ [ของห้องสมุด/ผลิตภัณฑ์/เฟรมเวิร์ก/บริการ]

ฉันควรเริ่มต้นอย่างไร?

ฉันจะติดตาม 1 ใน 2 เส้นทางต่อไปนี้

  1. โครงการที่มีชื่อเสียงโดยองค์กรโอเพ่นซอร์สที่มีชื่อเสียง
  2. โครงการที่ฉันได้รับบริบทมากที่สุด

ค้นหาโครงการที่คุ้นเคยซึ่งสนับสนุนโดยองค์กรโอเพ่นซอร์สที่ มีชื่อเสียง

องค์กรโอเพ่นซอร์สที่มีชื่อเสียง — GNOME, PSF, ASF, DF, LF
  • Apache Software Foundations — hadoop, hive, hbase, mxnet, cassandra
  • The Document Foundation — ชุดโปรแกรม LibreOffice [Open office]
  • GNOME Foundation — สภาพแวดล้อมเดสก์ท็อป GNOME ที่มีชื่อเสียง
  • Linux Foundation — มีชื่อเสียงในด้านระบบปฏิบัติการที่ใช้ UNIX
  • Mozilla Foundation — มีชื่อเสียงในด้านเบราว์เซอร์

วิธีง่ายๆ ในการสร้างผลกระทบที่มีความหมายต่อชุมชนนักพัฒนาคือเมื่อคุณมีโมเดลในใจของผลิตภัณฑ์/เฟรมเวิร์ก/บริการพื้นฐานอยู่แล้ว ฉันจะใช้พลังของฉันในการสนับสนุนโอเพ่นซอร์สดังกล่าวข้างต้นโดยใช้ประโยชน์จากความรู้และบริบทที่ฉันสร้างมาจนถึงตอนนี้ในฐานะนักพัฒนา

นี่อาจหมายถึงโครงการที่แตกต่างกันสำหรับนักพัฒนาที่แตกต่างกัน โดยขึ้นอยู่กับชุดซอฟต์แวร์ที่พวกเขาคุ้นเคยมากที่สุด

ฉันจะแสดงรายการโครงการโอเพ่นซอร์สทั่วไปตามภาษา:

ที่มา: octoverse.github.com | 2022

โครงการ Javascript 10 อันดับแรกโดยTechnical Geek

  1. ตอบสนองโดย Facebook / Meta
  2. Tensorflow.jsโดย TF [ต้นฉบับโดย Google]
  3. โหนด js
  4. Angular.js
  5. jQuery
  6. ตัวจัดการแพ็กเกจโหนด [npm]
  7. Vue.js
  8. Ember.js
  9. ดาวตก.js
  10. พอลิเมอร์
  1. Tensorflow — การเรียนรู้เชิงลึก
  2. matplotlib — การแสดงข้อมูล
  3. Flask — ผู้พัฒนาเว็บ
  4. Djangoโดยมูลนิธิซอฟต์แวร์ Django
  5. PyTorch — สร้างสรรค์โดย Facebook/Meta
  6. MXNetโดย Apache Software Foundation
  7. Ansible — การปรับใช้ Ops & เครื่องมือประสาน
  8. คำขอ — ไลบรารี HTTP โดย Python Software Foundation
  9. Scikit-learn — ML ในไพ ธอน
  10. Pandas — วิทยาศาสตร์ข้อมูล/การวิเคราะห์ข้อมูล
  1. OpenJDK
  2. RXJava
  3. Apache Pinot — ที่เก็บข้อมูล OLAP
  4. Hazelcast — แพลตฟอร์มการคำนวณและการจัดเก็บแบบกระจาย
  5. รูปแบบ Google Java — สไตล์ Google Java
  6. jOOQ — SQL สำหรับ Java
  7. สปริงบูต
  8. Glide — การแคชและการสร้างรูปภาพสำหรับ Android
  9. Guava — ไลบรารี Java หลักของ Google
  10. mockito — จำลองกรอบการทดสอบ
  1. ค้นหาใน Google ด้วยคีย์เวิร์ด “โครงการโอเพ่นซอร์ส 10 อันดับแรก” และ “ภาษา”
  2. ค้นหาบน Github —https://github.com/search?q=java+language%3AJava&type=repositories&l=Java