《構建之法》讀書筆記


前言

一直很喜歡靜心讀書的感覺。認真閱讀《構建之法》的過程中,首先我的直觀感覺就是我很喜歡這本書,這本書並不是一味的講解理論知識,而是結合很多現實生活中的小例子來寫,不僅便於理解,而且很有趣,吸引着我一直讀下去。以下是我閱讀1,2,16章之后提出的一些問題和自己的想法。很多想法可能不一定正確,但確實是我的真實看法,希望大家能互相交流討論。

第1章

1.“什么是好的軟件,一些同學認為,所謂好軟件,就是軟件沒有缺陷(bug),所謂軟件工程就是把軟件中的bug都消滅的過程。這的確抓住了軟件工程的一個要素”                                                      


 

問題:

(1)好的軟件除了從用戶滿意度,可靠性,軟件流程的質量,可維護性這樣宏觀的角度衡量,具體可以用哪些指標衡量?

(2)bug數和軟件好壞的關系是怎樣的?

我的看法:

(1)這句話引發了我對如何衡量軟件的好壞的思考。也通過百度得知了衡量軟件質量的5個最常用的指標:SLOC(源代碼行,可以使用Metrics工具來統計);每個代碼段/模塊/時間段中的bug數;代碼覆蓋率(單元測試階段考慮);設計/開發約束(可維護性,可讀性);圈復雜度(用來衡量一個模塊判定結構的復雜程度,已經成為評估軟件質量的一個重要標准,能幫助開發者識別難於測試和維護的模塊,在成本、進度和性能之間尋求平衡。圈復雜度可以使用pmd工具來自動化計算。)

(2)我認為沒有bug的軟件不一定是好軟件,好的軟件bug數一定是盡量少的。由第一個問題的解釋也可以看出,bug的確是軟件工程中重要的一個方面,但是不能只由這一個方面來衡量。這里引用一篇博客(http://www.iteye.com/news/26178)中的這句話:“Bug數可以作為評估開發者效率的指標之一,但必須注意,如果過分強調這種評估方法,軟件開發者和測試者可能會成為敵人。”我覺得這句話很好的強調了bug數和軟件好壞的關系。在看到這個指標的同時,我們也應該重視其他衡量軟件好壞的指標。

第2章

1. “單元測試必須由最熟悉代碼的人(程序的作者)來寫”                                           


 

問題:

(1)代碼開發人員應該先開發代碼還是先寫單元測試?

(2)代碼和單元測試都由同一個人編寫的話,他會不會習慣性的往理想的方向編寫測試代碼而導致單元測試沒有起到應有的作用,規避了可能出現的錯誤?

我的看法:

(1)我的第一想法是要先寫開發代碼,覺得沒有代碼就不知道測試的對象,沒有具體的對象不知道測試從何寫起,但又覺得如果代碼都寫好了,在測試的過程中可能會不自覺的規避掉可能出現的問題。在自己的思維里覺得測試是通過的,但其實是存在問題的。帶着這樣的疑惑,我查了百度,得到的大部分答案都是說應該先寫單元測試。對於沒有對象怎么寫單元測試這個問題,給出的解決方案是:我們可以通過先畫流程圖,寫偽代碼或者建模來解決這個問題,這樣讓我們站在用戶的角色去開發,盡早的發現問題。

(2)我同樣也認為寫單元測試的人一定要足夠熟悉代碼,但是也有了上面的疑問。我覺得平時我們敲代碼的不足之處有一部分就體現在沒有考慮到很多極端或者不易想到的情況,如果是同一個人寫單元測試的話,可能仍然在測試的時候,沒有選用這些極端的情況或沒想到的情況,而得出錯誤的結論。我覺得專業的測試人員可能有更好的測試思想,更好的保證用例的覆蓋。但他們又不夠熟悉代碼。感覺各有優缺點,這也是我比較糾結的一個問題。

第16章

看書本的16章時覺得這章的內容輕松有趣,在有很強的故事性的同時,也蘊含了很多使我們受益的看法和想法。對於這一章我想要針對一些作者的語錄發表一些我自己的看法。相比前兩章提出具體的問題,我覺得這一部分我更願意把它稱之為我的讀書筆記。

 

1.謎題之一:“不要一開始就想着找到並拼對所有的拼圖塊,以為能夠打造一個巨大的創新。”           

  謎題之五:“為什么領域的專家有時候沒有領域外的創新者那么有創意?”                           


 

我的看法:

(1)對於第一句話,我很認同。這句話並不是教導我們目光只看到當前,我們要在有統籌觀念的同時,注重腳下的每一步,過於追求結果只會使事不如人願。一步一步,不急不躁,踏實穩步的走,你會發現,走着走着,你想看到的一切風景,盡在你眼前。

(2)我之所以把這兩句話寫到一起,是因為我覺得第一句話正是第二句話的部分原因。領域的專家有時候正是被第一種思想所支配,才會限制了他們的思想。還有就是我認為領域內的專家可能形成了太多關於這個領域的固有思維,反而忽略了很多天馬行空,靈光一現的想法。我也很喜歡書后鏈接的書名《像外行一樣思考,像專家一樣實踐》。

 

2.謎題三,好的想法會贏與謎題四創新者都是一馬當先                                               


 

我的看法:

謎題三中Dvorak鍵盤在功能上其實是好於QWERTY鍵盤的,卻由於“先入為主”的思想使用率很少;而謎題四中很多有“先行者”的產品仍能夠通過創新,后來者居上。這也引發了我們更深入的思考。為什么下面這種情況就沒有因“先入為主”的思想而沒人使用吶?這也充分的提示了我們要掌握好創新性和實用性的關系。正是因為后者創新的價值性體現的十分明顯,相比之前的產品有突出的優越性,才使得人們戰勝了“先入為主”思想而選擇它。

 

3.謎題五,“正是這種看似簡單的無狀態的網頁,改變了世界。”                                         


 

我的看法:

這句話讓我想起了一句特別文藝的話“我們都是遠視眼,模糊了最近的幸福”。我覺得很多越是簡單的東西越不好解釋。這句話也提醒了我們,要時刻注意細節。我認為細節在軟件的開發過程中也是十分重要的。正是一個一個小的細節上的優點的堆積,才使軟件整體有很好的質量,才能使用戶滿意度更高。

 

以上就是閱讀《構建之法》1,2,16章后,讓我想到的問題和我的思考。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM