作者 | Robert C. Martin,軟件開發大師,設計模式和敏捷開發先驅,敏捷聯盟首任主席,C++ Report前主編,被後輩程序員尊稱為“Bob大叔”。20世紀70年代初成為職業程序員,後創辦Object Mentor公司並任總裁。Martin還是一名多産的作傢,至今已發錶數百篇文章、論文和博客文章。除本書外,還著有《代碼整潔之道》《敏捷軟件開發:原則、模式和實踐》《UML:Java程序員指南》等。他創辦瞭cleancoders.com網站,專為軟件開發人員提供教育視頻。
譯者 | 餘晟,混跡軟件開發和互聯網行業多年,目前在滬江網負責研發和架構管理工作。業餘喜愛閱讀、思考,關注工程師的全麵發展,探索更聰明的技術方案,樂於幫助外界更多理解IT行業的約束、規律和習慣。
譯者 | 章顯洲,螞蟻金服高級項目專傢,業餘以技術翻譯作為個人修煉與迴饋軟件開發社區的途徑。自2009年來,翻譯和與人閤譯多本技術管理書籍,偶爾也會齣現在技術社區聚會上作一些分享。近年來主要緻力於螞蟻金服基礎設施和架構升級方麵的項目集管理。
必讀引言1
第1章 專業主義 7
1.1 清楚你要什麼 8
1.2 擔當責任 8
1.3 首先,不行損害之事 10
1.3.1 不要破壞軟件功能 10
1.3.2 不要破壞結構 12
1.4 職業道德 13
1.4.1 瞭解你的領域 14
1.4.2 堅持學習 16
1.4.3 練習 16
1.4.4 閤作 17
1.4.5 輔導 17
1.4.6 瞭解業務領域 17
1.4.7 與雇主/客戶保持一緻 18
1.4.8 謙遜 18
1.5 參考文獻 18
第2章 說“不” 19
2.1 對抗角色 21
2.2 高風險時刻 24
2.3 要有團隊精神 25
2.3.1 試試看 26
2.3.2 消極對抗 28
2.4 說“是”的成本 30
2.5 如何寫齣好代碼 35
第3章 說“是” 37
3.1 承諾用語 39
3.1.1 識彆“缺乏承諾”的徵兆 40
3.1.2 真正的承諾聽起來是怎樣的 40
3.1.3 總結 43
3.2 學習如何說“是” 43
3.2.1 “試試”的另一麵 43
3.2.2 堅守原則 44
3.3 結論 46
第4章 編碼 47
4.1 做好準備 48
4.1.1 淩晨3點寫齣的代碼 49
4.1.2 焦慮時寫下的代碼 50
4.2 流態區 51
4.2.1 音樂 52
4.2.2 中斷 53
4.3 阻塞 53
4.4 調試 55
4.5 保持節奏 57
4.5.1 知道何時應該離開一會 58
4.5.2 開車迴傢路上 58
4.5.3 洗澡 58
4.6 進度延遲 58
4.6.1 期望 59
4.6.2 盲目衝刺 59
4.6.3 加班加點 60
4.6.4 交付失誤 60
4.6.5 定義“完成” 61
4.7 幫助 61
4.7.1 幫助他人 61
4.7.2 接受他人的幫助 62
4.7.3 輔導 62
4.8 參考文獻 63
第5章 測試驅動開發 65
5.1 此事已有定論 66
5.2 TDD的三項法則 67
5.3 TDD的優勢 68
5.3.1 確定性 68
5.3.2 缺陷注入率 68
5.3.3 勇氣 69
5.3.4 文檔 69
5.3.5 設計 70
5.3.6 專業人士的選擇 70
5.4 TDD的局限 70
5.5 參考文獻 71
第6章 練習 73
6.1 引子 73
6.1.110的22次方 74
6.1.2 轉變 75
6.2 編程柔道場 76
6.2.1 卡塔 77
6.2.2 瓦薩 78
6.2.3 自由練習 78
6.3 自身經驗的拓展 79
6.3.1 開源 79
6.3.2 關於練習的職業道德 79
6.4 結論 80
6.5 參考文獻 80
第7章 驗收測試 81
7.1 需求的溝通 81
7.1.1 過早精細化 83
7.1.2 遲來的模糊性 83
7.2 驗收測試 85
7.2.1 “完成”的定義 85
7.2.2 溝通 88
7.2.3 自動化 88
7.2.4 額外工作 89
7.2.5 驗收測試什麼時候寫,由誰來寫 90
7.2.6 開發人員的角色 90
7.2.7 測試的協商與被動推進 91
7.2.8 驗收測試和單元測試 93
7.2.9 圖形界麵及其他復雜因素 93
7.2.10 持續集成 94
7.3 結論 95
第8章 測試策略 97
8.1 QA應該找不到任何錯誤 98
8.1.1 QA也是團隊的一部分 98
8.1.2 需求規約定義者 98
8.1.3 特性描述者 98
8.2 自動化測試金字塔 98
8.2.1 單元測試 99
8.2.2 組件測試 100
8.2.3 集成測試 100
8.2.4 係統測試 101
8.2.5 人工探索式測試 102
8.3 結論 102
8.4 參考文獻 102
第9章 時間管理 103
9.1 會議 104
9.1.1 拒絕 104
9.1.2 離席 105
9.1.3 確定議程與目標 105
9.1.4 立會 106
9.1.5 迭代計劃會議 106
9.1.6 迭代迴顧和DEMO展示 107
9.1.7 爭論/反對 107
9.2 注意力點數 108
9.2.1 睡眠 108
9.2.2 咖啡因 108
9.2.3 恢復 109
9.2.4 肌肉注意力 109
9.2.5 輸入與輸齣 109
9.3 時間拆分和番茄工作法 110
9.4 要避免的行為 110
9.5 死鬍同 111
9.6 泥潭 111
9.7 結論 112
第10章 預估 113
10.1 什麼是預估 115
10.1.1 承諾 115
10.1.2 預估 115
10.1.3 暗示性承諾 117
10.2 PERT 118
10.3 預估任務 120
10.4 大數定律 122
10.5 結論 123
10.6 參考文獻 123
第11章 壓力 125
11.1 避免壓力 127
11.1.1 承諾 127
11.1.2 保持整潔 127
11.1.3 危機中的紀律 128
11.2 應對壓力 128
11.2.1 不要驚慌失措 128
11.2.2 溝通 129
11.2.3 依靠你的紀律原則 129
11.2.4 尋求幫助 129
11.3 結論 129
第12章 協作 131
12.1 程序員與人 133
12.1.1 程序員與雇主 133
12.1.2 程序員與程序員 135
12.2 小腦 137
12.3 結論 138
第13章 團隊與項目 139
13.1 隻是簡單混閤嗎 139
13.1.1 有凝聚力的團隊 140
13.1.2 如何管理有凝聚力的團隊 141
13.1.3 項目承包人的睏境 142
13.2 結論 142
13.3 參考文獻 143
第14章 輔導、學徒期與技藝 145
14.1 失敗的學位教育 145
14.2 輔導 146
14.2.1 DIGI—COMPI,我的第一颱計算機 146
14.2.2 高中時代的ECP—18148
14.2.3 非常規輔導 150
14.2.4 艱難的錘煉 150
14.3 學徒期 151
14.3.1 軟件學徒期 152
14.3.2 現實情況 154
14.4 技藝 154
14.5 結論 155
附錄 工具 157
· · · · · · (
收起)
本書是編程大師“Bob大叔”40餘年編程生涯的心得體會的總結,講解要成為真正專業的程序員需要具備什麼樣的態度,需要遵循什麼樣的原則,需要采取什麼樣的行動。作者以自己以及身邊的同事走過的彎路、犯過的錯誤為例,意在為後來者引路,助其職業生涯邁上更高颱階。
代碼整潔之道 epub pdf mobi txt 電子書 下載 2025
代碼整潔之道 下載 epub mobi pdf txt 電子書
評分
☆☆☆☆☆
評分
☆☆☆☆☆
##與Bob大叔的一次促膝長談。雖然距離看完這本書已經過去挺久瞭,但是對開篇提到的兩點還是記憶猶新,第一是學會說不,不要抱著“試試看”的想法去評估風險,以免消耗彆人對你的信任;第二是學會說是,當你給齣肯定迴答時,應該使用承諾用語,以確保溝通沒有gap。在這兩點之後,Bob大叔纔開始和你談關於編碼的基礎能力、測試驗收、時間管理、壓力應對、團隊方麵的心得和教訓。
評分
☆☆☆☆☆
評分
☆☆☆☆☆
##我就想問“譯者序2”寫的是個什麼鬼東西?這種科技類書你給整齣個陰,陽啊什麼的,是在欺負Borb大叔看不懂中文嗎?你對科技有敬畏之心嗎? 我就想問“譯者序2”寫的是個什麼鬼東西?這種科技類書你給整齣個陰,陽啊什麼的,是在欺負Borb大叔看不懂中文嗎?你對科技有敬畏之心嗎...
評分
☆☆☆☆☆
##與Bob大叔的一次促膝長談。雖然距離看完這本書已經過去挺久瞭,但是對開篇提到的兩點還是記憶猶新,第一是學會說不,不要抱著“試試看”的想法去評估風險,以免消耗彆人對你的信任;第二是學會說是,當你給齣肯定迴答時,應該使用承諾用語,以確保溝通沒有gap。在這兩點之後,Bob大叔纔開始和你談關於編碼的基礎能力、測試驗收、時間管理、壓力應對、團隊方麵的心得和教訓。
評分
☆☆☆☆☆
##技術高手就是專業人士嗎?未必!這之間差著一個“職業素養”。分14個項目,對比著告訴讀者,專業人士怎麼做。全書沒有代碼,假藉程序員之名,寫給所有的職場人
評分
☆☆☆☆☆
##這本書通讀完瞭,這篇心得聊聊這麼些問題。 為什麼TDD(測試驅動開發)雖好,但卻難以推動? 流態區,作者提齣瞭跟《心流》一書中完全相反的觀點,更換瞭我的認知。 時間管理跟很重要,但畢竟作者是搞開發的,加上篇幅的原因,沒有談到時間管理的本質。 會議和溝通,不能忽視。 ...
評分
☆☆☆☆☆
評分
☆☆☆☆☆
##專業主義 1.精進技藝,保持時間上的投入,保持關注 2.負責,為製造的bug負責,而不是抱著“人非聖賢孰能無過”的態度 充足的測試用例->對修改代碼沒有恐懼->經常性的改善代碼->高質量代碼 說“不” 和 說“是” 不要說試試看,給齣明確答案,“是”或者“否 敢於說“不(提齣...