整潔代碼的藝術 The Art of Clean Code: Best Practices to Eliminate Complexity and Simplify Your Life

Christian Mayer 韓磊,嚴敏,馬飛雄 譯

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

商品描述

大多數軟件開發人員在復雜的代碼上浪費了大量的時間。
《整潔代碼的藝術》提出的九大原則將教會您如何編寫清晰、可維護且功能完備的代碼。
本書的指導原則很簡單:縮減和簡化,將精力投入到重要的工作上,省下大量的時間,卸下代碼維護的重擔。
熱銷書作者克里斯蒂安·邁爾在本書中利用他的經驗幫助許多程序員完善他們的編碼技能。
他給出專業建議和真實例子,展示如何:利用80/20原則,專注於重要任務—— 要緊的那20%代碼;
避免孤立編碼,創建小可行產品,獲得早期反饋;編寫整潔、簡單的代碼,排除混亂;
避免導致代碼過度複雜的過早優化;平衡您的目標、能力與反饋,達到高產出的心流狀態;
應用“做好一件事”哲學, 大地提升代碼功能;利用“少即是多”哲學,設計有效用戶界面;用“專注”原則貫穿所學的這些新技能。
本書採用Python作為示例語言,但以與語言無關的方式呈現概念,適合不同水平的程序員。

作者簡介

Christian Mayer
是Python 網站Finxter 的創辦人。
每年有超過500 萬用戶在Finxter 教育平台上學習寫程序。他擁有計算機科學博士學位,出版過多本圖書,
包括Python One-Liners: Write Concise, Eloquent Python Like a Professional(No Starch Press, 2020)、 
Leaving the Rat Race with Python: An Insider's Guide to Freelance Developing( 2021)和“Coffee Break Python”系列圖書。

目錄大綱

1章複雜性如何危害生產力1
1.1 何為複雜性3
1.2 項目生命週期中的複雜性4
1.2.1 規劃5
1.2.2 定義5
1.2.3 設計6
1.2.4 構建6
1.2.5 測試7
1.2.6 部署9
1.3 軟件和算法理論中的複雜性9
1.4 學習中的複雜性15
1.5 過程中的複雜性17
1.6 日常生活中的複雜性,或謂七零八落18
1.7 小結19
2章80/20原則21
2.1 80/20原則的基礎概念21
2.2 應用軟件優化22
2.3 生產力23
2.4 成功指標26
2.5 專注與帕累托分佈27
2.6 對程序員的意義29
2.6.1 程序員的成功指標30
2.6.2 真實世界中的帕累托分佈31
2.7 帕累托分佈具備分形特徵34
2.8 80/20原則實踐技巧37
2.8.1 找到成功指標37
2.8.2 找到生命中的大目標37
2.8.3 尋找用較少資源成事的方法37
2.8.4 反思自己的成功37
2.8.5 反思自己的失敗38
2.8.6 閱讀更多所在領域的著作38
2.8.7 花費大量時間改進和調優既有產品38
2.8.8 微笑38
2.8.9 不做降低價值的事38
2.9 資料39
3章打造小可行產品41
3.1 問題場景41
3.1.1 失去動力43
3.1.2 分心43
3.1.3 超時43
3.1.4 缺乏回應44
3.1.5 錯誤假設44
3.1.6 不要的複雜性45
3.2 構建小可行產品46
3.2.1 小可行產品的四大要點49
3.2.2 小可行產品的好處50
3.2.3 隱身編程模式與小可行產品手段51
3.3 小結51
4章編寫整潔和簡單的代碼53
4.1 為何要寫整潔代碼53
4.2 編寫整潔代碼的原則55
4.2.1 原則1:心懷全局56
4.2.2 原則2:站到巨人肩上57
4.2.3 原則3:為人寫代碼,而不是為機器寫代碼58
4.2.4 原則4:正確命名59
4.2.5 原則5:一以貫之地遵循標準60
4.2.6 原則6:使用註釋62
4.2.7 原則7:避免非要註釋64
4.2.8 原則8: 小意外原則66
4.2.9 原則9:別重複自己66
4.2.10 原則10:單一權責原則68
4.2.11 原則11:測試71
4.2.12 原則12:小即是美72
4.2.13 原則13:得墨忒耳律74
4.2.14 原則14:您不會需要它78
4.2.15 原則15:別用太多縮進層級79
4.2.16 原則16:使用指標81
4.2.17 原則17:童子軍軍規和重構81
4.3 小結82
5章過早優化是萬惡之源85
5.1 6種過早優化的類型85
5.1.1 優化函數86
5.1.2 優化特性86
5.1.3 優化規劃86
5.1.4 優化可擴展性87
5.1.5 優化測試設計87
5.1.6 優化面向對象世界建設88
5.2 性能調優的6條提示88
5.2.1 先度量再改進89
5.2.2 帕累託為王89
5.2.3 算法優化獲勝91
5.2.4 緩存萬歲92
5.2.5 少即是多94
5.2.6 懂得何時停止95
5.3 小結95
6章心流97
6.1 什麼是心流97
6.2 如何達到心流狀態99
6.2.1 清晰的目標99
6.2.2 反饋機制99
6.2.3 平衡機會與能力100
6.3 給程序員的心流提示101
6.4 小結102
6.5 資料103
7章做好一件事,以及其他Unix原則105
7.1 Unix的崛起105
7.2 Unix哲學概覽106
7.3 15條有用的Unix原則108
7.3.1 每個函數做好一件事108
7.3.2 簡單勝於復雜111
7.3.3 小即是美112
7.3.4 盡快打造原型114
7.3.5 可移植性勝於效率114
7.3.6 在純文本文件中保存數據116
7.3.7 使用軟件槓桿獲得優勢118
7.3.8 避免使用強制式用戶界面119
7.3.9 把每個程序都寫成過濾器123
7.3.10 更差即更好125
7.3.11 整潔代碼勝於機靈代碼125
7.3.12 將程序設計成能與其他程序相連接126
7.3.13 編寫健壯的代碼127
7.3.14 盡量修復——但儘早曝露失敗128
7.3.15 避免手工作——盡量編寫能寫程序的程序129
7.4 小結130
7.5 資料131
8章設計中的少即是多133
8.1 移動電話演進過程中的簡主義133
8.2 搜索中的簡主義134
8.3 擬物設計136
8.4 如何實現簡設計137
8.4.1 留白137
8.4.2 去除設計元素138
8.4.3 移除特性140
8.4.4 減少字體和顏色140
8.4.5 一以貫之141
8.5 小結142
9章專注143
9.1 對抗複雜性的武器143
9.2 統一原則146
9.2.1 80/20原則146
9.2.2 打造小可行產品146
9.2.3 編寫整潔和簡單的代碼146
9.2.4 過早優化是萬惡之源147
9.2.5 心流147
9.2.6 做好一件事(Unix) 147
9.2.7 設計中的少即是多148
9.3 小結148
作者來信149