架构的演化和不断新兴的设计
Evolutionary architecture and emergent design: Leveraging reusable code, Part 1
这是IBM的一篇文章,一旦你确认了惯用的模式,下一步你就进入收获期,理解设计和代码之间关系,能够发现可重用复用的代码,这篇文章阐述了代码与设计的关系,指出重要是用一个可表达有表现力的语言,然后重新不断思考抽象,挖掘潜在价值。
文章指出两个惯用模式:
1.技术模式,这些模式强调事务 安全和其他底层技术元素。
2.领域模式,这些包括解决业务应用的通用方案。
文章认为:设计就是代码。从表现力和抽象风格来谈论两者关系。完整的代码是设计工作的目标和结果。
理解这个点就不能理解为什么一些开发失败。比如MDA模型驱动架构中,试图直接从UML产生代码,这是失败的,因为UML语言不够表现力,不够丰富,不能表达细微差别。
要认识到设计是最昂贵的活动(banq:有些公司开发图形化的拖曳或快速开发软件方式,从方向上应该迟早会失败的,如果你能通过开发专门工具来解决这个最昂贵的活动,那么你就是上帝了)。
当然并不是反对你用UML,一旦代码出来后,你就要明白你进入了新的设计阶段,你就要迁移到这个阶段,这个阶段可读性设计是关键(banq:有些图形化开发工具开发或生成出来的代码几乎不能看,二次开发还需要通过开发工具去修改代码,不能直接阅读代码,这个方向也大大出错了,不过因为中国人不懂英语,所以中国软件公司总是试图阻止程序员直接读英文程序代码,而是搞图形化界面,结果越搞越复杂)。
而让代码变得可读,就要使用一些惯用的模式,这样就越容易修改维护拓展,凡是知道这些惯用模式的程序员都能读懂你的代码。(当然这个要求对程序员要高,不但要懂Java语言,还要懂模式)
banq总结:整篇文章虽然没有提DDD,但是和DDD或MDD领域驱动设计开发思想是一致的。
[该贴被banq于2010-07-23 18:43修改过]
[该贴被banq于2010-07-23 18:44修改过]