Working effective with legacy code讀書筆記- 修改代碼的四種原因

 

今天開始讀 Michael C. Feathers 的《 Working effective with legacy code》。準備寫一些讀書筆記,主要是爲了加強自己的理解,同時也是爲了將來的複習。

 

修改代碼是每個程序員都幹過的事情,無論是過去、現在還是將來。有時候是修改自己編寫的代碼,有時候是修改別人編寫的代碼。可以說,修改代碼是程序員工作中很重要的一部分。

簡單來說,修改代碼的原因主要有以下幾種:

  1. 修改 Bug

  2. 添加新的特性

  3. 改善設計

  4. 優化資源的使用

 

修改 Bug和添加新的功能就不用說了,估計每個程序員都做過。通常修改 Bug和添加新的功能都會改變現有的程序的行爲。

改善設計是另外一種軟件變動,我們希望改變軟件的結構以增加可維護性,通常我們不希望改變現有程序的行爲。如果在改變的過程中,程序的行爲發生了變化,我們會稱之爲 bug。改善設計而不改變行爲的變化我們也稱之爲重構。

優化和重構很相似,但是目的不同。優化的目的是改變程序使用資源的情況,通常是時間和內存。

總的來說,這四種原因的比較如下:

 

添加特性

修改 bug

改善設計

優化

結構

改變

改變

改變

--

功能

改變

改變

--

--

資源使用

--

--

--

改變

 

 

 

 

 

 

如果我們繼續細化,把功能的改變細分爲添加新的功能和改變原有的功能(包括刪除原有的功能),那麼情況如下

 

添加特性

修改 bug

改善設計

優化

結構

改變

改變

改變

--

新功能

改變

--

--

--

原有的功能

--

改變

--

--

資源使用

--

--

--

改變

 

在添加新特性、改善設計和優化的時候,我們都希望保持原有的功能。就算是修改 bug的時候,我們會改變一些原有的功能,但是我們同樣希望保持其他的原有的功能。因此,對於以上四種修改代碼的原因,我們都是希望改變一些東西,同時保持全部或者大部分的原有功能不變。

那麼這個對於程序員來說意味着什麼呢?意味着程序員不僅僅要保證修改的一部分修改正確了,同時要保證其他的部分沒有變化。不幸的是,要保證其他的部分沒有變化不僅僅是不去碰那一部分代碼就可以了。更加不幸的是,當我們做修改的時候,通常我們不知道到底有哪些其他的部分是可以發生變化的。(就算是自己寫的代碼,也很難完全想清楚,更別說是其他人寫的代碼)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章