อ่านบทความสรุปสิ่งที่น่าสนใจจากงาน
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 ก็แจ่มแล้วครับ
ขอให้สนุกกับการพัฒนาครับ