Molte, molte lune fa, ho fatto i miei master in ingegneria del software orientata agli oggetti. Ho trattato di tutto: avvio del progetto, requisiti, analisi, progettazione, architettura, sviluppo, ecc. Ecc. Il mio libro IT preferito di tutti i tempi era lo sviluppo di software orientato agli oggetti, un approccio basato sull'esperienza (IBM-1996). Un libro creato da un gruppo di veri esperti del loro tempo. Descrive un approccio incentrato sul prodotto di lavoro all'analisi orientata agli oggetti, ai metodi di progettazione e sviluppo.
Ho progettato e sviluppato ed ero felice e al top del mio gioco, ma ho iniziato a sentirmi un po 'datato: i movimenti agili sono diventati la moda del giorno e hanno marchiato alcuni noti approcci iterativi e incrementali con nuove parole alla moda. Gli sviluppatori improvvisamente inesperti hanno iniziato ad aggrottare le sopracciglia quando ho detto "requisiti" o "architettura" come se queste cose fossero sostituite dalla magia.
Il design e lo sviluppo hanno perso il divertimento e stavo per lasciarmi alle spalle l'intero settore IT.
Poi ho scoperto Scala. Oh, come una leggera pioggia su una strada polverosa. Tutto è appena diventato chiaro, l'aria è tornata ad essere dolce e la poca luce del mio disco fisso si sarebbe illuminata in profondità nella notte, facendomi allegramente compagnia nel mio mondo di scoperte.
Mi piace la progettazione di sistemi. Sono un architetto nel cuore, più che un programmatore. Adoro analizzare, progettare, pensare, discutere, migliorare: adoro i disegni semplici, puliti e nitidi.
Come progettiamo soluzioni Scala pure?
Sicuramente i diagrammi di sequenza convenzionali, i diagrammi di interazione, i diagrammi di oggetti, ecc., Potrebbero tutti essere sostituiti o migliorati per la bontà di fondere sistemi imperativi e orientati agli oggetti funzionali. Sicuramente c'è un'apertura per qualcosa di totalmente diverso!
Non cerco complessità gonfia, cerco semplicità flessibile. Proprio come Scala è in realtà semplice e facile (anche se diverso), ma può essere esteso per adattarsi alle tue esigenze come un paio di pantaloni Yoga. Ci deve essere un sistema di progettazione per questo adorabile linguaggio che inizierà in modo semplice e che possa essere esteso alle tue esigenze e al tuo dominio. Sicuramente UML non può essere!
Quindi, come progettiamo sistemi Scala puri? Immagina per un momento, hai il lusso di progettare da zero un sistema completo e sai che utilizzerai solo Scala - Come appariranno i tuoi modelli? Quali tipi di diagrammi dovresti descrivere la struttura e il comportamento? Come modelleresti le opzioni, le partite, i mixin, gli oggetti singleton, ecc. Senza essere attirato dalla complessità dell'estensione delle tecniche di modellazione esistenti piuttosto che da un set di strumenti fresco, leggero e innovativo.
Esiste un tale progetto / processo / soluzione o è il momento di inventarne uno?