Image may be NSFW.
Clik here to view.
Clik here to view.

จากบทความเรื่อง How GitHub engineers learn new codebases
ทำการอธิบายว่านักพัฒนาที่ GitHub ทำการเรียนรู้ code ใหม่ ๆ อย่างไรบ้าง ?
มีเป้าหมายเพื่อให้ให้นักพัฒนาทำความเข้าใจกับ code ใหม่ ๆ ได้ดีและรวดเร็ว
ไม่ว่าจะมีประสบการณ์น้อยหรือมากก็ตาม
มาดูแนวทางกันว่าเป็นอย่างไรกันบ้าง
เริ่มจากการทำความเข้าใจภาพรวมของระบบก่อนเสมอ
ว่าระบบมันทำงานอย่างไร
มีเป้าหมายเพื่ออะไรบ้าง
ดูเอกสารต่าง ๆ ที่มีอยู่ ทั้ง README, API document รวมทั้งคู่มือต่าง ๆ
ทำการศึกษาโครงสร้าง และ folder structure ของ project
ว่ามีการแบ่งอย่างไร
ว่าแต่ละส่วนมีหน้าที่การทำงานอย่างไร
ว่ามีความสัมพันธ์กันอย่างไร
จากนั้นนำเครื่องมือเข้ามาช่วยในการวิเคราะห์ code เช่น
- Linter
- Static code analysis
- Dependency graph
- GitHub Copilot
สิ่งที่ต้องตอบให้ได้คือ
- Code นี้มีไว้ทำอะไร
- Code นี้ทำงานอย่างไร
ในส่วนของการ coding นั้น ให้เริ่มจากการแก้ไขตาม issue ต่าง ๆ
จะช่วยให้เราเรียนรู้ได้จรงประเด็นและรวดเร็วขึ้น
เนื่องจากต้องเข้าใจ ก่อนจะแก้ไขปัญหานั่นเอง
ได้ประโยชน์ทั้งตัวเองและทีม
ทำการวิเคราะห์จาก observability ต่าง ๆ
ทั้ง telemetry และ metric เพื่อดูพฤติกรรมการทำงานของระบบ
ให้ทำการเขียน test เพื่อตรวจสอบความเข้าใจของเราที่มีต่อ code ว่าถูกหรือไม่
ยิ่งถ้าเจ้อปัญหาต่าง ๆ ยิ่งจะช่วยให้เราเข้าใจมากยิ่งขึ้น
ควรเรียนรู้กันเป็นทีม หรือ เรียนรู้จากคนอื่น
ทั้ง pair programming
ทั้งการถามถึงรายละเอียดของงานที่ได้รับมอบหมาย
ถ้าไม่แน่ใจ ไม่เข้าใจต ให้ถามก่อนเสมอ
อย่าอายที่จะถาม
อย่าทำทั้ง ๆ ที่ยังไม่เข้าใจ มันเสียเวลา
และเมื่อมีปัญหา หรือ การพูดคุยต่าง ๆ ในช่องทางต่าง ๆ
เราต้องให้ความสนใจ ว่าคุยกันอย่างไร แก้ไขกันอย่างไร
จะช่วยให้เราเข้าใจปัญหาต่าง ๆ มากยิ่งขึ้น
ปิดพวก Pull request ต่าง ๆ มาเรียนรู้เพิ่มเติมอีกได้
หรือจะทำการ demo ต่าง ๆ กับเพื่อร่วมทีม
เมื่อทำการเรียนรู้ใด ๆ แล้ว ให้ทำการเขียนเอกสารหรืออธิบายสิ่งต่าง ๆ ออกมา
เพื่อให้เราและทีมเข้าใจ รวมทั้งช่วยเหลือสมาชิกใหม่ ๆ อีกด้วย
สุดท้ายคือ การเรียนรู้จากการสอน
Clik here to view.
