代碼藝術 之 修改軟體

來源:互聯網
上載者:User
思維導圖 點擊圖片查看大圖 

  

介紹 我們平時在開發中遇到最多的不是開發新項目,而是對現有的項目進行修改和添加新特性。所以這次著重談談軟體修改。 目錄索引 #  添加新特性,修正bug;#  改善設計;#  最佳化資源使用;#  考慮危險性 添加新特性,修正bug 我們在平時維護現有系統的時候,我們不難發現 產品比較喜歡添加行為,而不是改變或移除原本他們所依賴的行為。 對於我們平時如何區分是修正bug還是添加新特性呢?這個是角度問題,是產品與技術人員的較量問題。比如:產品想把logo,從左邊移到右邊,而且還要在右邊移動。   那麼從產品的角度是修複bug,而從我們的角度是添加新特性。     產品從不管我們為此不得不從頭開始做一些新的工作的事實。——主觀看法的差異而已。
我們在平時一定要做到bug修正和添加新特性必須分開記錄和解決,這便於我們日後的維護。——一般我們公司是使用jira做這些記錄。
 

 

改善設計  改善設計的目的是改變既有軟體的結構和組織,以令其更易於維護。 改善設計我們不得不提重構,重構是不改變軟體行為的前提下改善其設計的舉動。我們要保證結構的改變不會影響既有的行為,這我們通常需要編寫測試代碼。——每一小步都小心驗證其行為不會改變。

  最佳化 最佳化與重構的區別是目的不同。對於重構來說,是為了易於維護而做的程式結構的調整。而對於最佳化來說,是為了提高效能(如時間或記憶體)。 

有兩個詞大家需要斟酌一下,“清理”和“整理”。清理有清除整理的意思,而“整理”沒有清除的意思。我們在重構或最佳化的時候,注意這兩個詞的區別。——為了與其他人溝通更加準確些。
 

 危險的修改 在我們需要作出修改並保持行為時,往往伴隨著相當大的風險。  思考方式:  在我們修改代碼的時候,你腦子裡是否想到以下問題。——這也是希望大家在修改代碼的時候,自問一下。    1、我要進行哪些修改?    2、如何判斷已經正確的完成了修改?    3、如何得知沒有破壞任何既有的行為?  傳統方法 我們經常使用的方式:當需求下來了,我們的第一反應是在現有的類或方法上添加和修改,而不是重建立個類或方法。這樣使用是因為費力少,更安全。而產生的後果是既有的類和方法越來越大,越來越難理解。而且我們不得不承認,我們對代碼會越來越生疏,以後再修改這個地方,從內心就會產生恐懼感,總懼怕這個地方再進行修改從而導致系統結構日益糟糕。  比較先進方法 1、努力的去做修改,做好文檔(主要是流程圖)、注釋。——我個人非常喜歡某個方法重寫,我的做法是看是不是能抽出類或者方法來,然後重寫方法。這樣做的目的(1)我更加瞭解系統。(2)能增強My Code編寫能力。2、僱傭更多員工,這樣我們就有更多的時間進行系統分析和仔細審查所有代碼。 

 總結 以上是對軟體修改整個過程的理解,若有誤,歡迎大家拍磚。 
參考文獻《修改代碼的藝術》  推薦  
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.