อ่านบทความสรุปสิ่งที่น่าสนใจจากงาน Dev Tools @Scale 2017 ที่ London
จากบทความเรื่อง Dev Tools @Scale Recap

เป็นงานที่มี speaker จากบริษัทใหญ่ ๆ ทั้งนั้น
มาพูดเกี่ยวกับเครื่องมือในการพัฒนาสำหรับระบบงานขนาดใหญ่
ไม่ว่าจะเป็น Facebook, Amazon, ARM, GitHub, Google, Microsoft และ Spotify
เริ่มกันตั้งแต่การจัดการ source code, code quality, การ build, การทดสอบ ตลอกจนการ deploy

เลยนำมาแบ่งปันกันหน่อย
ซึ่งน่าจะมีประโยชน์สำหรับการพัฒนา software บ้าง

เริ่มด้วยเรื่องระบบ Resource Management ของ Facebook

โดยระบบงานชื่อว่า One World
ซึ่งระบบนี้สามารถทำการทดสอบแบบ End-to-End ใน device ต่าง ๆได้หมด
ทั้ง Android emulator, Android device, iOS Simulator ตลอดจน web browser

เรื่องที่สองคือ Facebook Infer คือ Static Analysis Tool

เป็นเครื่องมือที่ช่วยปรับปรุงคุณภาพของ source code
ซึ่งเป็นเครื่องมือ opensource พัฒนาโดย Facebook
โดยใช้กับระบบที่พัฒนาด้วย Java, C, C++ และ Objective-C

หัวใจของเครื่องมือตัวนี้คือ ความเร็วในการทำงาน
และสามารถนำไปทำงานในระบบ Continuous Integration ได้ง่ายอีกด้วย
เพื่อช่วยหาปัญหาเรื่อง Null pointer และ Memory leak
ซึ่งจะทำก่อนการ commit code เสมอ

เรื่องที่สามคือ Top Ten Worst Repositories to Host on GitHub

ทำการอธิบาย use case ที่ GitHub ต้องเผชิญ
ซึ่งเป็น repository ที่มีขนาดใหญ่และจำนวนไฟล์มาก ๆ
โดยทางทีม GitHub ต้องใช้เทคนิคที่หลากหลายมากจัดการกับปัญหา
ไม่ว่าจะเป็นการ replicate และ caching
เป็นกรณีศึกษาที่น่าสนใจอย่างมาก แต่ผมฟังไม่ค่อยรู้เรื่องเท่าไรนัก !!

เรื่องที่สี่คือ Scaling the Git Client with the Git Virtual File System

เป็นเรื่องรวมของทีมจาก Microsoft
ที่ทำการเปลี่ยนให้ทีมพัฒนา Windows มาใช้งาน Git !!
โดยสิ่งที่ต้องเผชิญคือ source code เป็นร้อย GB !!
มีไฟล์เป็นล้านไฟล์ใน repository เดียว
ซึ่งทาง Microsoft ได้พัฒนา Git Virtual File system (GVFS) ขึ้นมาเพื่อจัดการปัญหาเหล่านี้
เนื่องจากโดยปกติแล้ว Git ไม่สามารถรองรับความต้องการแบบนี้ได้

เรื่องที่ห้าคือ Scaling Android Application Testing at Spotify

เป็นเรื่องที่ผมสสนใจมาก ๆ คือการทดสอบ Android app นั่นเอง
โดยพูดถึงเรื่องเครื่องมือที่ใช้ ไปจนถึง infrastructure ที่ต้องเตรียม
เพื่อรองรับการเติมโตของทีมที่สูงขึ้นอย่างก้าวกระโดด

สิ่งที่อธิบายและแสดงให้เห็นคือ
การปรับปรุงคุณภาพของการทดสอบ
ทั้งการทดสอบที่รวดเร็วขึ้น
ทั้งเรื่องของการเตรียม test data
ทั้งรายงานผลการทดสอบที่ดีและอ่านง่ายขึ้น เพื่อช่วยให้หาปัญหาได้รวดเร็ว
ทั้งการใช้ linter
ทั้งการลดหรือกำจัดชุดการทดสอบที่พังบ่อย ๆ ให้หมดไป
โดยกระบวนการทดสอบจะมีทั้งก่อน merge code และหลังจาก merge code ไปแล้ว

สามารถดู VDO เพิ่มเติมได้ที่ Facebook :: At Scale Events

ปล. ถ้ามีโอกาส น่าไปร่วมงานจริง ๆ
แต่ได้ดูผ่าน VDO ก็แจ่มแล้วครับ

ขอให้สนุกกับการพัฒนาครับ