อ่านเจอบทความเกี่ยวกับ การเปลี่ยนภาษาในการพัฒนาระบบจาก PHP ไปยัง Go
เป็นส่วนการทำงานเกี่ยวกับ Face Recognition
ซึ่งสิ่งที่ได้กลับมา
มีทั้งเรื่องของประสิทธิภาพการทำงานที่สูงขึ้น
ส่งผลต่อประสบการณ์การใช้งานระบบของผู้ใช้งานโดยตรง
มีทั้งเรื่องของการเรียนรู้สิ่งต่าง ๆ จากการลงมือทำ
ดังนั้นจึงสรุปสิ่งที่น่าสนใจไว้นิดหน่อย
น่าจะมีประโยชน์สำหรับนักพัฒนา

ก่อนที่จะเลือกภาษา Go นั้น

ทางทีมทำการมีการทำ research ในภาษาต่าง ๆ ก่อน
ไม่ใช่เอะอะก็เลือกใช้เลย
แน่นอนว่า เลือกตามเป้าหมายที่ได้ตั้งเอาไว้

การพัฒนาใหม่นั้น ก็ไม่ใช่ทำแบบ big bang
แต่ค่อย ๆ ทำเป็นทีละส่วน
จากนั้นทำการ validate และ ทดสอบ จากการใช้งานจริง ๆ
เพื่อให้เห็นปัญหา
เพื่อทำการแก้ไขได้ง่ายขึ้น
เพื่อลดความเสี่ยงต่าง ๆ อีกด้วย

ประโยชน์ที่ได้จากการเปลี่ยน ประกอบไปด้วย

  • ความเร็วในการทำงานต่อ transaction เร็วขึ้นจาก 1-2 วินาที เหลือ 300 ms
  • การ deploy ง่ายขึ้น รวมถึงขนาดของ Docker Image ที่เล็กลง
  • ลดการใช้ memory ลงไป 50%
  • ลดค่าใช้จ่ายของ server ลง 50%

สิ่งที่น่าสนใจคือ ในส่วนของ Professional Development

ในทีมพัฒนานั้นไม่มีใครมีประสบการณ์
ในการพัฒนาและ deploy ระบบงานด้วยภาษา Go บน production เลย
ดังนั้นในการเปลี่ยนแปลงครั้งนี้
มันเป็นโอกาสที่ดีสำหรับการเรียนรู้อย่างมาก
เพื่อให้ได้รับบทเรียนต่าง ๆ จากงานจริง ๆ จากลูกค้าจริง ๆ
No pain No gain
เพื่อปรับปรุงสิ่งต่าง ๆ ให้ดีขึ้น รวมทั้งความสามารถของทีมอีกด้วย

สิ่งที่สำคัญมาก ๆ ของการใช้งานภาษา Go ประกอบไปด้วย

  • ​การจัดการเรื่อง memory leak และ garbage collection ซึ่งมี profiling tool มาให้ใช้งาน ดังนั้นใช้ซะ ให้คล่อง
  • ปัญหาในการจัดการข้อมูล JSON ขนาดใหญ่ ซึ่งพบว่า JSON package ของ Go ไม่สามารถแก้ปัญหาใน use case ของทีมได้ ซึ่งก็แก้ไขด้วยการเลือก data structure และการ process ข้อมูลที่จะส่งมานั่นเอง
Tags:,