讀《程式設計師應該知道的97件事》筆記

2021-06-19 18:43:19 字數 2375 閱讀 5098

技術債務

當你發現必須在「幹得好」和「幹得快」之間做出抉擇的時候,一般都會選擇「幹得快」,並提醒自己將來再來返工。下一輪迭代自有其新的問題,工作重點轉移到新問題上,老問題還存在。

martin fowler把它分成:蓄意和無意

把技術 債務立即記錄到任務卡上,在惡化前償還。

無論你承諾了什麼,都得小心處置,顧及後果,盡快償還你的技術債務吧,否則你會被你的輕率而後悔。

童子軍規則

要讓離開時的營地比進入時更加乾淨

編碼:讓模組check in 的時候比check out的時候更加整潔

團隊把系統當成乙個整體來維護,不再「各人自掃門前雪」,團隊互相幫助,互相清理**。

變數可讀性,長函式分割成更短,迴圈依賴,增加乙個藉口解耦策略和實現細節。。。。

1.重構**的最佳起點是清理已有的基礎**和基於這些**寫的測試用例

2.避開重寫一切的**

3.逐步增加的小改動勝過一次性的大改動

4.在每次開發迭代後,確保已有的測試用例都通過

5.個人好噁和利己主義不能摻雜到開發中來

6.新技術不是重構的理由

7.要記住人總是會犯錯的

在你重構之前

1.理解當前**的優缺點

2.原有的**都是經多年的測試並實戰過的**,花費時間多

3.逐步反饋資訊來評估改動的對系統的影響,做一些測試

4.不要看不爽就重構

5.如果新的技術框架在功能性,可維護性或生產力上會有顯著提公升,可以考慮

6.新的設計未必會比原來的好,多考慮

謹防共享

抽取公共的方法或類的時候,需要考慮清楚,是否是真正的公用,否則會適得其反,更加難以維護

通向高效能之路布滿了髒**炸彈

重構時,注重成本,理清結構

遵守編碼規範

確保**格式一樣,自動執行

靜態**分析工具掃瞄**

每個人都配置好工具

測試覆蓋率過低,終止構建

**注釋:團隊理解**的含義,對待注釋要對待**一樣來維護

**審查

態度溫和,有建設性建議

每個星期正式的**審查日

編碼標準的自動化

對注釋的乙個注釋

**說不清,注釋來補充

**審查

**審查日:2個小時一次,迴圈制模式,讓審查者輪流執掌每一次審查會議,可以讓專家加入進來,可以作為一次團隊的知識分享

自動化自動化測試:每天和每週末,非工作時間執行(包括效能測試,穩定性測試)

充分利用**分析工具:使用工具發現bug,規範**

在睡覺的時候(或度週末的時候)進行測試

充分利用**分析工具

美在於簡單

易用不是一種能力,為呼叫方考慮,為客戶考慮

瀏覽**,閱讀**的時間

易於檢索

清晰的布局

緊湊格式(**跟詩一樣)

封裝行為,而不僅僅是狀態

額外的設計

好玩的額外功能,但並無用處

遵守yagni原則,現在不用就不要寫

可能會有用,現在就寫,「雪球」會越高越大

系統需求不是隨便新增

柏拉圖:風格之美,和諧、優雅及優美的節奏盡在於簡單

不管系統有多複雜,但每個單獨的組成部分都保持著它的簡潔性,單一職責,方法的功能如同其名稱描述的一樣,

5~10行語句的短方法過於極端,這種是比較難,但我想這種間斷正是我們希望達到的目標

領域語言裡的**

含義在**中體現

易用不是一種能力

關於**布局的麻煩事

封裝行為,而不僅僅是狀態(看下書本中的例子)

** yagni(you aren』t gonna need it 你絕對不會需要它)

使用者需要什麼, 而不是我們提供什麼

責備先自責

不斷學習

有針對性的勤加練習,提公升自身的能力

不要在你的測試**裡裝可愛

了解你的侷限性,知己知彼

通曉兩門以上程式語言

使用者會怎麼做

當你卡住的時候,你會四處張望,需求幫助;而使用者卡住的時候,他們會縮小他們的注意力範圍,做好使用者體驗

在責備別人之前先檢查自己的**

不斷學習

閱讀書籍,資料

找到乙個號導師

利用虛擬世界,網路導師

了解你使用的框架和類庫

分享解決乙個比較通用的問題方法

分享所學的知識

加入學習小組

參加研討會

學習業務知識

考慮回學校

有針對性的勤加練習,提公升自身的能力

不要在你的測試**裡裝可愛

在你的**中,注釋,日誌,測試資料,想想一旦公開出去是否有問題,你會臉紅嗎?

了解你的侷限性

通曉兩門以上程式語言

每年學習一門新的語言

程式設計師應該知道的97件事

上星期拿了三本書來看,其中一本就是 程式設計師應該知道的97件事 大概通讀了一遍裡面有73位著名的人物,分別寫了97件事。每個人都有自己總結的一句話,對於程式設計師們確實很實用。這裡面的人物在程式設計師這一職業中有工作20年以上的經歷,有自己開公司的也有是博士 教授的。若能認真遵守這97件建議,我想...

《程式設計師應該知道的97件事》樣章

謹慎行動 act with prudence seb rose 無論你承諾了什麼,都得小心處置,顧及後果 無名氏 在一次迭代開始時,各項任務看上去安排得張弛有度,但仍無法避免在某段時間會承受到巨大進度壓力。當你發現必須在 幹得好 和 幹得快 之間作出抉擇時,一般都會選擇 幹得快 並提醒自己將來再來返...

《程式設計師應該知道的97件事》 不斷學習

你需要不斷學習,才能保持自己的 市場號召力 否則,你會變成恐龍,在乙個職位上日復一日,直到有一天,你不再被需要,或者你的工作被外包給了某個更便宜的機構。為了保險起見,你需要為你自己的教育負起責任。以下列出了一些學習途徑,它們中的大多數可以在網際網路上免費獲得。如果你真的想沉浸在一項技術中,那就親自動...