ในการออกแบบ 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 ที่อธิบายของแต่ละหัวข้อจะประกอบไปด้วย

  • อธิบายรายละเอียด
  • ยดตัวอย่างของปัญหา
  • เกิดขึ้นได้อย่างไร
  • จะหลีกเลี่ยงกันอย่างไร
  • คำแนะนำ

ลองนำไปใช้งานกันดูครับ
หวังว่าจะไม่ผิดซ้ำ ๆ กันนะครับ