很多很多月以前,我做过面向对象软件工程的硕士。我涵盖了所有内容:项目启动,需求,分析,设计,体系结构,开发等,等等。我一直以来最喜欢的IT书籍是《开发面向对象的软件》,这是一种基于经验的方法(IBM-1996)。由一群当时的真正专家创作的书。它描述了以工作产品为中心的方法来进行面向对象的分析,设计和开发方法。
我设计和开发游戏时感到很开心,并在游戏中处于顶峰,但我开始感到有些过时:敏捷运动已成为当今的时尚,并用新的时髦词重新命名了一些众所周知的迭代和增量方法。当我说“需求”或“架构”时,经验不足的开发人员开始皱眉,好像这些东西已被魔术所取代。
设计和开发失去了乐趣,我将把整个IT行业抛在身后。
然后我发现了Scala。哦,就像尘土飞扬的道路上的小雨。一切都变得清晰起来,空气再次变得甜美起来,硬盘驱动器上的微弱灯光将闪烁到深夜,使我开心地陪伴在发现世界中。
我喜欢系统设计。我是一名建筑师,而不是程序员。我喜欢分析,设计,思考,争论,改进-我只是喜欢简单,干净和清晰的设计。
我们如何设计纯Scala解决方案?
当然,常规命令图,交互图,对象图等都可以全部替换或改进,以将命令性和功能性面向对象的系统融合在一起。当然,有一个完全不同的地方可以开放!
我不是在寻找肿的复杂性,而是在寻找灵活的简单性。实际上,Scala很简单(虽然有所不同),但可以像一条瑜伽裤一样扩展以适应您的需求。对于这种可爱的语言,必须有一个设计系统,该系统应从简单开始,并且可以扩展以适合您的要求和您的领域。当然不能是UML!
那么我们如何设计纯Scala系统呢?想象一下,您有足够的勇气从头开始设计一个完整的系统,并且知道您将只使用Scala- 您的模型外观如何?您必须描述什么类型的图的结构和行为?您将如何对选项,匹配项,混合项,单例对象等进行建模,而不会陷入扩展现有建模技术而不是使用新颖,轻巧的创新工具集的复杂性。
是否存在这样的设计/过程/解决方案,或者现在该发明一个?