สรุปบทเรียนจากการตามอ่านเรื่อง The Clean Architecture
Layer
แนวคิด Clean Architecture มักจะถูกแยกออกมาเป็นส่วนๆ เราเรียกสิ่งนั้นว่า Layer
โดยที่แนวคิดการแบ่ง ส่วนประกอบต่างๆ ของ software มีมากมายหลายแนวคิด แต่โดยใจความสำคัญของมันคือการ แบ่งส่วนการพิจารณา ( separation of concern )
ในส่วนของแนวคิดที่ ถูกนำเสนอ โดย Uncle Bob จะแบ่งออกเป็น 4 Layer คือ
- Entities
- Use Cases
- Interface Adapters
- Frameworks and Drivers
ref: ‣, ‣
Definition
ถือเป็นส่วนหนึ่งจากการถอดเนื้อหาจากวีดีโอ
‣
ผมมีความรู้สึกว่า ส่วนหนึ่งของการทำ Clean Architecture คือการต้องเข้าใจว่าในแต่ละ Layer ของ Model นั้นๆ มีเบื้องหลังและความเข้าใจในการแบ่งว่าอย่างไร
ตัวอย่างเช่น MVC เราต้องทำความเข้าใจว่า ตัว M คืออะไร ทำหน้าที่อะไร มีขอบเขต หรือ ข้อกำหนดอะไร ทั้งตัว V และ C ก็เช่นกัน
จากนั้น เราเองก็ต้องบอกให้ได้ว่า Implementation ที่กำลังจะเขียนจะไปตกอยู่ใน ตัว M ตัว V หรือ ตัว C หรือ Layer ใดๆ หรือป่าว
Image ref ‣
หรือ ถ้าเราจะเลือกที่จะหยิบ Model Hexagonal มาใช้ ก็ควรจะเข้าใจให้ได้ว่า แต่ละ Layer คืออะไร
แล้ว กำหนดว่า การทำงานของ Function แบบนี้จะตกภายใต้ Layer อะไร
จากภายใน VDO วิทยากรมีความเห็นว่า MVC ค่อนข้างให้นิยามกว้างเกินไป ในแต่ละตัวเช่น M ที่จะเป็นได้หลายอย่าง ซึ่งการกำหนดแบบนี้ อาจจะเป็นปัญหาได้ ( เสริม )
สรุป
- เราจะต้องบ่งชี้ให้ได้ว่า Implementation ที่เขียนลงไป นั้นจะถูกกำหนดให้อยู่ Layer ใด
- ซึ่ง Layer ที่ว่านั้นจะขึ้นอยู่ Model ที่เลือกใช้ เช่น Hexagonal , MVC หรือ อื่นๆ
- ซึ่ง Layer ในแต่ละ Model ก็จะมี กำหนดและขอบเขตของมัน