程式設計師的底層思維

程式設計師的底層思維

《程式設計師的底層思維》是2022年電子工業出版社出版的圖書,作者是張建飛。

基本介紹

  • 書名:程式設計師的底層思維
  • 作者:張建飛
  • 出版社:電子工業出版社
  • 出版時間:2022年2月1日
  • 頁數:404 頁
  • 定價:129 元 
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787121429774
內容簡介,圖書目錄,作者簡介,

內容簡介

本書涵蓋程式設計師應知應會的16種思維能力,共18章,分為三部分。第一部分主要介紹抽象思維、邏輯思維、結構化思維、批判性思維、維度思維、分類思維、分治思維、簡單思維,以及成長型思維等解決日常問題的基礎思維能力。第二部分結合軟體行業的特點,主要介紹解耦思維、契約思維、模型思維、工具化思維、量化思維、數據思維,以及產品思維等專業思維能力。第三部分主要是對上述思維能力的綜合運用實踐。

圖書目錄

第一部分 基礎思維能力
01 抽象思維 2
1.1 抽象 = 抽離 + 具象 3
1.2 抽象是哲學思維的基礎 4
1.3 語言的抽象性 5
1.4 軟體設計中的抽象 7
1.4.1 面向對象的核心是抽象 7
1.4.2 抽象設計的評判標準 8
1.4.3 抽象缺失之基礎類型偏執 9
1.4.4 抽象缺失之重複代碼 12
1.4.5 抽象設計要完整 14
1.4.6 不要為了抽象而抽象 15
1.5 抽象的層次性 17
1.5.1 對抽象層次的權衡 17
1.5.2 軟體中的分層抽象 20
1.5.3 強制類型轉換中的抽象層次問題 22
1.5.4 抽象層次一致性原則 24
1.6 鍛鍊抽象思維能力 28
1.7 精華回顧 30
參考文獻 30
02 邏輯思維 31
2.1 邏輯就是關係 32
2.2 邏輯三要素之概念 33
2.2.1 概念要明確且清晰 34
2.2.2 制定團隊通用語言 35
2.2.3 管理者的概念技能 36
2.3 邏輯三要素之判斷 37
2.4 邏輯三要素之推理 38
2.4.1 演繹推理:因為,因為,所以 38
2.4.2 歸納推理:從特殊到一般 40
2.4.3 溯因推理:大膽假設,小心求證 41
2.5 邏輯鏈 42
2.5.1 5Why思考法 43
2.5.2 5So思考法 44
2.6 邏輯謬誤 45
2.6.1 偷換概念 46
2.6.2 錯誤假設 46
2.6.3 循環論證 47
2.6.4 以偏概全 48
2.6.5 滑坡謬誤 48
2.7 非理性思考 49
2.8 精華回顧 50
參考文獻 50
03 結構化思維 51
3.1 結構與架構 51
3.2 從無序到有序 52
3.3 金字塔結構 54
3.4 金字塔中的邏輯 57
3.4.1 縱向邏輯關係 58
3.4.2 橫向邏輯關係 60
3.5 如何搭建結構 64
3.5.1 自上而下 65
3.5.2 自下而上 66
3.5.3 上下結合 70
3.6 更多結構思維框架 71
3.7 精華回顧 73
04 批判性思維 74
4.1 理解批判 75
4.2 批判中台 77
4.2.1 中台的底層邏輯 77
4.2.2 業務中台為何低效 77
4.2.3 解決中台的困境 79
4.3 批判架構師 82
4.3.1 尷尬的架構師 83
4.3.2 尷尬的架構部門 83
4.3.3 人人都是架構師 84
4.4 批判技術管理者 85
4.4.1 技術不作為 86
4.4.2 業務不思考 87
4.4.3 脾氣超火爆 87
4.5 自我批判 87
4.6 精華回顧 89
參考文獻 89
05 維度思維 90
5.1 維度究竟是什麼 90
5.2 多維度思考 91
5.3 不做if else程式設計師 93
5.3.1 多態擴展 94
5.3.2 代碼分離 95
5.3.3 矩陣分析 96
5.3.4 殊途同歸 98
5.4 無處不在的矩陣分析 99
5.4.1 波士頓矩陣 99
5.4.2 訂單要素分析 100
5.4.3 RFM模型 101
5.4.4 邏輯推理中的矩陣 103
5.4.5 相關係數矩陣 104
5.5 設計模式中的維度思維 105
5.6 組織管理中的維度思維 109
5.6.1 人員分工矩陣 109
5.6.2 人才盤點矩陣 110
5.6.3 需求管理矩陣 110
5.7 精華回顧 111
06 分類思維 112
6.1 分類是本能 112
6.2 分類無處不在 113
6.3 分類的本質 114
6.3.1 尋找共同屬性 114
6.3.2 經典分類與概念聚集分類 115
6.3.3 多種多樣的分類角度 116
6.4 沒有“完美”分類 117
6.5 軟體設計中的分類 118
6.5.1 對象分類 118
6.5.2 構建分類 119
6.5.3 領域分類 121
6.6 組織架構中的分類 122
6.6.1 業務型組織 123
6.6.2 職能型組織 124
6.7 網際網路產業分類 125
6.8 精華回顧 127
參考文獻 128
07 分治思維 129
7.1 分治設計模式 129
7.1.1 管道模式 130
7.1.2 責任鏈模式 133
7.2 分散式系統 138
7.2.1 x軸拆分 139
7.2.2 y軸拆分 140
7.2.3 z軸拆分 140
7.2.4 xyz軸拆分對比 142
7.3 分治算法 142
7.4 解決問題的黃金三步 143
7.5 “分治並”的套用 144
7.5.1 流式計算 145
7.5.2 分散式資料庫 146
7.6 精華回顧 149
參考文獻 149
08 簡單思維 150
8.1 簡化是逆向做功 151
8.1.1 壓縮、隱藏與賦予 151
8.1.2 減少選擇 152
8.1.3 奧卡姆剃刀 155
8.2 幹掉流程引擎 156
8.3 極簡狀態機的實現 157
8.3.1 領域專用語言的分類 158
8.3.2 極簡狀態機的模型設計 159
8.3.3 連貫接口設計 161
8.3.4 無狀態設計 164
8.3.5 極簡狀態機的使用 165
8.4 COLA的壯士斷腕 166
8.5 複雜的產品沒人用 167
8.6 精華回顧 169
09 成長型思維 170
9.1 走過至暗時刻 170
9.2 成長型思維與固定型思維 171
9.3 大腦的可塑性 173
9.4 培養成長型思維 174
9.4.1 明確努力的意義 175
9.4.2 改變歸因習慣 175
9.4.3 擺脫精神內耗 176
9.4.4 持續精進 178
9.4.5 保持好奇心 179
9.4.6 守住平常心 180
9.4.7 慢也是快 181
9.4.8 掌握表揚的技巧 182
9.5 成功人士的成長型思維 184
9.6 精華回顧 185
第二部分 專業思維能力
10 解耦思維 188
10.1 耦合與解耦 189
10.2 依賴倒置解耦 189
10.2.1 抽象比具體靈活 190
10.2.2 面向接口編程 191
10.2.3 套用與日誌框架的解耦 192
10.3 中間層映射解耦 195
10.3.1 DNS的解耦設計 196
10.3.2 CDN的解耦設計 197
10.4 解耦的技術演化 199
10.5 套用架構中的解耦 201
10.6 精華回顧 204
11 契約思維 205
11.1 軟體設計中的規範 206
11.1.1 命名規範 206
11.1.2 異常處理規範 207
11.1.3 架構規範 210
11.1.4 規範的維護 211
11.2 軟體設計中的標準 212
11.2.1 前端標準化之路 212
11.2.2 Java規範 213
11.2.3 API設計標準 216
11.3 依賴契約的擴展機制 218
11.3.1 基於接口的擴展 218
11.3.2 基於配置數據的擴展 220
11.4 掌握標準制定權 222
11.5 精華回顧 225
參考文獻 225
12 模型思維 226
12.1 模型及其分類 226
12.1.1 物理模型 227
12.1.2 數學模型 227
12.1.3 概念模型 228
12.1.4 思維模型 228
12.1.5 模型不能代替實物 229
12.2 UML建模工具 229
12.2.1 類的UML表示法 231
12.2.2 類的關聯關係 232
12.2.3 類的依賴關係 236
12.2.4 類的泛化關係 237
12.2.5 類與接口的實現關係 238
12.3 領域模型 239
12.3.1 限界上下文 240
12.3.2 上下文映射 241
12.4 領域模型與數據模型 243
12.4.1 錯把領域模型當數據模型 244
12.4.2 錯把數據模型當領域模型 246
12.4.3 兩種模型各司其職 248
12.5 精華回顧 249
13 工具化思維 251
13.1 你我都是“工具人” 252
13.2 工具化的一般步驟 252
13.3 TestsContainer小工具 253
13.4 組合創新也是創新 258
13.5 ORM工具 261
13.6 基礎設施即代碼 267
13.7 巧用便簽貼 269
13.8 精華回顧 270
參考文獻 270
14 量化思維 271
14.1 量化的步驟 271
14.1.1 定義指標 272
14.1.2 將指標數位化 273
14.1.3 最佳化指標 274
14.2 研發效能度量 275
14.2.1 度量不是“指標遊戲” 275
14.2.2 力求合理的度量 276
14.3 目標管理 278
14.3.1 SMART原則 278
14.3.2 OKR考核指標 279
14.3.3 不要迷信指標 280
14.4 量化網站運營 281
14.5 量化技術貢獻 282
14.6 精華回顧 284
15 數據思維 285
15.1 “精通”數據 285
15.2 數據體系概覽 286
15.2.1 數據源 286
15.2.2 數據倉庫 287
15.2.3 ETL 289
15.2.4 元數據 291
15.2.5 數據套用 292
15.3 數倉建模 292
15.3.1 維度模型 293
15.3.2 事實明細表 295
15.3.3 事實匯總表 297
15.4 數據產品平台 299
15.4.1 看我情 300
15.4.2 看行情 301
15.4.3 看敵情 301
15.5 用數據說話 302
15.6 精華回顧 303
16 產品思維 304
16.1 產品的三要素 305
16.1.1 用戶 305
16.1.2 需求 305
16.1.3 場景 306
16.2 產品的分類 306
16.2.1 用戶關係角度 307
16.2.2 用戶需求角度 307
16.2.3 用戶類型角度 307
16.2.4 產品形態角度 308
16.3 產品架構 308
16.4 產品化 310
16.5 平台化 312
16.5.1 企業平台化 312
16.5.2 平台化建設 314
16.5.3 平台產品化 316
16.6 精華回顧 318
第三部分 思維能力的綜合套用
17 我的商品團隊之旅 322
17.1 落地新團隊 323
17.1.1 熟悉人 324
17.1.2 熟悉業務 325
17.1.3 熟悉技術 328
17.1.4 熟悉文化 328
17.2 深入商品領域 329
17.2.1 領域概念 330
17.2.2 概念模型 336
17.2.3 產品架構 338
17.3 商品上架重構 340
17.3.1 複雜的商品上架流程 340
17.3.2 無用的流程引擎 341
17.3.3 問題的本質在於結構 342
17.3.4 結構化分解後的問題 345
17.4 複雜業務應對之道 348
17.4.1 上下結合 348
17.4.2 能力下沉 349
17.5 精華回顧 352
參考文獻 352
18 COLA的演進過程 353
18.1 COLA 1.0 354
18.1.1 複雜度來自哪裡 354
18.1.2 COLA 1.0的設計 356
18.1.3 COLA 1.0的整體架構 365
18.2 COLA 2.0 366
18.2.1 新架構分層 366
18.2.2 新組件劃分 367
18.2.3 新擴展點設計 369
18.2.4 新二方庫定位 371
18.3 COLA 3.0 375
18.3.1 去掉Command 375
18.3.2 去掉Interceptor 377
18.3.3 去掉Validator等 377
18.3.4 最佳化類掃描 378
18.3.5 用Adatper代替Controller 378
18.4 COLA 4.0 379
18.4.1 架構的頂層設計 379
18.4.2 技術維度與領域維度的劃分 381
18.4.3 COLA組件 383
18.4.4 COLA 4.0的改動點 383
18.5 如何使用COLA 386
18.6 精華回顧 388
後記 389

作者簡介

張建飛,阿里巴巴前高級技術專家,目前在某大廠擔任軟體教練。作者於2007年計算機工程碩士畢業後,先後在國內外知名網際網路企業擔任高級研發和技術專家,有著豐富的一線研發、套用架構和領域建模經驗。
作者提倡“工匠精神”,曾獲阿里巴巴新零售技術部2019年“極致匠心獎”,並憑藉《代碼精進之路:從碼農到工匠》一書獲得2019年人民郵電出版社“IT類影響力作者”稱號。
作者開源的COLA套用架構是國內頗具影響力的DDD架構之一,在GitHub上的Star數量超過6100。同時,COLA也是阿里雲的官方推薦架構,被廣泛套用於國內各大套用系統中。

相關詞條

熱門詞條

聯絡我們