熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

基於ASP.NET MVC框架開發Web論壇應用程序[1]

2013-11-13 10:46:52  來源: .NET編程 

  我想通過本系列文章從頭到尾構建一個完整的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的提法並不十分相同但是它們卻十分相近

[]  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/14493.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.