Çok, çok, bir ay önce, ustalarımı Nesne Yönelimli Yazılım Mühendisliğinde yaptım. Her şeyi ele aldım: proje başlatma, gereksinimler, analiz, tasarım, mimari, geliştirme, vb. Tüm zamanların en sevdiğim BT kitabı, Tecrübeye Dayalı Bir Yaklaşım (IBM-1996) olan Nesneye Yönelik Yazılım Geliştirme idi. Zamanlarının gerçek uzmanlarından oluşan bir grup tarafından yaratılmış bir kitap. Nesneye yönelik analiz, tasarım ve geliştirme yöntemlerine iş ürünü merkezli yaklaşımı açıklar.
Oyun tasarladım, geliştirdim, mutlu oldum ve oyunumun başındaydı ama biraz tarihli hissetmeye başladım: Çevik hareketler günün modası haline geldi ve bazı iyi bilinen yinelemeli ve artımlı yaklaşımları yeni kalça sözcükleriyle yeniden markalaştırdı. Aniden deneyimsiz geliştiriciler, sanki sihir tarafından değiştirilmiş gibi "gereksinimler" veya "mimarlık" dediğimde kaşlarını çatmaya başladı.
Tasarım ve geliştirme eğlenceli geçti ve BT endüstrisini geride bırakmak üzereydim.
Sonra Scala'yı keşfettim. Oh, tozlu bir yoldaki yumuşak yağmur gibi. Her şey netleşti, hava tekrar tatlı oldu ve sabit diskimin küçük ışığı gecenin derinliklerinde titreyerek beni keşif dünyamda koruyacaktı.
Sistem tasarımını severim. Ben bir programcıdan çok, kalbindeki mimarım. Analiz etmeyi, tasarlamayı, düşünmeyi, tartışmayı, gelişmeyi seviyorum. Sadece basit, temiz ve net tasarımları severim.
Saf Scala çözümlerini nasıl tasarlarız?
Elbette konvansiyonel dizi diyagramları, etkileşim diyagramları, nesne diyagramları, vs., zorunlu ve işlevsel nesne yönelimli sistemleri harmanlamanın iyiliği için değiştirilebilir veya geliştirilebilir. Elbette bambaşka bir şeyin açılışı var!
Ben şişkinlik karmaşıklığı aramıyorum - Esnek basitlik arıyorum. Scala'ya benzeyen aslında basit ve kolaydır (farklı olsa da), ancak bir çift Yoga pantolonu gibi gereksinimlerinize uyacak şekilde genişletilebilir. Bu sevimli dil için basit başlayacak ve gereksinimlerinize ve etki alanınıza uyacak şekilde genişletilebilecek bir tasarım sistemi olmalıdır. Elbette UML olamaz!
Peki saf Scala sistemlerini nasıl tasarlarız? Bir an için, sıfırdan komple bir sistem tasarlama lüksüne sahip olduğunuzu ve yalnızca Scala kullanacağınızı biliyorsunuz - Modelleriniz nasıl görünecek? Yapı ve davranışı tanımlamak için ne tür diyagramlar gerekir? Yeni, hafif, yenilikçi bir araç seti yerine mevcut modelleme tekniklerini genişletmenin karmaşıklığına dahil olmadan Seçenekler, eşleşmeler, karışımlar, tekil Nesneler, vb. Nasıl modellenir?
Böyle bir tasarım / süreç / çözüm var mı , yoksa bunu icat etme zamanı mı?