不要當你需要新的功能的時候,或者原來的程序出了Bug,你才想起重構。
《重構》那本書你看過了嗎?它寫的是什么?那本書的價值何在?介紹重構這門技術?告訴你為什么重構?錯!那本書的價值就在于它把應該引起重構的Bad Smell一一列了出來,并給出了該如何重構解決這些Bad Smell的意見,不然那本書看一遍就可以扔了!
你知道什么是面向對象嗎?接口! 你知道什么是TDD嗎?重構!
詳細內容
TDD
這個概念出現至少也有兩年多了, 在大家剛接觸它時候, 幾乎沒人不拍手鼓掌, 測試驅動的概念確實可以為我們帶來很多的好處. 泡泡在前不久寫了一篇很不錯的TDD的文章, 可是我還是忍不住在他的評論中說到這篇文章有點”老”. 確實,同樣的概念在書中, 在大家的口中已經被說爛了. 但是TDD真正給我們帶來什么呢? 有多少人在用TDD呢? 為什么這么好的技術到了應用中就被人們”拋棄”了呢?
(注: Design Pattern面世都十幾年了, 現在還是有不少好書在介紹它,所以”老”不代表不好,泡泡的總結在園子里還是最好的一篇TDD文章, 特別建議剛接觸TDD的參考之.)
TDD的應用是阻撓TDD發展的重要原因, 回想一下有關TDD書中舉的那些例子. 再想想你學習了解TDD自己又做了哪些應用? --- 類庫, 最基本的幾個類之間協作, 不涉及數據庫,不涉及UI,不涉及企業服務. 這樣看來TDD最適用的場合就是不涉及復雜應用的類庫. 比如一個保齡球游戲, 一個Money兌換系統. 如果是這樣那TDD自然沒有人用了, 真正的項目有幾個不涉及負責應用呢, 有幾個不和數據庫,界面打交道? 可是一旦你想將TDD應用于此時, 你就會發現煩不勝煩, 無從下手.
難道TDD真得這么不堪一擊?... 詳細內容
在前不久發布的”質疑國內.Net社區”的隨筆中, 我個人算是對社區的力量抱怨了一把. 下面該有些實際行動來推動社區的發展, 其實在寫那篇隨筆的時候正在總結一些心得, 現在我把它發表出來供大家討論,也算是帶個好頭,希望能起到拋磚引玉的作用.
在閱讀此文之前推薦閱讀O/R Mapping 基本概念,在基本概念上達成共識.
Enterprise Persistence Design