ASP.NET MVC论坛应用程序(上) |
本文标签:论坛应用程序 ASP.NET MVC 我想通过本系列文章从头到尾构建一个完整的ASP.NET MVC论坛应用程序,最终的目的是探讨和推动使用ASP.NET MVC框架构建应用程序的最佳实践 。 1、 简介 在本篇中,我想先从全局方面介绍一下论坛应用程序的总体目标 。在本篇中,我将讨论一下避免代码坏味道的重要性,还将讨论如何利用软件设计原则和模式来帮助你编写适合未来改变的富有弹性的代码 。最后,我还将论证一下为什么我选择使用测试驱动开发方式构建本系列文章中的论坛应用程序 。 2、 什么样的软件是好的软件 我不想仅仅为了构建论坛应用程序而任意构建此论坛应用程序 。我的目标是尽可能构建最棒的论坛应用程序 。 3、 好软件是设计得易于修改的软件 存在多种原因可能需要你改变软件: 一般说来,设计糟糕的软件是难于改变的 。有些软件设计得如此糟糕,以致于每个人都害怕碰一碰它 。我们大家应该都使用过设计得糟糕的软件 。当软件不好时,你很希望它干脆走开;甚至如果有机会的话,你可能想从头开始重新编写这款软件 。 4、 避免代码坏味道 Robert和Micah Martin把糟糕的软件部分描述为代码坏味道 。下列代码坏味道意味着此软件的书写是相当糟糕的: 【注意】上述这些代码味道在Micah和Robert Martin的著名《Agile Principles,Patterns,and Practices in C#》中得到充分的描述 。在此,强烈建议读者读一下这本书 。 5、 软件设计原则 遵循良好的软件设计原则,将有助于编写软件易于适应未来更改的软件 。软件设计原则有若干,也不尽相同 。例如,Cunningham和Cunningham Wiki描述面向对象设计的11个原则: 其中提到的面向对象设计的前五个原则与Robert Martin及他的儿子Micah Martin编著的《Agile Principles,Patterns,and Practices in C#》中所主张的软件设计原则是一致的 。此外,Robert Martin还在Object Mentor开辟的博客上讨论了这些原则: 此外,我还发现有另外两本书中也提供了有关软件设计原则的极其有用的信息 。第一本是Eric Freeman,Elisabeth Freeman, Kathy Sierra, Bert Bates编著的《Head First Design Patterns》;第二本是Brett McLaughlin,Gary Pollice和David West编著的《Head First Object-Oriented Analysis and Design》 。尽管这些书所讨论的原则与Robert Martin的提法并不十分相同,但是它们却十分相近 。 不过真实的情况是,上述所有这些针对软件设计原则展开讨论的资源都源自Robert Martin的工作 。Robert Martin并不是所有原则的发明者,但是他的确是第一个把这些原则收集到一起的人 。下面列出这些软件设计原则: 下面的软件设计原则列表来自于《Head First Design Patterns》一书: 当然,上述原则之间也存在许多的重叠之处 。例如,“单一责任”原则与后面的“一个类应该仅有一个改变的理由”这一原则是相一致的 。然而,它们所强调的重点还是有所不同 。更多的细节在此不便赘述 。 |