Fanboi Channel

มิตรสหายนักพัฒนาซอฟต์แวร์ท่านหนึ่ง

Last posted

Total of 364 posts

89 Nameless Fanboi Posted ID:hUku7/xmt6

วันนั้นในสมาคมโปรแกรมเมอร์ มีคนถามไว้ว่า ใน mvc เอา business logic ไว้ที่ไหนดี หลายคนตอบ model หลายคนตอบ controller
.
.
ส่วนผมไปตอบไว้สั้นๆว่า mvc มันไม่แคร์ว่า business logic มาจากไหน เพราะมันอยู่นอก scope ของปัญหาที่มันพยายามแก้
.
.
.
มีคนไปตีความว่า เอาไว้ตรงไหนก็ได้ ซึ่งก็ยิ่งออกประเด็นไปไกลใหญ่

สิ่งที่พยายามสื่อแต่ล้มเหลว คือ ถ้าโลกของคุณมีแค่ฆ้อนคุณจะเห็นทุกอย่างเป็นตะปูไปหมด เช่นเดียวกัน ถ้าโลกของคุณมีแค่ mvc คุณก็จะเห็นทุกอย่างเป็น mvc ไปหมดจนปิดกั้นจินตนาการอื่นๆ
.
.
pattern มันขอ scope ตัวเองเฉพาะเรื่องการแสดงผล คุณจะไปเอา data มาจากไหนก็ได้​ โยนให้ model มัน ที่เหลือมันจัดการให้

เราจะเอา logic ไปขียนไว้ใน hexagonal architecture ที่ pure มาก หรือจะเขียน logic ไว้ใน controller แบบไม่ต้องมี abstraction ใดๆ เลยก็ได้ หรือจะสร้าง rich domain model แล้วบอกว่า rich model นั่นแหละคือ presentation model เดียวกันใน mvc ก็แล้วแต่เลย
.
.
จะวาง architecture ยังไง มันขึ้นกับว่าคุณอยากสร้าง abstraction มากน้อยแค่ไหนเพื่อมาจัดการความซับซ้อนของ domain problem ของคุณเอง
.
.
.

อย่าเอา mvc เป็นตัวตั้ง แล้วหมุนตามมัน แต่ให้มันหมุนตามเรา ให้เราใช้มันเพราะเข้าใจ ไม่ใช่ให้มันมาใช้เราโดยเราไม่เข้าใจ

Be Civil — "Be curious, not judgemental"

  • FAQs — คำถามที่ถามบ่อย (การใช้บอร์ด การแบน ฯลฯ)
  • Policy — เกณฑ์การใช้งานเว็บไซต์
  • Guidelines — ข้อแนะนำในการใช้งานเว็บไซต์
  • Deletion Request — แจ้งลบและเกณฑ์การลบข้อความ
  • Law Enforcement — แจ้งขอ IP address

All contents are responsibility of its posters.