ในขณะที่ฉันไม่เคยส่งมอบอะไรเลยโดยใช้ Smalltalk เวลาสั้น ๆ ที่ฉันเล่นด้วยมันทิ้งร่องรอยไว้ วิธีเดียวที่จะอธิบายประสบการณ์คือ MVC ตามที่ตั้งใจไว้ โดยพื้นฐานแล้วการยกของหนักทั้งหมดสำหรับแอปพลิเคชันของคุณจะทำในออบเจ็กต์ทางธุรกิจ (หรือแบบจำลองโดเมนหากคุณมีแนวโน้มมาก) การควบคุมมาตรฐานถูกผูกไว้กับวัตถุทางธุรกิจในบางวิธี ตัวอย่างเช่นกล่องข้อความถูกแมปไปยังเขตข้อมูลของวัตถุ (เขตข้อมูลนั้นเป็นวัตถุเพื่อให้ง่ายต่อการทำ) ปุ่มจะแมปกับวิธีการ ทั้งหมดนี้ทำด้วย API ที่เรียบง่ายและเป็นธรรมชาติ เราไม่ต้องคิดเกี่ยวกับวัตถุที่มีผลผูกพัน ฯลฯ มันใช้งานได้
แต่ในภาษาและ APIs ที่ใหม่กว่านั้นคุณจะถูกบังคับให้คิดจากภายนอกสิ่งแรกคือ C ++ และ MFC และขณะนี้มี C # และ WPF แล้ว Microsoft ได้รับโลกของนักพัฒนาติดอยู่ใน GUI builders ซึ่งคุณสร้างแอปพลิเคชันของคุณ . การพัฒนา Java Swing นั้นไม่แตกต่างกันเพียงคุณเท่านั้นที่เขียนโค้ดเพื่อสร้างอินสแตนซ์ของการควบคุมในแบบฟอร์มด้วยตัวคุณเอง สำหรับบางโครงการอาจไม่เคยมีรูปแบบโดเมนเลยแม้แต่แค่ตัวจัดการเหตุการณ์ ฉันอยู่ในและรอบ ๆ โมเดลนี้สำหรับผู้ดูแลส่วนใหญ่ของฉัน
แต่ละวิธีบังคับให้คุณคิดต่างกัน ด้วยวิธีการ Smalltalk โดเมนของคุณจะฉลาดในขณะที่ GUI ของคุณเป็นใบ้ ด้วยวิธีการเริ่มต้นของ VisualStudio GUI ของคุณจะฉลาดในขณะที่รูปแบบโดเมนของคุณ (ถ้ามี) ค่อนข้างจะเป็นโลหิตจาง
นักพัฒนาหลายคนที่ฉันทำงานด้วยเห็นคุณค่าในแนวทางของ Smalltalk และพยายามใช้วิธีการดังกล่าวในสภาพแวดล้อมของ VisualStudio WPF มีคุณสมบัติการเชื่อมโยงแบบไดนามิกบางอย่างที่ทำให้เป็นไปได้ แต่มีข้อ จำกัด รหัสบางอย่างที่อยู่ในรูปแบบโดเมนจะสิ้นสุดลงในคลาส GUI
ดังนั้นคุณออกแบบ / พัฒนารหัสของคุณด้วยวิธีใด ทำไม?
- GUI ก่อน การโต้ตอบกับผู้ใช้เป็นสิ่งสำคัญยิ่ง
- โดเมนก่อน ฉันต้องแน่ใจว่าระบบนั้นถูกต้องก่อนที่เราจะใส่ UI ลงไป
มีข้อดีและข้อเสียสำหรับวิธีการอย่างใดอย่างหนึ่ง รูปแบบโดเมนเหมาะสมกับที่นั่นด้วยมหาวิหารคริสตัลและพายในท้องฟ้า GUI พอดีกับที่นั่นด้วยความรวดเร็วและสกปรก (บางครั้งก็สกปรกจริงๆ)
และสำหรับโบนัสเพิ่มเติม: คุณแน่ใจได้อย่างไรว่ารหัสนั้นสามารถคงไว้ได้?