天天看點

《代碼閱讀方法與實踐》閱讀筆記之二

時間過得真快,一轉眼,10天就過去了,感覺上次寫閱讀筆記的場景仿佛還曆曆在目。《代碼閱讀方法與實踐》這本書真的很難寫筆記,本來我看這本書的名字還以為書裡大概寫的都是些代碼閱讀的簡易方法,心想着這就好寫筆記了,沒想到竟然好多都是我們之前學過的東西,這倒讓我有點無從下手了。大概像我們這些還沒有太多經曆的大學生,總是習慣于盡量避免自己的工作量,總是試圖找到一些完成事情的捷徑吧。總之,盡管我不想承認,但我自己心裡很清楚,我就是這種人。下面開始言歸正傳,說說接下來的幾章内容歸納。

這本書在前面已經分析了大量能夠影響程式指令序列的控制流程的語句,雖然這些語句已經能夠滿足大多數常見的程式設計任務,并且也是最常遇到的語句。然而,一些并不常見的部分對許多應用程式也很重要。遞歸代碼經常用相似的定義來反映資料結構或算法。異常在C++和Java中用來組織對錯誤的處理。通過使用軟體或硬體的并行性,程式可以增強響應性、有條理的配置設定工作,或者有效的使用多處理器計算機。當并行機制不可用時,程式可能必須采用異步信号(能夠在任意時間發出的信号)和非局部跳轉來響應外部事件。最後,為了提高效率,程式員往往在平常調用C函數的地方,使用C語言預處理器的宏替換功能。遞歸就不多說了,大家都比較熟悉了,接下來我們來看看剩下幾種。異常機制允許程式員将處理錯誤的代碼從代碼的正常控制流程中分離出來。在C++和Java程式中都會遇到類似的構造,這些語言中用異常處理的一些錯誤,通過信号報告給C程式。給予異常錯誤處理不同于C語言中基于信号的代碼,異常作為語言的一部分而不是由庫提供的功能,能夠沿着程式的詞法和函數的調用棧傳播,允許程式員以此結構化的方式處理它們。有些程式并行的執行部分代碼,以增強對環境的響應,安排工作的配置設定,或有效的使用多個計算機或多個處理器計算機。這種程式的設計屬于一個不斷發展的研究領域。

  第六章講的是如何應對大型項目,開頭就是一句名言,“通過擴充小型系統而形成的大型系統,其行為不同于小型系統。”我覺得這句話很對,大型項目并不是小型項目單純的擴充起來的。大型的多個檔案項目與小型項目之間的不同,并非僅僅在于分析他們的代碼時,會遇到更多挑戰,還在于它們提供了許多了解它們的機會。這一章介紹了一些總用在實作大型項目中的常用技術,之後分析了這類項目開發過程中具體的構成成分。描述了大型項目的組織方式,它們的編譯和配置過程,不同檔案版本如何空控制,項目專用工具的特殊角色,以及典型的測試政策。大型的編碼工作,出于它們的大小與範圍,經常能夠證明應用一些技術的必要性,而在其他情況下這些技術可能根本不值得使用。這章不太能看懂,圖檔也是複雜到根本看不見圖上的字,疑問還是有不少的,就等着和一起讀這本書的同學一起讨論讨論。這裡我再說說測試。設計良好的項目,都會預測先為測試系統的全部或部分功能提供響相應的措施。這些措施可能隸屬于一份經過深思熟慮,用來驗證系統運作的計劃,也可能是系統的開發者在實作系統的過程中實施的非正式測試系統的殘餘。作為源代碼閱讀活動的一部分,我們應該首先能夠識别并推理測試代碼和測試用例,然後使用這些測試産物幫助了解其餘的代碼。

  這本書不好寫閱讀筆記,我在看的過程中,仿佛看懂了,有好像不太明朗,是以在寫筆記的過程中,不知道寫點什麼好。這本書雖然說不好寫閱讀筆記,但是并不影響我覺得這是一本不錯的書。我不得不說我不擅長這個專業,有好多東西了解起來确實很困難,我最苦惱的情況就是書上給了一堆定義的東西,我了解不了,還沒有例子。然而這本書上幾乎每個小結都有具體的自己,讓人更容易明白作者想要講解的是什麼意思,這點很難的,也是這本書值得閱讀的原因吧。