asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

基于ASP.NET MVC框架开发Web论坛应用程序[1]


发布日期:2022年07月09日
 
基于ASP.NET MVC框架开发Web论坛应用程序[1]

我想通过本系列文章从头到尾构建一个完整的ASPNET MVC论坛应用程序最终的目的是探讨和推动使用ASPNET MVC框架构建应用程序的最佳实践

简介

在本篇中我想先从全局方面介绍一下论坛应用程序的总体目标在本篇中我将讨论一下避免代码坏味道的重要性还将讨论如何利用软件设计原则和模式来帮助你编写适合未来改变的富有弹性的代码最后我还将论证一下为什么我选择使用测试驱动开发方式构建本系列文章中的论坛应用程序

什么样的软件是好的软件

我不想仅仅为了构建论坛应用程序而任意构建此论坛应用程序我的目标是尽可能构建最棒的论坛应用程序

这个目标立即引发这样一个问题什么样的软件是好的软件?是什么导致一个应用程序比另一个应用程序更好一些或更差一些呢?在事先没有一个关于好软件的定义之前我无法声明我构建了一个完美的论坛应用程序

因此下面是我对于好软件的定义

好软件是设计得易于修改的软件

存在多种原因可能需要你改变软件

)你可能需要在一个现有软件上添加新的特征

)你可能需要修改一个现有软件中的错误

)你可能需要优化现有软件

)你可能需要改进现有软件的设计

一般说来设计糟糕的软件是难于改变的有些软件设计得如此糟糕以致于每个人都害怕碰一碰它我们大家应该都使用过设计得糟糕的软件当软件不好时你很希望它干脆走开甚至如果有机会的话你可能想从头开始重新编写这款软件

避免代码坏味道

Robert和Micah Martin把糟糕的软件部分描述为代码坏味道下列代码坏味道意味着此软件的书写是相当糟糕的

)僵化性(Rigidity)—僵化的软件是这样的软件当你在某个位置作一改动时即要求对系统作出相应的一系列的更改

)脆弱性(Fragility)—脆弱的软件是这样的软件你在某个位置作一改动时即打断另外多处的正常运行

)不必要的复杂性—不必要的复杂软件是指过度设计的软件其目的是为了处理任何可能的改变

)不必要的重复—不必要的重复软件中包含大量的重复性代码

)晦涩性—晦涩的软件是指难于理解的软件

【注意】上述这些代码味道在Micah和Robert Martin的着名《Agile PrinciplesPatternsand Practices in C#》中得到充分的描述在此强烈建议读者读一下这本书

注意上述这些代码味道都与所有的代码改变相关联每一个这些代码味道都将妨碍代码的改变

软件设计原则

遵循良好的软件设计原则将有助于编写软件易于适应未来更改的软件软件设计原则有若干也不尽相同例如Cunningham和Cunningham Wiki描述面向对象设计的个原则

http://ccom/cgi/wiki?PrinciplesOfObjectOrientedDesign

其中提到的面向对象设计的前五个原则与Robert Martin及他的儿子Micah Martin编着的《Agile PrinciplesPatternsand Practices in C#》中所主张的软件设计原则是一致的此外Robert Martin还在Object Mentor开辟的博客上讨论了这些原则

http://wwwobjectmentorcom/resources/publishedArticleshtml

此外我还发现有另外两本书中也提供了有关软件设计原则的极其有用的信息第一本是Eric FreemanElisabeth Freeman Kathy Sierra Bert Bates编着的《Head First Design Patterns》第二本是Brett McLaughlinGary Pollice和David West编着的《Head First ObjectOriented Analysis and Design》尽管这些书所讨论的原则与Robert Martin的提法并不十分相同但是它们却十分相近

[] [] []

               

上一篇:ASP.NET入门教程 11.2 Wrox United中角色的介绍[1]

下一篇:基于ASP.NET MVC框架开发Web论坛应用程序[3]