สรุป
การทำสิ่งเหล่านี้อำนวยความสะดวกอะไรบ้าง
ภาษา GO นั้นเนื่องจากอิสระของภาษาที่สามารถวางแบบไหนได้ การเขียน code โดยไม่มี pattern จะส่งผลทำให้ "debug" ได้ยากขึ้นเช่นเดียวกัน
การใช้ Architecture เหล่านี้จะช่วยทำสิ่งที่เรียกว่า " Separation of Concerns" คือแยกจุดประสงค์ของ Module แต่ละส่วนออกจากกัน
- Hexagonal Architecture เป็นการแยกส่วนระหว่าง core logic จาก external system อย่าง Ports, Adapter
- Clean Architecture เป็นการแยกส่วนระหว่าง layer แต่ละส่วนให้มีหน้าที่แต่ละอย่างออกจากกันชัดเจน
รวมถึงสิ่งเหล่านี้จะส่งผลทำให้การเขียน Test สามารถทำได้ง่ายด้วย เนื่องจาก Module มีการแยกส่วนออกจากกัน เวลา Test ก็จะเป็นการ Test ในแต่ละมุมมองออกจากกันได้ (เดี๋ยวเราจะเพิ่มเติมอีกทีในหัวข้อ Unit Test กัน)