The Clean Architecture (1): Layer / Definition

The Clean Architecture (1): Layer / Definition

Tags
Published
Author
สรุปบทเรียนจากการตามอ่านเรื่อง The Clean Architecture

Layer

แนวคิด Clean Architecture มักจะถูกแยกออกมาเป็นส่วนๆ เราเรียกสิ่งนั้นว่า Layer
notion image
โดยที่แนวคิดการแบ่ง ส่วนประกอบต่างๆ ของ software มีมากมายหลายแนวคิด แต่โดยใจความสำคัญของมันคือการ แบ่งส่วนการพิจารณา ( separation of concern )
 
ในส่วนของแนวคิดที่ ถูกนำเสนอ โดย Uncle Bob จะแบ่งออกเป็น 4 Layer คือ
  1. Entities
  1. Use Cases
  1. Interface Adapters
  1. Frameworks and Drivers
 
ref: ,
 

Definition

ถือเป็นส่วนหนึ่งจากการถอดเนื้อหาจากวีดีโอ
ผมมีความรู้สึกว่า ส่วนหนึ่งของการทำ Clean Architecture คือการต้องเข้าใจว่าในแต่ละ Layer ของ Model นั้นๆ มีเบื้องหลังและความเข้าใจในการแบ่งว่าอย่างไร
ตัวอย่างเช่น MVC เราต้องทำความเข้าใจว่า ตัว M คืออะไร ทำหน้าที่อะไร มีขอบเขต หรือ ข้อกำหนดอะไร ทั้งตัว V และ C ก็เช่นกัน
จากนั้น เราเองก็ต้องบอกให้ได้ว่า Implementation ที่กำลังจะเขียนจะไปตกอยู่ใน ตัว M ตัว V หรือ ตัว C หรือ Layer ใดๆ หรือป่าว
notion image
Image ref
หรือ ถ้าเราจะเลือกที่จะหยิบ Model Hexagonal มาใช้ ก็ควรจะเข้าใจให้ได้ว่า แต่ละ Layer คืออะไร
แล้ว กำหนดว่า การทำงานของ Function แบบนี้จะตกภายใต้ Layer อะไร
 
จากภายใน VDO วิทยากรมีความเห็นว่า MVC ค่อนข้างให้นิยามกว้างเกินไป ในแต่ละตัวเช่น M ที่จะเป็นได้หลายอย่าง ซึ่งการกำหนดแบบนี้ อาจจะเป็นปัญหาได้ ( เสริม )
 
สรุป
  • เราจะต้องบ่งชี้ให้ได้ว่า Implementation ที่เขียนลงไป นั้นจะถูกกำหนดให้อยู่ Layer ใด
  • ซึ่ง Layer ที่ว่านั้นจะขึ้นอยู่ Model ที่เลือกใช้ เช่น Hexagonal , MVC หรือ อื่นๆ
  • ซึ่ง Layer ในแต่ละ Model ก็จะมี กำหนดและขอบเขตของมัน