ซัมเมอร์แห่งโค้ดและส่วนขยายของ Chrome ใน Google

Xuezhou Dai
Xuezhou Dai

ฉันเป็นคนปี 2 จากจีน ชื่นชอบการพัฒนาเว็บ ในปีแรก ฉันเข้าร่วมชมรมด้านเทคนิคที่วิทยาลัยของเรา นี่คือชมรมนี้ที่ฉันได้รู้จักกับการเขียนโค้ดและโอเพนซอร์ส ในชมรม ผมได้พบกับกลุ่มพาร์ทเนอร์ที่สนใจเรื่องการเขียนโค้ด และพวกเขาก็ได้เรียนรู้เกี่ยวกับ Google Summer of Code เมื่อต้นปี 2023 โปรแกรมระดับโลกที่จัดขึ้นโดย Google นี้เชื่อมโยงนักเรียนเข้ากับองค์กรโอเพนซอร์ส และให้คำแนะนำในการใช้ช่วงฤดูร้อนให้เกิดประโยชน์สูงสุดด้วยการเข้าร่วมกิจกรรมโอเพนซอร์ส

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

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

เรื่องราวที่ฉันมีส่วนร่วมกับ GSoC

ฉันสม��ครเข้าร่วมโครงการ Chromium GSoC 2023 โดยงานหลักของฉันคือการอัปเกรดตัวอย่างส่วนขยาย Chrome ที่มีอยู่เพื่อให้ทำงานใน Manifest V3 รวมถึงสคริปต์และเอกสารที่เกี่ยวข้องบางส่วน

ในช่วงเริ่มต้น

ฉันได้เรียนรู้เกี่ยวกับ GSoC ครั้งแรกในเดือนกุมภาพันธ์ 2023 แต่ยังไม่มั่นใจว่าอยากจะสมัครหรือไม่ ตอนนั้นฉันมีข้อกังวลอยู่ 2-3 อย่าง

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

อย่างไรก็ตาม เรามั่นใจได้เลยว่าปัญหาไม่ได้เกิดจากอะไร

ก่อนที่จะเล่าเรื่องราวให้ฟัง ฉันอยากพูดถึงสิ่งที่เกิดขึ้นกับฉันเมื่อช่วงต้นปี 2022 เหตุการณ์นี้ยังเป็นโอกาสให้ฉันได้เข้าร่วมใน GSoC อีกด้วย ฉันต้องการย้ายข้อมูลส่วนขยายเบราว์เซอร์โดยอิงจากไฟล์ Manifest V2 ไปยังไฟล์ Manifest V3 เราต้องอ่านเอกสารประกอบและทำความเข้าใจการเปลี่ยนแปลง API ทุกครั้งเพื่อให้การย้ายข้อมูลเสร็จสมบูรณ์ นอกจากนี้ยังต้องค้นหาว่ามีตัวอย่างที่เกี่ยวข้องสำหรับการอ้างอิงหรือไม่ การทำความเข้าใจ API ใหม่และการโอนโค้ดเป็นเรื่องที่ค่อนข้างยากสำหรับฉัน

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

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

การสมัครเข้าร่วมโครงการ GSoC

สวัสดี

ฉันเป็นนักศึกษาปริญญาตรีสาขาวิทยาการคอมพิวเตอร์จากจีน ฉันเคยเรียนรู้เกี่ยวกับโครงการที่เกี่ยวข้องกับตัวอย่างส่วนขยาย Chrome ที่ GSoC และสนใจที่จะปรับปรุงตัวอย่างไฟล์ Manifest V3 ฉันไม่มีประสบการณ์ในการทำตัวอย่าง API มาก่อนมากนัก อย่างไรก็ตาม ฉันมีประสบการณ์ในการพัฒนาเว็บและการพัฒนาส่วนขยาย MV3 (https://github.com/daidr/paimon-webext) ซ���่งทำให้ฉันตระหนักถึงความสำคัญของตัวอย่าง API ของ MV3 ดังนั้นฉันจึงอยากเรียนรู้และมีส่วนร่วม ฉันจะยังสมัครเข้าร่วมโปรเจ็กต์นี้ได้ไหม

ขอขอบคุณ

หลังจากนั้นไม่นาน ผมได้รับการตอบกลับจากโอลิเวอร์และอาลี (เจ้านายของโอลิเวอร์) ตัวแทนตอบคำถามของฉันและให้ข้อมูลอย่างละเอียดเกี่ยวกับกฎและลำดับเวลาที่เจาะจงของ GSoC นอกจากนี้ยังแชร์ข้อมูลอ้างอิงที่มีประโยชน์จำนวนมากกับฉันด้วย

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

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

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

ได้รับการยอมรับ

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

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

การเขียนโค้ด

ระหว่างสร้างความผูกพันครั้งแรก ผมต้องจัดการกับข้อบกพร่องเริ่มต้นที่เหลืออยู่และตรวจสอบว่าต้องเรียนรู้ทักษะใหม่ๆ หรือไม่ และผมก็ใช้เวลาที่เหลือในการอ่านเอกสารประกอบ

หลังจากพูดคุยกับที่ปรึกษา เราปรับเป้าหมายบางอย่างเพื่อให้จัดสรรเวลากับงานได้อย่างสมเหตุสมผลมากขึ้น เราย��งได้พูดคุยเกี่ยวกับแนวคิดในการสร้างหน้า developer.chrome.com ใหม่ซึ่งแสดงตัวอย่าง API ทั้งหมดและให้ตัวกรองพื้นฐานเพื่อช่วยให้นักพัฒนาซอฟต์แวร์ค้นหาตัวอย่างที่ต้องการได้อย่างรวดเร็ว เป็นงานที่ค่อนข้างซับซ้อนสำหรับฉัน พี่เลี้ยงและฉันใช้เวลาสักพักในการกำหนดโปรเจ็กต์และเขียนเอกสารข้อกำหนดของผลิตภัณฑ์ (PRD)

สำหรับงานขนาดใหญ่นี้ เราตัดสินใจว่าเราต้องการสคริปต์อัตโนมัติในที่เก็บตัวอย่างเพื่อข้ามที่เก็บข้อมูลและสร้างไฟล์ JSON ที่มีรายการตัวอย่างส่วนขยายและ API ที่ใช้ ตอนนี้ที่เก็บเอกสาร developer.chrome.com ใช้ไฟล์นี้เพื่อสร้างหน้าเว็บ

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

หลังจากการตรวจสอบครั้งใหญ่และเล็กหลายครั้ง ก็ได้ผสานรวมโค้ดได้สำเร็จ คุณจะดูชุดข้อความทั้งหมดได้ใน GitHub หรือดูหน้าที่เผยแพร่อยู่

สรุป

ถ้าคุณถามผมว่า GSoC ทำอะไรให้ผม แน่นอนว่าอย่างแรกเลยคือการทำความเข้าใจความรู้เกี่ยวกับ API ส่วนขยายเบราว์เซอร์ การอ่านเอกสารประกอบและเข��ยนตัวอย่างใหม่ๆ ช่วยให้เราเข้าใจ API ต่างๆ ของส่วนขยายเบราว์เซอร์โดยละเอียด

นอกจากนี้ ฉันมีทักษะหลายอย่างที่ไม่ค่อยเป็นที่รู้จักก่อนที่จะได้รับการยอมรับให้เข้าร่วม GSoC เช่น การปฏิบัติตามกระบวนการตรวจสอบโค้ดที่ครอบคลุมและการสร้าง PRD ผมยังเริ่มใช้การดำเนินการใน GitHub เพื่อทำให้เวิร์กโฟลว์ทำงานอัตโนมัติ และเรียนรู้วิธีใช้ Babel ข้ามตัวอย่างส่วนขยายทั้งหมดและติดตาม API ที่ใช้ นอกจากนี้ ฉันมีประสบการณ์ครั้งแรกกับการใช้เครื่องมือเทมเพลต Nunjucks ความสามารถเหล่านี้สำคัญต่อการเขียนโปรแกรม ฉันก็ดีใจที่ได้เรียนรู้ การมีส่วนร่วมในชุมชนโอเพนซอร์สทำให้ฉันมีความสุข

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

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

และหวังว่าประสบการณ์ของฉันจะเป็นข้อมูลอ้างอิงบางส่วนสำหรับการเข้าร่วมกิจกรรมโอเพนซอร์สในอนาคต

คำแนะนำของฉันบางส่วนสำหรับผู้ที่ต้องการเข้าร่วม Google Summer of Code มีดังนี้

  1. เลือกไอเดียที่เหมาะกับคุณ: ในความคิดของฉัน เมื่อมองหาไอเดีย ความสนใจของคุณควรสำคัญแล้วตามด้วยทักษะ กลยุทธ์นี้จะช่วยให้คุณรักษาความกระตือรือร้นไว้ตลอดทั้งกระบวนการให้การสนับสนุนได้
  2. คุณภาพมากก��่าปร����า��: �����ณ��่����้อ���สนอหลายรายการเพื่อเพิ่มโอกาสที่จะได้รับการยอมรับให้เข้าร่วม GSoC ได้ แต่ผมเชื่อว่าคุณภาพน่าจะสำคัญกว่าเพราะมนุษย์มีพลังงานจำกัด การมุ่งเน้นที่ 2-3 แนวคิดอาจมีประโยชน์มากกว่าในตอนท้าย
  3. อย่ากลัวสิ่งใหม่: อย่าลังเลที่จะลองใช้เทคโนโลยีที่คุณยังไม่ได้ทำในโครงการ คุณใช้เวลาเกือบ 1 เดือนในการสร้างความสนิทสนมกับชุมชนเพื่อทำความคุ้นเคยกับเทคโนโลยีที่ไม่คุ้นเคย และใช้เวลาทั้งฤดูร้อนในการนำมาใช้ ลุยเลย!
  4. ทําความคุ้นเคยกับโปรเจ็กต์ล่วงหน้า เช่น อ่านเอกสารประกอบการพัฒนา ดูประวัติการคอมมิตและปัญหาก่อนหน้า และทบทวนคําขอพุลที่ผ่านมา การทำความเข้าใจโครงการในภาพรวมล่วงหน้าจะช่วยคุณในการเขียนข้อเสนอที่ครอบคลุมมากขึ้น
  5. รักษาการสื่อสาร: สื่อสารกับที่ปรึกษาเป็นประจำและอย่าลังเลที่จะถามคำถามเมื่อพบปัญหา ไม่ว่าจะก่อนการสมัครหรือหลังจากได้รับการยอมรับก็ตาม ที่ปรึกษาส่วนใหญ่เต็มใจที่จะช่วยแก้ปัญหา ซึ่งจะช่วยให้คุณติดตามความคืบหน้าของคุณได้

ขอขอบคุณที่อ่าน