รีวิวคลาส Domain Driven Design แบบ รูฟๆ

รีวิวคลาส Domain Driven Design แบบ รูฟๆ

ขอรีวิวคลาส "Domain Driven Design แบบรูฟๆ" หน่อยนะครับ เป็นการขอบคุณที่พี่รูฟ Twin Panitsombat มอบดาบให้ไปสู้กับไฮดรา (หรือไปสร้างไฮดราตัวใหม่นะ)

"คนที่มาเรียนถ้าไม่มาเรียนเพื่อแสวงหาความรู้ ก็มาเรียนรู้เพื่ออธิบายสิ่งที่ตัวเองทำเป็นธรรมชาติอยู่แล้ว"

ผมเริ่มค้นพบอย่างนึงว่า ผมชอบฟังเรื่องราวที่คนทำ Software ในยุคก่อนผมเข้าวงการ เค้าเจออะไร แล้วแก้ปัญหาอะไรมาก มันเหมือนกับการที่เราพยายามกลับไปทำความเข้าใจรากของปัญหาว่า ก่อนจะมาถึงทุกวันนี้ วงการนี้มันผ่านอะไรมาบ้าง แล้วภาพที่พี่รูฟ เล่าตั้งแต่ Software Crisis มันเหมือน Connect the dot ที่ผมรู้มาตลอดชีวิตเข้าด้วยกันตั้งแต่ XP, Scrum และ Kanban และช่องว่างตรงกลางที่ผมรู้สึกมาซักพักใหญ่มาก แต่ไม่รู้ว่ามันคืออะไร จนมาได้คำตอบว่ามันคือ Domain Driven Design ครับ

คลาสนี้รู้สึกว่าได้เครื่องมือมาหลากหลายมาก ที่บอก How ในการทำ Architecture design ที่ตลอดชีวิตมา เริ่มด้วย Data model ก่อนเสมอ ตั้งแต่การ define space อย่าง Problem space กับ Solution space ซึ่ง ตอนจังหวะนี้ประสบการณ์ Scrum มาตลอดชีวิตภาพมันกลับมาทั้ง Sprint Planning, Refinement แต่ที่ surprise ตัวเองมากคือภาพตอนเรียน Category Theory ไม่กี่สัปดาห์ก่อนมันกลับมาด้วย และมันกลับมาบ่อยมากๆ ตลอดเวลาที่เหลือของ class DDD วันนี้ทั้งภาพ Domain, Co Domain, Functor, Object, Morphism, Category of Type ตอนทำ Workshop ทำ Context Mapping และหา Event Sourcing กับ CQRS และอื่นๆ อีกหลายจุดครับ เรียกได้ว่าหลอกหลอนมาก 555

ซึ่งทั้งหลายทั้งมวลที่เรียนวันนี้ ส่วนตัวเข้าใจว่า พยายามตอบโจทย์ที่จะทำยังไงก็ได้ให้ Architecture ของเรามัน Emergent design ได้ต่อๆ ไปด้วย แต่สิ่งที่ผมได้มามากที่สุดน่าจะเป็นการดึง Domain Knowledge ออกมาจาก Expert (ซึ่งไม่ใช่เราชาว Software Engineer แน่ๆ) แต่เป็นคนที่อยู่หน้างานตรงนั้น และสร้าง Software ที่มันสะท้อนกับสิ่งที่ลูกค้าเป็นมากที่สุด โดยการมอบตัวเลือกต่างๆ ให้เค้าตัดสินใจ และตอบคำถามสำคัญมากคือ "ทำอะไรก่อน" และ "เรามีบุญพอจะทำไหวมั้ย"

สุดท้ายต้องบอกว่า ถึงแม้ผมจะพยายามศึกษาเรื่องนี้เองรวมถึงมี Blue book ไว้บูชาที่ห้องมามาหลายปี ก็ต้องบอกว่า ของบางอย่าง มันต้องรู้ในเวลาที่ใช่จริงๆ เราถึงจะเข้าใจคุณค่าของมันครับ ต้องกราบขอบคุณพี่รูฟอีกครั้งที่เปิดคลาสนี้ให้เรียน หวังว่าซักวันคงจะมีโอกาสได้เรียนครึ่งหลังของคลาสนี้จริงๆ 🙏