代碼整潔之道 程序員的職業(yè)素養(yǎng) 英文版
定 價:59 元
- 作者:[美]羅伯特·C. 馬。≧obert C. Martin)
- 出版時間:2020/9/1
- ISBN:9787115537362
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.52
- 頁碼:204
- 紙張:
- 版次:01
- 開本:16開
本書是編程大師“鮑勃大叔”40余年編程生涯的心得體會的總結(jié),講解要成為真正專業(yè)的程序員需要具備什么樣的態(tài)度,需要遵循什么樣的原則,需要采取什么樣的行動。作者以自己以及身邊的同事走過的彎路、犯過的錯誤為例,意在為后來者引路,助其職業(yè)生涯邁上更高臺階。
1. 匯聚編程大師"Bob 大叔"40余年編程生涯的心得體會;
2. 闡釋軟件工藝中的原理、技術(shù)、工具和實踐;
3. 助力專業(yè)軟件開發(fā)人員具備令人敬佩的職業(yè)素養(yǎng);
4. 代碼整潔之道CleanCode姐妹篇,中文版豆瓣評分8.7分。
成功的程序員在以往的工作和生活中都曾經(jīng)歷過大大小小的不確定性,承受過永無休止的壓力。他們之所以能夠成功,是因為擁有一個共同點,都深切關(guān)注創(chuàng)建軟件所需的各項實踐。他們將軟件開發(fā)視為一種需要精雕細琢加以修煉的技藝,他們以專業(yè)人士的標準要求自己,他們具有職業(yè)素養(yǎng)。
世界級軟件開發(fā)大師Robert C. Martin在書中介紹了真實軟件技藝中的各項原則、技術(shù)、工具和實踐,展示了怎么以自豪、自尊和自信的心態(tài)進行軟件開發(fā),怎么取得卓越表現(xiàn)和豐碩成果,怎么做到有效溝通和確切估算,怎么以坦誠的心態(tài)面對困難,并引導讀者認識到專業(yè)程序員肩負的責任重大,闡述了什么才是程序員的職業(yè)素養(yǎng)。
書中的具體內(nèi)容包括:
● 成為真正的軟件專業(yè)人士需要具備哪些條件,如何應對彼此沖突又緊張的進度表和不近情理的管理人員;
● 如何做到流暢編程,克服阻塞狀態(tài);
● 如何應對無休止的工作壓力,避免崩潰;
● 如何培養(yǎng)堅持不懈的態(tài)度,如何擁抱新的開發(fā)范式;
● 如何管理好時間,避免身陷泥潭無法自拔;
● 如何培育有利于程序員和開發(fā)團隊茁壯成長的環(huán)境;
● 什么時候應該說“不”,怎么說;
● 什么時候應該說“是”,承諾意味著什么。
優(yōu)秀軟件強大、優(yōu)雅而實用,讓人驚嘆不已,不論是開發(fā)者還是用戶都樂于使用這樣的軟件。它們并非是由機器編寫出來的,而是出自那些對軟件技藝擁有堅定信念的專業(yè)軟件開發(fā)者之手。本書將幫助讀者成為專業(yè)軟件開發(fā)者中的一員,并贏得只有他們才能擁有的榮譽感和成就感。
Robert C. Martin是世界級軟件開發(fā)大師,設(shè)計模式和敏捷開發(fā)先驅(qū),敏捷聯(lián)盟首任主席,C++ Report前主編,被后輩程序員尊稱為“Bob大叔”。20世紀70年代初成為職業(yè)程序員,后創(chuàng)辦Object Mentor公司并任總裁。他還是一名多產(chǎn)的作家,至今已發(fā)表數(shù)百篇文章、論文和博客文章。除本書外,還著有《代碼整潔之道》《敏捷軟件開發(fā):原則、模式和實踐》等。
目 錄
Pre-Requisite Introduction / 必讀引言 1
Chapter 1 Professionalism / 專業(yè)主義 7
Be Careful What You Ask For / 清楚你要什么 8
Taking Responsibility / 擔當責任 8
First, Do No Harm / 首先,不行損害之事 11
Work Ethic 16
Bibliography / 參考文獻 22
Chapter 2 Saying No / 說“不” 23
Adversarial Roles / 對抗角色 26
High Stakes / 高風險時刻 29
Being a “Team Player” / 要有團隊精神 30
The Cost of Saying Yes / 說“是”的成本 36
Code Impossible / 如何寫出好代碼 41
Chapter 3 Saying Yes / 說“是” 45
A Language of Commitment / 承諾用語 47
Learning How to Say “Yes” / 學習如何說“是” 52
Conclusion / 結(jié)論 56
Chapter 4 Coding / 編碼 57
Preparedness / 做好準備 58
The Flow Zone / 流態(tài)區(qū) 62
Writer’s Block / 阻塞 64
Debugging / 調(diào)試 66
Pacing Yourself / 保持節(jié)奏 69
Being Late / 進度延遲 71
Help / 幫助 73
Bibliography / 參考文獻 76
Chapter 5 Test Driven Development / 測試驅(qū)動開發(fā) 77
The Jury Is In / 此事已有定論 79
The Three Laws of TDD / TDD的三項法則 79
What TDD Is Not / TDD的局限 83
Bibliography / 參考文獻 84
Chapter 6 Practicing / 練習 85
Some Background on Practicing / 引子 86
The Coding Dojo / 編程柔道場 89
Broadening Your Experience / 自身經(jīng)驗的拓展 93
Conclusion / 結(jié)論 94
Bibliography / 參考文獻 94
Chapter 7 Acceptance Testing / 驗收測試 95
Communicating Requirements / 需求的溝通 95
Acceptance Tests / 驗收測試 100
Conclusion / 結(jié)論 111
Chapter 8 Testing Strategies / 測試策略 113
QA Should Find Nothing / QA應該找不到任何錯誤 114
The Test Automation Pyramid / 自動化測試金字塔 115
Conclusion / 結(jié)論 119
Bibliography / 參考文獻 119
Chapter 9 Time Management / 時間管理 121
Meetings / 會議 122
Focus-Manna / 注意力點數(shù) 127
Time Boxing and Tomatoes / 時間拆分和番茄工作法 130
Avoidance / 要避免的行為 131
Blind Alleys / 死胡同 131
Marshes, Bogs, Swamps, and Other Messes / 泥潭 132
Conclusion / 結(jié)論 133
Chapter 10 Estimation / 預估 135
What Is an Estimate / 什么是預估 138
PERT 141
Estimating Tasks / 預估任務(wù) 144
The Law of Large Numbers / 大數(shù)定律 147
Conclusion / 結(jié)論 147
Bibliography / 參考文獻 148
Chapter 11 Pressure / 壓力 149
Avoiding Pressure / 避免壓力 151
Handling Pressure / 應對壓力 153
Conclusion / 結(jié)論 155
Chapter 12 Collaboration / 協(xié)作 157
Programmers versus People / 程序員與人 159
Cerebellums / 小腦 164
Conclusion / 結(jié)論 166
Chapter 13 Teams and Projects / 團隊與項目 167
Does It Blend / 只是簡單混合嗎 168
Conclusion / 結(jié)論 171
Bibliography / 參考文獻 171
Chapter 14 Mentoring, Apprenticeship, and Craftsmanship / 輔導、學徒期與技藝 173
Degrees of Failure / 失敗的學位教育 174
Mentoring / 輔導 174
Apprenticeship / 學徒期 180
Craftsmanship / 技藝 184
Conclusion / 結(jié)論 185
Appendix A Tooling / 工具 187
Tools / 工具 189
Source Code Control / 源代碼控制 189
IDE/Editor / 集成開發(fā)環(huán)境/編輯器 194
Issue Tracking / 問題跟蹤 196
Continuous Build / 持續(xù)構(gòu)建 197
Unit Testing Tools / 單元測試工具 198
Component Testing Tools / 組件測試工具 199
Integration Testing Tools / 集成測試工具 200
UML/MDA 201
Conclusion / 結(jié)論 204