敏捷式軟體開發 (Agile Software Development)閱讀筆記一

來源:互聯網
上載者:User

      今天看的是<敏捷式軟體開發 (Agile Software Development):原則、模式與實踐>的第七章, 讀到7.2節中的軟體設計的臭味---腐化軟體的氣味。
其中說到:當軟體出現下面任何一種氣味時,就表明軟體正在腐化。
     僵化性:很難對系統進行改動,因為每一個改動都會迫使許多對系統其他部分的其他改動
     脆弱性:對系統的改動會導致系統中和改動的地方在概念上無關的許多地方出現問題
     牢固性:很難開啟系統的糾結,使之成為一些可在其他系統中重用的組件
     粘滯性:做正確的事情比做錯誤的事情更困難
     不必要的複雜性:設計中包含有不具有任何直接好處的基礎結構
     不必要的重複:設計中包含有重複的結構,而這些重複的結構可以用單一的抽象進行統一
     晦澀性:很難閱讀、理解。沒有很好地表現出意圖

     以上這些所謂的“氣味”是摘自《敏捷式軟體開發 (Agile Software Development):原則、模式與實踐》這本書中,以下是我對這些不良的設計習慣的一些感想。
     做為一個設計或編程人員,總是會有這樣那樣的不良習慣,導致一個軟體總不能以讓人滿意的原型出現。
     對於僵化性,很多開發人員在設計之初沒有考慮充分,很多功能的實現只是滿足於能達到最後的效果,對於代碼的最佳化和結構的設計,都只是放在靠後的位置,這樣做往往是帶來了無法預料的後果。當他用要修改其中的一小部分時,會發現,其實還需要同時修改更多其他部分的代碼。。。如此之累,何苦啊。。。 
      對於脆弱性,一個地方出現改動時,會有其他更多的無關的地方需要進行改動,開發人員往往知道這些地方需要重新設計,卻又都懶得對它進行重新設計,這樣的後果,可想而知。平時的開發過程中,我們的團隊也常常遇到這樣的問題,明明知道有些地方不是很完美,需要重新設計,可是誰都沒有這樣的耐心,寧願不斷地對它打“補丁”,也不願放棄不合理的設計,重新來過。。。悲哀啊。。。
     對於牢固性,系統中常常會包含一些對其他系統有用的部分,但是想從中將它獨立開來又是一件很困難的事情,這真的是一件可悲的事。在我們的團隊開發過程中,往往會設計出一些很有用的系統部分,雖然不是太大,功能也不是太多,可卻是一些很通用的部分,偏偏很少有人想著將這些部分獨立開來成為一個單獨的“組件”,為今後別的系統做準備。這樣的後果,當然是每次都要重新寫代碼,重新考慮整合。。
     對於粘滯性,這一點,目前沒有太多的體會,先不引入我的想法。。。
     對於不必要的複雜性,在實現系統功能的時候,常常會引入一些不會用到的部分,也許在設計之初並不會考慮到這些,可在整合一個個功能的時候,仔細檢查,往往會發現很多這樣的部分存在。一些絕對不會用到的結構,我想這應該是很多開發人員會犯的錯。我們的團隊,也常常會犯這樣的錯。
    對於不必要的重複,這一點,從字面上就解釋的很清楚了。沒有必要再在這裡引入太多的想法,對於這一點,我想開發人員應該要有個良好的開發習慣,讓自己的代碼更簡潔。
    對於晦澀性,開發人員的代碼總是會因為個人風格的不同而產生千百萬種的代碼格式。雖說這也是可以理解的,但往往因為這樣,很多代碼變得不易讀,甚至是讀不懂。從我開始編程開始,就一直有這種體會。在初學階段,總是只注重結果,不關心自己的代碼格式。現在看來,那些代碼真的是毫無可讀性。後來的一段時間裡,接觸了一些人,一些書,影響了我的習慣,也許,今後要更加改進代碼風格。。。

     這些想法,只是我的一些個人想法,對於這本書,一句評價:是本好書。。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.