1. 程式人生 > >《代碼閱讀》讀書筆記(一)

《代碼閱讀》讀書筆記(一)

需求 的人 一行 編碼 重要 流動 使用 分析 缺少

《代碼閱讀》讀書筆記(一)


《代碼閱讀》(《Code Reading The Open Source Perspective》)Diomidis Spinellis 著

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一. 學習代碼閱讀的重要性:

  1. 在軟件開發過程中,有
    40% 70%的工作量是在系統首次編寫完畢後投入的。這些工作一般是閱讀、理解、和改動源碼。

  1. 歷史遺留代碼的不斷積累;

  1. 軟件復用越來越被重視;

  1. 軟件公司的人員流動性通常比較高;

  1. 開源開發工作和合作開發工作(包含 外包、代碼走查、和極限編程)的重要性正在日益增強。

以上這幾個因素都使得代碼閱讀成為project師今時今日不可缺少的技能。可是學校的教學卻缺少怎樣閱讀代碼的訓練,他們很多其它的關註的是

怎樣從最初的草案開始編敲代碼。

二. 怎樣選擇較高質量的代碼:

閱讀之前,我們首先要選擇要閱讀的代碼。而選擇一些高質量的代碼才可以有效的提高你的編程水平。書中給我們講述了如何鑒別低品質的代碼:

1.編碼風格不一致;


2.結構上毫無道理的復雜或可讀性差;


3.明顯的邏輯錯誤或疏忽。


4.過度使用不可移植的結構。


5.缺乏維護。


盡管作者列了這麽幾條,但我還是認為。對於我這個新手。通過以上幾條來判別代碼的優劣還是有難度的,所以初期我還選擇一些公認的優秀代碼來讀比較靠譜。比方說書中所選的各種開源碼。

三. 怎樣閱讀代碼:

將代碼作為範例:


定位你所感興趣的某個功能的代碼的位置,然後撇開其余不相關的部分。對它進行研究分析

假設你認為在原來的上下文中理解代碼有困難。你能夠將它拷貝到一個暫時文件裏。刪除全部不相關的部分。這一過程被稱為切片


維護:


在其它情況下,代碼可能不是學習範例。而是須要被修復的。假設自覺得發現了一個大型系統中的

bug,你須要採取一些策略,不斷細化對代碼的閱讀,知道找出問題。

在這樣的情況下。你須要利用一些工具來幫你完畢維護任務。


演進:


在多數情況下,代碼閱讀不是為了修復缺陷,而是為了添加新的功能、改動現有的特性,調整代碼使其適應新的環境和需求。抑或是重構以加強代碼的非功能性質量。這時能夠採用下面策略:


1.定位到感興趣的代碼部分。


2.單獨了解各個特定的部分。


3.判斷摘選出的代碼與其余代碼的關系。


重用:


代碼閱讀也可能是為了尋找可供重用的部件。

這部分代碼閱讀的關鍵理念是減少期望值。

檢查:


通過閱讀代碼找出功能和邏輯上的錯誤。

以及代碼的非功能性檢查(是否符合組織的開發規範和風格?是否有重構的可能性?等等…).

四. 總結:


通過以上的筆記我們不難發現作者描寫敘述的代碼閱讀的主要方法就是:定位,細讀。操作(改動,添加。重構)。檢查



PS. 1.這本書是偶然在圖書館發現的,看了兩章後果斷自己也入了一本。作者再書中以一些經典的開源碼為例,循序漸進的呈現給讀者這些開源碼的奧秘,各位童鞋們值得一看。

2.近期一段時間在實習公司參加實習。進公司的第一件事是給了我們他們做過的小系統。讓我們去自己研究。

(木有不論什麽文檔,凝視基本是少的可憐)。這可不是一件好玩的事情。剛開始我是毫無頭緒的一行一行往下看,到最後什麽門道也沒看出來。知道讀了這本書,才算是略微有了點章法,如今進展還不錯。

3.切身體會到,當前這樣的時代下。閱讀代碼的能力絕對是很重要的。


《代碼閱讀》讀書筆記(一)