预购商品
书目分类
特别推荐
第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
克里斯蒂安·邁爾(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”系列圖書。
客服公告
热门活动
订阅电子报