程序員的職業素養 (The Clean Coder:A Code of Conduct for Professional Programmers)

[美] Robert C·Martin 章顯洲 / 餘晟

  • 出版商: 人民郵電
  • 出版日期: 2012-09-01
  • 定價: $294
  • 售價: 6.4$188
  • 語言: 簡體中文
  • 頁數: 178
  • 裝訂: 平裝
  • ISBN: 7115291578
  • ISBN-13: 9787115291578
  • 相關分類: Engineer self-growth程式語言
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

本書是編程大師Bob 大叔40 餘年編程生涯的心得體會, 講解成為真正專業的程序員需要什麼樣的態度、原則,需要採取什麼樣的行動。作者以自己以及身邊的同事走過的彎路、犯過的錯誤為例,意在為後來人引路,助其職業生涯邁上更高台階。

作者簡介

Robert C. Martin,世界級軟件開發大師,設計模式和敏捷開發先驅,敏捷聯盟首任主席,C++ Report 前主編,被後輩程序員尊稱為“Bob大叔”。20世紀70年代初成為職業程序員,後創辦Object Mentor公司並任總裁。Martin還是一名多產的作家,至今已發表數百篇文章、論文和博客,除本書外,還著有《代碼整潔之道》、《敏捷軟件開發:原則、模式和實踐》、《UML :Java程序員指南》等。他最近創辦了cleancoders.com網站,專為軟件開發人員提供教育視頻。

目錄大綱

第1章專業主義1
1.1清楚你要什麼2
1.2擔當責任2
1.3首先,不行損害之事4
1.3.1不要破壞軟件功能4
1.3.2不要破壞結構7
1.4職業道德8
1.4.1了解你的領域10
1.4.2堅持學習11
1.4.3練習11
1.4.4合作12
1.4.5輔導12
1.4.6了解業務領域13
1.4.7與雇主/客戶保持一致13
1.4.8謙遜13
1.5參考文獻14

第2章說“不” 15
2.1對抗角色17
2.2高風險時刻20
2.3要有團隊精神22
2.3.1試試看24
2.3.2消極對抗25
2.4說“是”的成本27 4.5.2開車回家路上61
2.5如何寫出好代碼34

第3章說“是” 37
3.1承諾用語39
3.1.1識別“缺乏承諾”的徵兆40
3.1.2真正的承諾聽起來是怎樣的41
3.1.3總結43
3.2學習如何說“是” 43
3.2.1 “試試”的另一面43
3.2.2堅守原則44
3.3結論47

第4章編碼48
4.1做好準備49
4.1.1凌晨3點寫出的代碼50
4.1.2焦慮時寫下的代碼51
4.2流態區53
4.2.1音樂54
4.2.2中斷55
4.3阻塞55
4.4調試57
4.5保持節奏60
4.5.1知道何時應該離開一會60 4.5.3洗澡61 4.6進度延遲61
4.6.1期望62
4.6.2盲目衝刺62
4.6.3加班加點63
4.6.4交付失誤63
4.6.5定義“完成” 64
4.7幫助64
4.7.1幫助他人64
4.7.2接受他人的幫助65
4.7. 3輔導66
4.8參考文獻66

第5章測試驅動開發67
5.1此事已有定論69
5.2 TDD的三項法則69
5.3 TDD的優勢70
5.3.1確定性70
5.3.2缺陷注入率71
5.3.3勇氣71
5.3.4文檔72
5.3.5設計72
5.3.6專業人士的選擇73 5.5參考文獻74 第6章練習75 6.1引子75
5.4 TDD的局限73

6.1.1 10的22次方76
6.1.2轉變77
6.2編程柔道場79
6.2.1卡塔80
6.2.2瓦薩81
6.2.3自由練習81
6.3自身經驗的拓展82
6.3.1開源82
6.3. 2關於練習的職業道德82
6.4結論83
6.5參考文獻83

第7章驗收測試84
7.1需求的溝通84
7.1.1過早精細化86
7.1.2遲來的模糊性87
7.2驗收測試89
7.2.1 “完成”的定義89
7.2.2溝通91
7.2.3自動化92 7.2.5驗收測試什麼時候寫,由誰來寫93 7.2.6開發人員的角色94 7.2.7測試的協商與被動推進95
7.2.4額外工作93
7.2.8驗收測試和單元測試96
7.2.9圖形界面及其他復雜因素97
7.2.10持續集成98
7.3結論98

第8章測試策略99
8.1 QA應該找不到任何錯誤100
8.1.1 QA也是團隊的一部分100
8.1.2需求規約定義者100
8.1.3特性描述者100
8.2自動化測試金字塔101
8.2.1單元測試101
8.2.2組件測試102
8.2.3集成測試103
8.2.4系統測試104
8.2.5人工探索式測試104
8.3結論105
8.4參考文獻105

第9章時間管理106
9.1會議107
9.1.1拒絕107
9.1.2離席108
9.1.3確定議程與目標109
9.1.4立會109
9.1.5迭代計劃會議109
9.1.6迭代回顧和DEMO展示110
9.1.7爭論/反對110
9.2注意力點數111
9.2.1睡眠112
9.2.2咖啡因112
9.2.3恢復112
9.2.4肌肉注意力112
9.2.5輸入與輸出113
9.3時間拆分和番茄工作法113
9.4要避免的行為114
9.5死胡同115
9.6泥潭115
9.7結論116

第10章預估117
10.1什麼是預估119
10.1.1承諾119
10.1.2預估120
10.1.3暗示性承諾121
10.2 PERT 122
10.3預估任務125
10.4大數定律127
10.5結論127 12.1.2程序員與程序員140
10.6參考文獻128

第11章壓力129
11.1避免壓力131
11.1.1承諾131
11.1.2保持整潔132
11.1.3危機中的紀律132
11.2應對壓力133
11.2.1不要驚慌失措133
11.2.2溝通133
11.2. 3依靠你的紀律原則133
11.2.4尋求幫助134
11.3結論134
第12章協作135
12.1程序員與人137
12.1.1程序員與雇主137

12.2小腦142
12.3結論143
第13章團隊與項目144
13.1只是簡單混合嗎144
13.1.1有凝聚力的團隊145
13.1.2如何管理有凝聚力的團隊146
13.1.3項目承包人的困境147
13.2結論148
13.3參考文獻148

第14章輔導、學徒期與技藝149
14.1失敗的學位教育149
14.2輔導150
14.2.1 DIGI-COMP I,我的第一台計算機150
14.2.2高中時代的ECP-18 152
14.2.3非常規輔導154
14.2.4艱難的錘煉155
14.3學徒期156
14.3.1軟件學徒期158
14.3.2現實情況159
14.4技藝160
14.5結論161
附錄工具162