เพิ่งไปเรียน course Domain-Driven Design (DDD) มา
มีเรื่องหนึ่งที่น่าสนใจจาก course คือ
Architecture and Design InfoQ Trends Report ประจำเดือนมากราคม 2019
ซึ่งแบ่งกลุ่มตาม Diffusion of innovations แสดงดังรูป
แบ่งออกเป็น 4 กลุ่มคือ
- Innovators คือกลุ่มชอบลองของใหม่ ๆ ที่ยังไม่มีใครใช้ จะไม่กลัวกับปัญหาที่จะต้องเจอ
- Early Adopters คือกลุ่มที่เปิดรับสิ่งใหม่ ๆ ได้เร็ว มองเห็นประโยชน์จากเทคโนโลยีต่าง ๆ
- Early Majority คือกลุ่มที่เข้ามายังกระแสหลักกลุ่มแรก มีตัวอย่างที่ประสบความสำเร็จให้เห็นแล้ว
- Late Majority คือกลุ่มที่เข้ามายังกระแสหลักทีหลังเพื่อไม่ให้ตกยุค
มาดูกันว่าแต่ละกลุ่มมีอะไรบ้าง
เริ่มจากกลุ่มที่ 4 Late Majority
ประกอบไปด้วย
- Microservices
- Domain-Driven Design (DDD)
- Behaviour-Driven Design (BDD)
- Test-Driven Design (TDD)
- REST
หมายความว่าในกลุ่มนี้เป็นกระแสหลักไปแล้ว
ใครไม่รู้จักน่าจะเริ่มมีปัญหา หรือ คุยกับคนอื่น ๆ ไม่รู้เรื่อง
ปล. มี TDD และ BDD ด้วย หมายความว่าต้องเริ่มจากการคิดว่าจะทำอะไร
ทดสอบหรือใช้งานกันอย่างไร
ดังนั้นวันนี้เราเริ่มทำกันหรือยังนะ
หรือยังพยายามทำให้มันเสร็จ ๆ ให้เยอะที่สุดเป็นพอ
กลุ่มที่ 3 Early Majority
ในกลุ่มนี้ประกอบไปด้วย
- Event-Driven Architecture และ Event Sourcing
- Eventual Consistency
ซึ่งไม่น่าแปลกใจมากนัก
เพราะว่ามีความเกี่ยวข้องกับกลุ่มที่ 4 อย่างมาก
จะเน้นไปที่โลกของ distributed มากขึ้น
กลุ่มที่ 2 Early Adopters
เป็นส่วนที่น่าสนใจ เพราะว่ามีหลาย ๆ เรื่องที่มักจะได้ยินกันบ่อยมากขึ้น
แต่อาจจะยังไม่ได้รับความนิยมมากนัก
- GraphQL
- Reactive Programming
- Functional Programming
- CQRS
- Serverless
- Evolutionary Architecture
- Architect as Technical Leader
- Correctly designing distributed system
กลุ่มที่ 1 Innovators
เป็นกลุ่มที่ลองของใหม่ ๆ เช่น
- Blockchain
- Service Mesh
- HTTP 3
ซึ่งแตกต่างจากแนวโน้มในปี 2018 ดังรูป
สิ่งที่เราต้องคิดคือ
จากแนวโน้มเหล่านี้ เราได้เรียนรู้อะไรบ้าง ?