內容簡介
本書涵蓋程式設計師應知應會的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
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也是阿里雲的官方推薦架構,被廣泛套用於國內各大套用系統中。