มาดู มาดู Software Architecture and Design InfoQ Trends Report
ประจำเดือนเมษายน 2022 จาก InfoQ กันหน่อย
ว่ามีอะไรเปลี่ยนแปลงและน่าสนใจกันบ้าง ?
สิ่งแรกที่น่าสนใจคือ Data + Architecture
มันคือการออกแบบ architecture โดยสนใจและใส่ใจเรื่องของ data หรือข้อมูลด้วย
เพื่อทำให้เข้าใจ data flow และ พฤติกรรมต่าง ๆ
จะได้นำมาช่วยในการตัดสินใจ และการนำมาทำ model ต่าง ๆ ได้ดียิ่งขึ้น
สิ่งที่ต้องคิด ประกอบไปด้วย
- คุณภาพของข้อมูลที่จัดเก็บ ยิ่งรู้ว่าข้อมูลที่จัดเก็บมันแย่เร็วเท่าใด จะช่วยให้มีการปรับปรุงที่ดีขึ้น ดังนั้นเรื่องคุณภาพของ code ก็ต้องดีขึ้นเช่นกัน
- data pipeline ที่ต้องวางแผนและออกแบบ ไม่ใช่มานั่งทำทีหลัง ซึ่งทำได้ยากมาก ๆ
- การ traceability ของ data
ในส่วนของ Architect นั้น ไม่ใช่แค่ทำงานเพียงคนกลุ่มเดียวอีกแล้ว
แต่ทางฝั่ง engineer สามารถเข้ามามีส่วนร่วมกับการออกแบบ architecture ด้วย
เพื่อให้เห็นมุมมองด้วยการ implement ต่าง ๆ มากขึ้น
โดยทาง Architect ต้องคอยช่วยประสานงานในส่วนต่าง ๆ ของขั้นตอนการทำงาน
เช่น
- Trade-off analysis
- Make good decision
- Documentation
- Communication
การทำงานส่วนใหญ่จะเป็นแบบ remote และมีการติดต่อสื่อสารแบบ asynchronous
ดังนั้นเรื่องการตัดสินใจทาง architecture จะต้องมีการบันทึกไว้
หนึ่งในรูปแบบที่น่าสนใจคือ Architecture Decision Records (ADRs)
รวมทั้งการทำงานเป็นรอบสั้น ๆ เพื่อรับฟัง feedback จากสิ่งที่ทำลงไป
เพื่อใช้ในการปรับปรุงอย่างต่อเนื่อง
ดังนั้นเรื่อง Evolutionary architecture จึงมีความสำคัญมาก ๆ
ในการออกแบบนั้นสิ่งที่น่าสนใจคือ พวก design for X เช่น
- Design for Sustainability
- Design for Portability
- Design for Security
- Design for Resilience
- Design for Observability
มีอีกเรื่องหนึ่งที่น่าสนใจ แต่ยังไม่รู้เรื่องเลยคือ eBPF (extended Berkley packet filters)
ทำให้เราสามารถเขียน code ใน kernal sandbox ได้
โดยไม่ต้องไปแก้ไข code ใน kernel ของ Linux เลย
ทำให้นักพัฒนาสามารถเพิ่มความสามารถของ Linux ในช่วย runtime ได้เลย
รวมทั้งเรื่องของ Blockchain และ GraphQL federation ก็มาแล้วเช่นกัน