มาดู มาดู Software Architecture and Design InfoQ Trends Report
ประจำเดือนเมษายน 2022 จาก InfoQ กันหน่อย
ว่ามีอะไรเปลี่ยนแปลงและน่าสนใจกันบ้าง ?
![](http://www.somkiat.cc/wp-content/uploads/2022/04/architecture-trend-1024x585.jpg)
สิ่งแรกที่น่าสนใจคือ 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 ได้เลย
![](http://www.somkiat.cc/wp-content/uploads/2022/04/overview-bf463455a5666fc3fb841b9240d588ff-1024x525.png)
รวมทั้งเรื่องของ Blockchain และ GraphQL federation ก็มาแล้วเช่นกัน