Flup มุ่งหน้าไปในทิศทางที่ถูกต้อง "หลักการความรับผิดชอบเดี่ยว" เดิมใช้กับขั้นตอน ตัวอย่างเช่น Dennis Ritchie จะบอกว่าฟังก์ชั่นควรทำสิ่งหนึ่งและทำได้ดี จากนั้นใน C ++ Bjarne Stroustrup จะบอกว่าคลาสควรทำสิ่งหนึ่งและทำได้ดี
โปรดสังเกตว่าทั้งสองอย่างเป็นทางการมีกฎเล็กน้อยหรือไม่มีอะไรเกี่ยวข้องกัน พวกเขาตอบสนองเฉพาะสิ่งที่สะดวกในการแสดงในภาษาการเขียนโปรแกรม นั่นคือสิ่งที่ แต่มันค่อนข้างแตกต่างจากที่ flup กำลังขับอยู่
การใช้งานที่ทันสมัย (เช่น agile และ DDD) มุ่งเน้นไปที่สิ่งที่สำคัญต่อธุรกิจมากกว่าสิ่งที่ภาษาโปรแกรมสามารถแสดงได้ ส่วนที่น่าแปลกใจก็คือภาษาการเขียนโปรแกรมยังไม่ทันตั้งตัว ภาษาที่มีลักษณะคล้ายภาษาฟอร์แทรนเก่ามีหน้าที่รับผิดชอบที่สอดคล้องกับโมเดลแนวคิดหลักของเวลา: กระบวนการที่ใช้กับการ์ดแต่ละใบขณะที่มันผ่านเครื่องอ่านบัตรหรือ (ใน C) การประมวลผลที่มาพร้อมกับการขัดจังหวะแต่ละครั้ง จากนั้นภาษา ADT ซึ่งครบกำหนดจนถึงจุดที่จะจับภาพสิ่งที่ผู้คนใน DDD จะประดิษฐ์ขึ้นใหม่ในภายหลังว่ามีความสำคัญ (แม้ว่าจิมเพื่อนบ้านจะได้คิดเรื่องนี้เผยแพร่และใช้งานในปี 1968): วันนี้เราเรียกชั้นเรียน . (ไม่ใช่โมดูล)
ขั้นตอนนี้เป็นวิวัฒนาการน้อยกว่าการแกว่งของลูกตุ้ม ในขณะที่ลูกตุ้มเหวี่ยงไปยังข้อมูลเราสูญเสียการใช้แบบจำลองกรณีการใช้ใน FORTRAN ไม่เป็นไรเมื่อโฟกัสหลักของคุณเกี่ยวข้องกับข้อมูลหรือรูปร่างบนหน้าจอ มันเป็นรุ่นที่ยอดเยี่ยมสำหรับโปรแกรมอย่าง PowerPoint หรืออย่างน้อยก็สำหรับการทำงานที่เรียบง่าย
สิ่งที่ได้หายไปเป็นความรับผิดชอบของระบบ เราไม่ขายองค์ประกอบของ DDD และเราไม่ได้เรียนวิธีการที่ดี เราขายความรับผิดชอบของระบบ ในบางระดับคุณต้องออกแบบระบบของคุณโดยใช้หลักการความรับผิดชอบเดียว
ดังนั้นถ้าคุณดูคนอย่าง Rebecca Wirfs-Brock หรือฉันที่เคยพูดถึงวิธีการเรียนเรากำลังพูดถึงกรณีการใช้งาน นั่นคือสิ่งที่เราขาย สิ่งเหล่านี้คือการทำงานของระบบ กรณีใช้ควรมีความรับผิดชอบเดียว กรณีการใช้งานไม่ค่อยเป็นหน่วยงานสถาปัตยกรรม แต่ทุกคนพยายามแกล้งทำเป็น ยกตัวอย่างพยานคน SOA
นี่คือเหตุผลที่ฉันตื่นเต้นกับสถาปัตยกรรม DCI ของ Trygve Reenskaug ซึ่งเป็นสิ่งที่อธิบายไว้ในหนังสือ Lean Architecture ด้านบน ในที่สุดมันก็ให้สัดส่วนที่แท้จริงกับสิ่งที่เคยเป็นการสอดแนมตามอำเภอใจและลึกลับเพื่อ "ความรับผิดชอบเดียว" - ตามที่พบในการโต้แย้งส่วนใหญ่ข้างต้น สัดส่วนนั้นเกี่ยวข้องกับแบบจำลองทางจิตของมนุษย์: ผู้ใช้ปลายทางก่อนและโปรแกรมเมอร์ที่สอง เกี่ยวข้องกับข้อกังวลทางธุรกิจ และเกือบจะเป็นเหตุการณ์ที่เกิดขึ้นมันสรุปการเปลี่ยนแปลงเมื่อเปลวไฟท้าเรา
หลักการความรับผิดชอบเดียวที่เรารู้ว่าเป็นไดโนเสาร์ที่หลงเหลือมาตั้งแต่สมัยกำเนิดหรือม้างานอดิเรกที่เราใช้แทนความเข้าใจ คุณต้องทิ้งม้างานอดิเรกเหล่านี้ไว้สองสามตัวเพื่อทำซอฟต์แวร์ที่ยอดเยี่ยม และนั่นต้องใช้ความคิดนอกกรอบ การทำให้สิ่งต่าง ๆ ง่ายและเข้าใจง่ายจะทำงานก็ต่อเมื่อปัญหานั้นง่ายและเข้าใจง่าย ฉันไม่สนใจวิธีแก้ไขปัญหาเหล่านี้มากนัก: พวกเขาไม่ได้เป็นแบบอย่างและไม่ใช่ที่ที่ความท้าทายอยู่