1. 程式人生 > 其它 >程式設計師的修煉之道》讀書記錄

程式設計師的修煉之道》讀書記錄

《程式設計師的修煉之道》讀書記錄:

  1.本傑明·富蘭克林說過:知識上的投資總能得到最好的回報。這沒問題,但遺憾的是知識是有時效的資產,特別是計算機領域。我們可以把我們瞭解的技術實現、工作經驗視為知識資產,並使用管理金融資產的形式管理這些知識。

  經營知識資產可以從以下方面進行:

    定期投資:定期投入時間學習,即使很小的投資也是很重要的。

    多元化:作為底線我們需要對當前所從事的技術熟練掌握。但不要就此止步,技術的發展變化很快,掌握的知識越多,就越能更好的進行調整,趕上變化。

    管理風險:不要把所有的“技術雞蛋”放到一個籃子裡。

    低買高賣:新技術流行之前就掌握它往往比之後跟風再學得到更大的回報。

  這些知道方針裡最重要也是最簡單的就是:定期為你的知識資產投資。

  2.有時候你確切的知道自己需要什麼以及怎麼做,但請求許可這件事往往會遭遇拖延和漠然,每個人都會護衛他們自己的資源,這讓事情變得複雜,這叫“啟動雜役”(start-up fatigue)。這時候我們不應該等著所有事情都準備好,而應該先拿出“石頭”煮起來,就是想讓事情啟動起來。只要是有益的事情,你把做出的一部分結果拿給別人看,然後告訴他們如果加的別的什麼會更好,大家一般都會幫忙的。

  3.在黑暗中發光的程式碼。通常一個專案的開發是非常複雜的,如果只是一個模組一個模組的開發,我們可能直到最後才能確認專案執行情況。更好的做法是,我們要讓系統儘早的跑起來,然後根據需要給它完善細節。這樣會有以下好處:

    使用者能夠及早看到能工作的東西。

    開發者構建了一個能在其中工作的結構。

    你有了可用於演示的東西。

    你能夠感覺到工作進展。

  4.除錯心理學。除錯的目的是解決問題,不要因為別人提出bug 而發起進攻。

  當你目睹bug 發生或者看到 bug 報告時,第一反應不要是“那不可能”。很明顯已經發生了,把時間用在思考它為什麼產生上面。

使資料視覺化。例如迴圈引用問題,如果視覺化的話可以很輕易地進行排查。

  跟蹤程式碼。發生crash 我們能夠檢視系統的呼叫堆疊,但這些資料不一定夠。對於非 crash 類錯誤,因為沒有丟擲,我們甚至不知道發生了什麼。所以新增所謂的跟蹤日誌很有必要,這類日誌最好採用統一規範,便於後期我們可以自動解析他們。

  橡皮鴨,也叫小黃鴨除錯法。遇到無法定位的問題時,對著小黃鴨(螢幕)解釋自己的實現邏輯,很可能在說的過程中你自己就發現了問題所在。

  不要第一時間懷疑OS,IDE,三方庫的問題,他們出問題的概率比你程式碼出問題概率小得多。我們應該首先確認和排查自己的問題。

  對bug 原因進行復盤。修復了一個 bug,不要就讓它結束了,想一下,為什麼它會出現了,如何避免。定位過程如果耗時較長,也需要覆盤下為何花費了那麼長時間,以及後續如何優化。