ดวงจันทร์จำนวนมากหลายครั้งแล้วที่ฉันทำปริญญาโทของฉันในวิศวกรรมซอฟต์แวร์เชิงวัตถุ ฉันครอบคลุมทุกอย่าง: การเริ่มต้นโครงการ, ความต้องการ, การวิเคราะห์, ออกแบบ, สถาปัตยกรรม, การพัฒนา, ฯลฯ หนังสือเล่มโปรดของฉันตลอดเวลาคือการพัฒนาซอฟต์แวร์เชิงวัตถุ, แนวทางประสบการณ์ (IBM-1996) หนังสือที่สร้างขึ้นโดยกลุ่มผู้เชี่ยวชาญที่แท้จริงของเวลาของพวกเขา มันอธิบายวิธีการทำงานของผลิตภัณฑ์เป็นศูนย์กลางเพื่อการวิเคราะห์เชิงวัตถุการออกแบบและการพัฒนา
ฉันออกแบบและพัฒนาและมีความสุขและเป็นจุดเริ่มต้นของเกมของฉัน แต่ฉันเริ่มรู้สึกล้าสมัยไปแล้ว: การเคลื่อนไหวแบบ Agile กลายเป็นแฟชั่นในวันนั้น ทันใดนั้นผู้พัฒนาที่ไม่มีประสบการณ์ก็เริ่มพูดพล่ามเมื่อฉันพูดว่า "ข้อกำหนด" หรือ "สถาปัตยกรรม" ราวกับว่าสิ่งเหล่านี้ถูกแทนที่ด้วยเวทมนตร์
การออกแบบและการพัฒนาสูญเสียไปอย่างสนุกและฉันกำลังจะออกจากอุตสาหกรรมไอทีทั้งหมดไปกับฉัน
จากนั้นฉันก็ค้นพบสกาล่า โอ้เหมือนฝนนุ่ม ๆ บนถนนที่เต็มไปด้วยฝุ่น ทุกอย่างเพิ่งชัดเจนอากาศก็หวานอีกครั้งและแสงเล็ก ๆ ของฮาร์ดไดรฟ์ของฉันจะสั่นไหวลึกลงไปในยามค่ำคืนทำให้ฉันเป็นเพื่อนกันในโลกแห่งการค้นพบ
ฉันชอบการออกแบบระบบ ฉันเป็นสถาปนิกที่สำคัญมากกว่าโปรแกรมเมอร์ ฉันรักการวิเคราะห์การออกแบบการคิดการโต้เถียงการปรับปรุง - ฉันรักการออกแบบที่เรียบง่ายสะอาดและกรอบ
เราจะออกแบบโซลูชัน Scala บริสุทธิ์ได้อย่างไร
ไดอะแกรมลำดับทั่วไปไดอะแกรมปฏิสัมพันธ์ไดอะแกรมวัตถุ ฯลฯ ทั้งหมดอาจถูกแทนที่หรือปรับปรุงเพื่อความดีของการผสมความจำเป็นและการทำงานของระบบที่มุ่งเน้นวัตถุ แน่นอนว่ามีบางสิ่งที่แตกต่างออกไปโดยสิ้นเชิง!
ฉันไม่ได้มองหาความซับซ้อนป่อง - ฉันกำลังมองหาความเรียบง่ายที่มีความยืดหยุ่น เช่น Scala นั้นง่ายและง่าย (แม้ว่าจะแตกต่างกัน) แต่สามารถขยายให้เหมาะกับความต้องการของคุณได้เช่นกางเกงโยคะ จะต้องมีระบบการออกแบบสำหรับภาษาที่น่ารักนี้ที่จะเริ่มง่ายและสามารถขยายให้พอดีกับความต้องการและโดเมนของคุณ แน่นอน UML ไม่สามารถเป็นได้!
ดังนั้นเราจะออกแบบระบบสกาล่าบริสุทธิ์ได้อย่างไร ลองนึกภาพสักครู่คุณมีความหรูหราในการออกแบบระบบที่สมบูรณ์ตั้งแต่เริ่มต้นและรู้ว่าคุณจะใช้ Scala - รุ่นของคุณจะมีลักษณะอย่างไร ไดอะแกรมชนิดใดที่คุณต้องอธิบายโครงสร้างและพฤติกรรม คุณจะจำลองแบบตัวเลือกการจับคู่มิกซ์อินวัตถุเดี่ยว ฯลฯ โดยไม่ต้องคำนึงถึงความซับซ้อนของการขยายเทคนิคการสร้างแบบจำลองที่มีอยู่แทนที่จะเป็นชุดเครื่องมือนวัตกรรมที่มีน้ำหนักเบาและสดใหม่
ไม่ออกแบบเช่น / กระบวนการ / วิธีการแก้ปัญหาที่มีอยู่หรือว่ามันเป็นเวลาที่จะคิดค้นหรือไม่