Il y a beaucoup de lunes, j'ai effectué ma maîtrise en génie logiciel orienté objet. Je couvrais tout: initiation du projet, exigences, analyse, conception, architecture, développement, etc. Mon livre informatique préféré de tous les temps était Développer des logiciels orientés objet, une approche basée sur l'expérience (IBM-1996). Un livre créé par un groupe de vrais experts de leur temps. Il décrit une approche centrée sur le produit du travail pour les méthodes d'analyse, de conception et de développement orientées objet.
J'ai conçu et développé et étais heureux et au sommet de mon jeu, mais je commençais à me sentir un peu vieillot: les mouvements agiles sont devenus la mode du jour et remodèlent certaines approches itératives et incrémentales bien connues avec de nouveaux mots branchés. Soudain, des développeurs inexpérimentés ont commencé à froncer les sourcils quand j'ai dit «exigences» ou «architecture» comme si ces choses étaient remplacées par de la magie.
La conception et le développement ont perdu de leur intérêt et j'étais sur le point de laisser toute l'industrie informatique derrière moi.
Puis j'ai découvert Scala. Oh, comme une pluie battante sur une route poussiéreuse. Tout devenait clair, l'air redevenait doux et la petite lumière de mon disque dur s'éteignait au plus profond de la nuit, me tenant joyeusement compagnie dans mon monde de découvertes.
J'aime la conception du système. Je suis un architecte dans l'âme, plus qu'un programmeur. J'aime analyser, concevoir, penser, discuter, améliorer - j'adore les dessins simples, nets et nets.
Comment concevons-nous des solutions Scala pures?
Certes, les diagrammes de séquence, les diagrammes d’interaction, les diagrammes d’objets, etc. conventionnels pourraient tous être remplacés ou améliorés pour rendre plus sains les systèmes de fusion des systèmes impératifs et fonctionnels. Il y a sûrement une ouverture pour quelque chose de totalement différent!
Je ne recherche pas une complexité exagérée - je recherche une simplicité flexible. Tout comme Scala, c’est en fait simple et facile (bien que différent), mais il peut être étendu selon vos besoins, comme un pantalon de yoga. Il doit exister un système de conception pour ce beau langage qui débutera facilement et pourra être étendu pour répondre à vos besoins et à votre domaine. UML ne peut sûrement pas en être ainsi!
Alors, comment concevons-nous des systèmes Scala purs? Imaginez un instant que vous avez le luxe de concevoir un système complet à partir de zéro et que vous n’utiliserez que Scala - À quoi ressembleront vos modèles? Quels types de diagrammes faudrait-il pour décrire la structure et le comportement? Comment modéliseriez-vous les options, correspondances, combinaisons, objets singleton, etc. sans vous laisser entraîner par la complexité d'extension des techniques de modélisation existantes plutôt que par un ensemble d'outils innovants, légers et légers?
Une telle conception, un processus ou une solution existe -t-il ou est-il temps d'en inventer un?