ในการออกแบบ architecture ของระบบงานนั้น
มีรูปแบบต่าง ๆ มากมาย เช่น
- Monolith
- Layer-based
- Service-Oriented
- Microservices
- CQRS
- DDD
- Space-based
- Event-based
แต่ก็มีอีกหลายแบบที่เรียกว่า Anti-pattern architecture
ซึ่งผมมักจะเรียกว่า architecture ที่ไม่ดีแต่ได้รับความนิยม
ดังนั้นเรามาดูกันหน่อยว่า มีรีูปแบบไหนบ้าง
ที่่เรียกว่า Anti-pattern architecture
โดยที่เราความหลีกเลี่ยง หรือ ใช้งานอย่างระมัดระวัง !!
ยกตัวอย่างเช่น
- Cargo-Culting เป็นการ copy-and-paste ทั้ง process และ เครื่องมือต่าง ๆ มาให้โดยขาดความรู้และเข้าใจ คิดว่าดีจากที่อื่นแล้วจะดีกับเรา
- Domain Allergy ในใจแต่ architecture/technology ไม่สนใจ business problem
- Emotional Attachment ยืดติดกับ solution เดิม ๆ ที่เคย work ไม่กล้าที่จะลอง solution ใหม่ ๆ เกิดจากความกลัวล้วน ๆ
- Horizontalism แยกกันอย่างเดียว แต่ละทีมดูแลแต่ละส่วน !! คุ้น ๆ นะ
- Infrastructure Ignorance ไม่สนใจ environment ต่าง ๆ ไม่สนใจเรื่อง network latency ไม่สนใจเรื่อง hardway ไม่สนใจเรื่อง security ตั้งแต่เริ่ม ทำให้ปัญหาจะเกิดมาในช่วงท้าย ๆ ของการส่งมอบ
- Over-Engineering !! ยังมีอีกเพียบ ลองศึกษากันดู
ใน web ที่อธิบายของแต่ละหัวข้อจะประกอบไปด้วย
- อธิบายรายละเอียด
- ยดตัวอย่างของปัญหา
- เกิดขึ้นได้อย่างไร
- จะหลีกเลี่ยงกันอย่างไร
- คำแนะนำ
ลองนำไปใช้งานกันดูครับ
หวังว่าจะไม่ผิดซ้ำ ๆ กันนะครับ