tech_radar
มาดูผลของ Technology Radar เดือนพฤศจิกายน 2559 จาก Thoughtworks
โดยในครั้งนี้มีสิ่งที่น่าสนใจ คือ

  • Docker as a process และ Microservice as a programming model ดังนั้นโลกของ container มันเข้ามาเป็นแนวคิดหลักไปแล้ว
  • AR และ VR เข้ามาสู่กระแสหลัก
  • Holistic ส่งผลกระทบต่อโครงสร้างของทีม

สรุปเฉพาะส่วนที่สนใจคือภาษาโปรแกรมและเครื่องมือในการพัฒนา
ที่เหลือลองไปอ่านเพิ่มเติมได้

เริ่มที่ภาษาโปรแกรมและ framework ก่อน

จะพบว่าในส่วนของ Adopt จะมี JavaScript framework เพียบเลย
ทั้ง Ember.js, React.js และ Redux
แถมยังมี Enzyme ซึ่งเป็น testing library สำหรับ React.js

ทางทีมพัฒนาของ Thoughtworks แนะนำให้ลองใช้งาน Phoenix
เป็น MVC framework ที่เขียนด้วยภาษา Elixir
ซึ่งมันใช้งานง่าย และ ทำงานได้เร็วมาก ๆ

ส่วนที่ผมชอบมาก ๆ คือ Quick และ Nimble
ใช้สำหรับเขียน Unit test ของ iOS app
เขียนใช้รูปแบบเดียวกับ RSpec
อีกทั้งยังใช้ได้กับภาษา Swift และ Objective-C
ที่สำคับคือ ง่ายต่อการทดสอบส่วนการทำงานแบบ asyncchronous อีกด้วย

และยังมีสิ่งที่ต้องยังศึกษาและทำความเข้าใจอยู่อีกเยอะเลย เช่น

  • Vue.js ซึ่งในไทยเริ่มมีการพูดถึงมากขึ้น
  • GraphQL ดูเงียบ ๆ ไปหน่อย
  • ReSwift เป็น library ที่นำเอาแนวคิด Redux มาใช้งานในภาษา Swift
  • Three.js สำหรับการแสดงผลแบบ 3D ผ่าน browser ซึ่งสนับสนุน WebGL

ส่วน Angular 1 ไม่แนะนำให้ใช้แล้วนะ
เนื่องจากไม่ได้ maintain อะไรต่อแล้ว

เรื่องต่อมาคือ เครื่องไม้เครื่องมือในการพัฒนา

ในส่วนของ Adopt นั้นมีเครื่องมือใหม่ ๆ เข้ามาคือ Babel และ Grafana
ดูแล้วไม่ใช่เรื่องแปลกสักเท่าไร
เนื่องจาก Babel มันคือ compiler สำหรับภาษา JavaScript
ทำให้เราสามารถเขียน code ด้วย ES6, ES7 แล้วนำไป run บน browser ได้
ดังนั้นสำหรับการพัฒนาระบบด้วย JavaScript นั้น
จำเป็นต้อง configuration Babel ให้เป็นนะ

ต่อมาคือ Grafana เป็นเครื่องมือสำหรับการแสดงผลการทำงานในรูปแบบ Dashboard
ทั้ง CPU, Memory และการทำงานต่าง ๆ ของระบบ
ยิ่งปัจจุบันเน้นไปยังเรื่อง Microservice และ DevOps
ดังนั้นเรื่อง Dashboard สำหรับ monitoring การทำงานของระบบจึงสำคัญมาก ๆ

ส่วนเครื่องมืออื่น ๆ ที่แนะนำให้ลองนำมาใช้งาน

  • Espresso สำหรับ UI test ของ Android app
  • Fastlane เป็น automation tool สำหรับ iOS และ Android app มีตั้งแต่ build-test-deploy
  • Galen เป็น automated testing สำหรับตรวจสอบ responsive ของ web ในหน้าจอต่าง ๆ กัน มีประโยชน์ต่อทีมออกแบบอย่างมาก
  • Pa11y เป็น automated testing สำหรับการตรวจสอบ web accessibility ซึ่งเป็น command line ให้ไช้งานแบบง่าย ๆ ที่สำคัญสามารถนำไปใส่ในระบบ Continuous Integration ได้อีกด้วย
  • FBSnapshotTestcase ให้สำหรับการ screenshot หน้าจอการทำงานของ iOS app ด้วยการ run Unit test ซึ่งมีความเร็วมาก ๆ
  • Scikit-learn เป็น library สำหรับ machine learning ที่พัฒนาด้วยภาษา Python ซึ่งมี module ต่าง ๆ ให้ใช้งานมากมาย เช่น clustering และ regression เป็นต้น

ส่วนเรื่องของเทคนิคและ platform มีที่น่าสนใจคือ

  • Docker
  • Consumer-driven contract testing
  • API as a product
  • Pipeline as a code
  • เรื่องความปลอดภัยก็สำคัญมาก ๆ ทั้ง Threat modeling, HTTP Strict Transport Security(HSTS) และ Linux security modules

สุดท้ายแล้วมีสิ่งที่ต้องศึกษาอีกเพียบเลยครับ !!