文章:融合思想──深入探索 S#arp 架构

  • Billy McCafferty
  • 张逸

2009 年 6 月 24 日

话题:.NET架构语言 & 开发

开源产品 S#arp 架构的创始人 Billy McCafferty 亲自撰文对其产品进行了深入剖析。在文中,他追溯了软件开发,尤其是 Web 应用程序开发的发展历程,深入介绍了面向对象设计的基本原则,以及如何构建一个松散耦合的应用系统。他认为:

遗留软件系统最常见的毒瘤是紧耦合。紧耦合的例子多不胜数,例如两个对象之间存在双向依赖;具体依赖于服务的对象如数据访问对象;还有在单元测试中,如果依赖的服务断开或不可用,就无法测试服务的行为。紧耦合会导致脆弱的代码,使代码难以测试。修改紧耦合的代码,会让开发人员视如畏途,不战而降,甚至逃之夭夭。毫无疑问,一个成功软件的关键就是松散耦合。

紧耦合的系统会带来诸多问题,而解决之道就是解除依赖,通过对关注点的分离,使领域层依赖于数据访问层的接口,而不是具体实现。



文中介绍了有关测试驱动开发的相关知识。他提出:

TDD 隐含的基本思想是带着疑问开始软件开发,在开发过程中要不停地询问系统。例如,倘若你正在开发一个银行系统,可能需要询问系统,它有能力成功处理客户的存款业务吗?关键之处在于要在实现行为细节之前提出问题。随之而来的好处就是在编写系统之前,它能够让开发者将注意力放到系统要求的行为上。

Billy McCafferty 对领域驱动设计有着自己独特的见解。他认为:领域驱动设计是早期编程方法的一种自然进化,例如针对数据库数据进行模型驱动开发,其对应的模型可以视为应用程序的核心,要做的工作就是操作数据。……虽然,领域驱动设计需要数据库,但关键在于领域对于持久化机制(实现数据存储与获取的机制)应该是一无所知的。

虽然软件开发已经见趋成熟,目前也涌现出许多成熟的产品和工具,以及一些经过验证的最佳实践,能够帮助开发者提高开发的速度。但问题是,我们需要有足够睿智的眼光对这些原则、思想和工具进行合理地挑选。而 S#arp 架构正是为解决这一问题应运而生。它利用了诸多业已证明行之有效的实践,谨慎地选择工具以提高开发效率,保证系统高质高量,以及良好的可维护性。

若要了解更多信息,请阅读文章:融合思想──深入探索 S#arp 架构

.NET架构语言 & 开发