Banyak, banyak, bulan yang lalu, saya melakukan master saya di Rekayasa Perangkat Lunak Berorientasi Objek. Saya membahas semuanya: inisiasi proyek, persyaratan, analisis, desain, arsitektur, pengembangan, dll, dll. Buku IT favorit saya sepanjang masa adalah Mengembangkan Perangkat Lunak Berorientasi Objek, Pendekatan Berbasis Pengalaman (IBM-1996). Sebuah buku yang dibuat oleh sekelompok ahli sejati pada masanya. Ini menjelaskan pendekatan sentris produk kerja untuk analisis berorientasi objek, desain dan metode pengembangan.
Saya mendesain dan mengembangkan dan merasa bahagia dan berada di puncak permainan saya, tetapi saya mulai merasa sedikit ketinggalan zaman: Gerakan lincah menjadi mode saat itu dan merek-ulang beberapa pendekatan iteratif dan inkremental yang terkenal dengan kata-kata pinggul baru. Tiba-tiba pengembang yang tidak berpengalaman mulai mengerutkan kening ketika saya mengatakan "persyaratan" atau "arsitektur" seolah-olah hal-hal ini digantikan oleh sihir.
Desain dan pengembangan hilang itu menyenangkan dan saya akan meninggalkan seluruh industri TI di belakang saya.
Kemudian saya menemukan Scala. Oh, seperti hujan lembut di jalan berdebu. Segalanya menjadi jernih, udaranya menjadi manis lagi dan sedikit cahaya hard drive saya akan berkedip jauh ke dalam malam, dengan riang menemani saya di dunia penemuan saya.
Saya suka desain sistem. Saya seorang arsitek, lebih dari seorang programmer. Saya suka menganalisis, mendesain, berpikir, berdebat, meningkatkan - Saya suka desain yang sederhana, bersih dan segar.
Bagaimana kita merancang solusi Scala murni?
Tentunya diagram urutan konvensional, diagram interaksi, diagram objek, dll, semua bisa diganti atau ditingkatkan untuk kebaikan pencampuran imperatif dan fungsional sistem berorientasi objek. Tentunya ada celah untuk sesuatu yang sama sekali berbeda!
Saya tidak mencari kerumitan yang membengkak - Saya mencari kesederhanaan yang fleksibel. Mirip seperti Scala sebenarnya sederhana dan mudah (walaupun berbeda), tetapi dapat diperpanjang sesuai kebutuhan Anda seperti sepasang celana Yoga. Harus ada sistem desain untuk bahasa yang indah ini yang akan mulai sederhana, dan dapat diperluas agar sesuai dengan kebutuhan Anda dan domain Anda. Tentunya UML tidak bisa seperti itu!
Jadi bagaimana kita merancang sistem Scala murni? Bayangkan sejenak, Anda memiliki kemewahan untuk merancang sistem yang lengkap dari awal, dan tahu bahwa Anda hanya akan menggunakan Scala - Bagaimana model Anda terlihat? Apa jenis diagram yang harus Anda uraikan tentang struktur dan perilaku? Bagaimana Anda memodelkan Opsi, korek api, mixin, Object tunggal, dll. Tanpa ditarik ke dalam kerumitan dalam memperluas teknik pemodelan yang ada alih-alih alat-alat yang segar, ringan, dan inovatif.
Apakah ada desain / proses / solusi semacam itu , atau sudah saatnya menciptakannya?