本書是一本獨特的成長紀(jì)實,以計算機專業(yè)研究生小海的視角,帶領(lǐng)讀者推開H 公司上海研發(fā)中心的大門,親歷一場從象牙塔到職業(yè)開發(fā)的蛻變之旅。本書避免枯燥的理論堆砌,也避免代碼講解的細枝末節(jié),而是通過小海跌宕起伏的職場故事,將企業(yè)級軟件開發(fā)的全景圖徐徐展開——那些藏在代碼背后的商業(yè)邏輯、跨團隊協(xié)作的暗礁險灘,以及技術(shù)人員在功能與性能、安全與成本間的權(quán)衡智慧,都在鮮活的場景中一一呈現(xiàn)。 本書以小海的入職經(jīng)歷開始,讀者會陪伴小海學(xué)習(xí)上手編程、軟件設(shè)計、質(zhì)量保障、安全合規(guī)、敏捷開發(fā)等內(nèi)容。本書采用場景化的敘事讓技術(shù)落地,如"夏令時時間顯示錯亂”"移動端病假申請與保險理賠集成”等;本書用實戰(zhàn)經(jīng)驗構(gòu)建知識體系,如代碼層面的"榮辱觀”、架構(gòu)設(shè)計的系統(tǒng)思維等。不僅告訴讀者"做什么”和"怎么做”,更深入剖析"為什么”——這是給計算機學(xué)子和職場新人的轉(zhuǎn)型指南,也是給技術(shù)人員的全景地圖。在AI 重塑世界的今天,書中傳遞的系統(tǒng)性思維與平衡藝術(shù),正是開發(fā)者從"碼農(nóng)”蛻變?yōu)?架構(gòu)師”的關(guān)鍵鑰匙。
朱征宇,上海流程智造科技創(chuàng)新研究院常務(wù)副院長,致力于打造國產(chǎn)自主的工業(yè)軟件產(chǎn)品。曾任惠普公司上海全球軟件研發(fā)中心負責(zé)人,主導(dǎo)研發(fā)全球領(lǐng)先的企業(yè)級軟件產(chǎn)品。
目錄
第1 章 入職經(jīng)歷 / 1
1.1 本章導(dǎo)讀 / 1
1.2 實習(xí)的機會 / 1
1.2.1 崗位描述 / 2
1.2.2 匹配技能 / 3
1.2.3 補齊短板 / 5
1.3 緊張的面試 / 10
1.3.1 電話面試 / 10
1.3.2 進入筆試 / 13
1.3.3 技術(shù)面試 / 15
1.3.4 HR 面試 / 18
1.3.5 入職準(zhǔn)備 / 20
1.4 終于入職了 / 22
1.4.1 入職培訓(xùn) / 22
1.4.2 辦公環(huán)境 / 24
1.4.3 內(nèi)部分享 / 25
1.4.4 代碼榮辱觀 / 26
1.5 加入開發(fā)小組 / 27
1.5.1 小組的成員 / 27
1.5.2 列席每日站會 / 29
1.6 開發(fā)產(chǎn)品的使用場景 / 31
1.6.1 靈活的數(shù)據(jù)同步引擎 / 33
1.6.2 跨平臺的消息中樞 / 34
1.6.3 新老系統(tǒng)的應(yīng)用遷移 / 36
1.7 配置開發(fā)環(huán)境 / 37
1.7.1 云端開發(fā)環(huán)境 / 37
1.7.2 代碼構(gòu)建工具 / 40
1.7.3 自動測試工具 / 41
1.7.4 開發(fā)協(xié)作工具 / 43
第2 章 上手編程 / 45
2.1 本章導(dǎo)讀 / 45
2.2 修改缺陷 / 46
2.2.1 夏令時切換導(dǎo)致顯示錯亂 / 46
2.2.2 夏令時切換導(dǎo)致調(diào)度混亂 / 50
2.2.3 夏令時切換導(dǎo)致風(fēng)控系統(tǒng)報警 / 53
2.2.4 統(tǒng)一時間格式的重構(gòu) / 56
2.3 開發(fā)新功能 / 59
2.3.1 發(fā)掘真正的需求 / 59
2.3.2 從需求到設(shè)計 / 60
2.3.3 通用性 / 64
2.3.4 可配置的元數(shù)據(jù) / 65
2.3.5 分層設(shè)計 / 68
2.3.6 安全漏洞 / 70
2.3.7 性能 / 72
2.3.8 可觀測性 / 75
2.3.9 可維護性 / 78
第3 章 軟件設(shè)計 / 81
3.1 本章導(dǎo)讀 / 81
3.2 設(shè)計原則 / 82
3.2.1 設(shè)計原則的必要性 / 82
3.2.2 通用設(shè)計原則 / 83
3.2.3 反模式設(shè)計原則 / 87
3.2.4 架構(gòu)設(shè)計原則 / 92
3.2.5 面向?qū)ο笤O(shè)計原則 / 96
3.2.6 設(shè)計演進原則 / 98
3.2.7 設(shè)計模式的準(zhǔn)則 / 100
3.2.8 分布式設(shè)計原則 / 103
3.2.9 十二要素應(yīng)用 / 107
3.2.10 思考和閱讀 / 110
3.3 軟件架構(gòu) / 110
3.3.1 以客戶端/服務(wù)器為基礎(chǔ)的架構(gòu)拓展 / 110
3.3.2 基于微服務(wù)和云原生的架構(gòu) / 114
3.3.3 數(shù)據(jù)存儲和查詢 / 117
3.3.4 常用的中間件 / 123
3.3.5 思考和閱讀 / 129
3.4 技術(shù)選型 / 130
3.4.1 技術(shù)要求 / 130
3.4.2 技術(shù)選型的要素 / 132
3.4.3 后端技術(shù)棧 / 135
3.4.4 前端技術(shù)棧 / 139
3.4.5 數(shù)據(jù)庫技術(shù)棧 / 141
3.4.6 思考和閱讀 / 143
3.5 設(shè)計實現(xiàn) / 143
3.5.1 組件視圖 / 143
3.5.2 部署視圖 / 145
3.5.3 數(shù)據(jù)視圖 / 148
3.6.4 后端設(shè)計 / 150
3.6.5 API 設(shè)計 / 155
3.6.6 前端設(shè)計 / 157
3.6.7 設(shè)計示例 / 162
3.6.8 思考和閱讀 / 166
第4 章 質(zhì)量保障 / 167
4.1 本章導(dǎo)讀 / 167
4.2 質(zhì)量的本質(zhì) / 168
4.2.1 質(zhì)量內(nèi)建的全流程管控 / 168
4.2.2 質(zhì)量的動態(tài)性 / 171
4.2.3 質(zhì)量與效率 / 172
4.2.4 質(zhì)量與風(fēng)險 / 172
4.2.5 思考和閱讀 / 174
4.3 軟件質(zhì)量的標(biāo)準(zhǔn) / 174
4.3.1 功能適用性 / 174
4.3.2 性能效率 / 176
4.3.3 兼容性 / 179
4.3.4 交互能力 / 181
4.3.5 可靠性 / 188
4.3.6 軟件安全性 / 192
4.3.7 可維護性 / 197
4.3.8 靈活性 / 201
4.3.9 思考和閱讀 / 205
4.4 可測試性 / 206
4.4.1 可測試性面臨的挑戰(zhàn) / 206
4.4.2 可測試性設(shè)計的核心價值 / 207
4.4.3 可測試性的四個維度 / 207
4.4.4 分級可測試性實踐 / 208
4.4.5 思考和閱讀 / 210
4.5 測試的左移和右移 / 210
4.5.1 測試的左移 / 210
4.5.2 測試的右移 / 213
4.5.3 思考和閱讀 / 216
4.6 測試方法 / 217
4.6.1 常見的測試方法 / 217
4.6.2 流量回放 / 221
4.6.3 精準(zhǔn)測試 / 222
4.6.4 變異測試 / 224
4.6.5 服務(wù)虛擬化 / 226
4.6.6 思考和閱讀 / 227
4.7 性能工程 / 228
4.7.1 性能測試 / 228
4.7.2 全鏈路壓測 / 229
4.7.3 全鏈路壓測的挑戰(zhàn) / 232
4.7.4 DevPerfOps全流程 / 233
4.7.5 思考和閱讀 / 235
4.8 混沌工程 / 236
4.8.1 混沌工程的常見誤區(qū) / 236
4.8.2 混沌工程實施原則 / 238
4.8.3 實施混沌工程的步驟 / 239
4.8.4 思考和閱讀 / 240
4.9 大模型時代的質(zhì)量 / 241
4.9.1 大模型對傳統(tǒng)軟件質(zhì)量的提升 / 241
4.9.2 大模型時代的技術(shù)質(zhì)量風(fēng)險 / 244
4.9.3 大模型時代的質(zhì)量應(yīng)對策略 / 246
4.9.4 集成中間件的質(zhì)量提升新場景 / 249
4.9.5 思考和閱讀 / 250
第5 章 安全合規(guī) / 251
5.1 本章導(dǎo)讀 / 251
5.2 小海的噩夢 / 252
5.3 大張的安全日記 / 253
5.3.1 權(quán)限的“漿糊” / 253
5.3.2 服務(wù)端的“暗箭” / 254
5.3.3 加密“翻車”了 / 254
5.3.4 注入“攻擊” / 255
5.3.5 設(shè)計“陷阱” / 256
5.3.6 配置的“雷區(qū)” / 257
5.3.7 身份認(rèn)證“失靈” / 258
5.3.8 完整性“崩塌” / 259
5.3.9 “虛設(shè)”的監(jiān)控 / 260
5.3.10 第三方“惹禍” / 261
5.3.11 思考和閱讀 / 263
5.4 大張的“軟件安全寶典” / 263
5.4.1 基本原則 / 263
5.4.2 進階心法 / 266
5.4.3 縱深防御:綜合的安全防御體系 / 272
5.4.4 安全的終極公式 / 276
5.4.5 思考和閱讀 / 277
5.5 全流程安全工程 / 277
5.5.1 安全面臨的挑戰(zhàn) / 278
5.5.2 DevSecOps 支持全流程安全工程 / 278
5.6 安全需求分析 / 280
5.6.1 風(fēng)險 / 280
5.6.2 合規(guī) / 283
5.6.3 安全需求的清單 / 285
5.6.4 思考和閱讀 / 287
5.7 威脅建模手冊 / 287
5.7.1 威脅建模 / 287
5.7.2 威脅識別 / 288
5.7.3 威脅分析 / 290
5.7.4 防御戰(zhàn)術(shù) / 291
5.7.5 安全與體驗的平衡 / 293
5.7.6 思考和閱讀 / 294
5.8 安全設(shè)計與編程 / 295
5.8.1 身份認(rèn)證 / 295
5.8.2 權(quán)限管理 / 299
5.8.3 安全審計 / 302
5.8.4 思考和閱讀 / 304
5.9 安全測試指南
5.9.1 安全測試的核心理念 / 305
5.9.2 靜態(tài)應(yīng)用程序安全測試 / 305
5.9.3 動態(tài)應(yīng)用程序安全測試 / 306
5.9.4 第三方依賴庫的漏洞掃描 / 309
5.9.5 模糊測試 / 310
5.9.6 滲透測試 / 311
5.9.7 交互式應(yīng)用安全測試 / 312
5.9.8 思考和閱讀 / 313
5.10 軟件供應(yīng)鏈安全 / 313
5.10.1 軟件供應(yīng)鏈安全是什么 / 313
5.10.2 第三方依賴庫的雙刃劍 / 315
5.10.3 代碼簽名和驗證 / 317
5.10.4 供應(yīng)鏈攻擊的“狡猾手段” / 318
5.10.5 軟件供應(yīng)鏈安全的“防御寶典” / 319
5.10.6 思考和閱讀 / 321
5.11 大模型時代的安全 / 322
5.11.1 大模型對傳統(tǒng)軟件安全的助力 / 322
5.11.2 大模型時代的技術(shù)風(fēng)險 / 323
5.11.3 大模型時代的合規(guī)困境 / 325
5.11.4 大模型的安全應(yīng)對策略 / 326
5.11.5 集成中間件的應(yīng)用新場景 / 329
5.11.6 思考和閱讀 / 330
第6 章 敏捷開發(fā) / 331
6.1 本章導(dǎo)讀 / 331
6.2 糖果小鎮(zhèn)的敏捷轉(zhuǎn)型 / 332
6.2.1 糖果小鎮(zhèn)的童話故事 / 332
6.2.2 糖果小鎮(zhèn)的魔法手冊 / 335
6.3 軟件開發(fā)的工程實踐 / 340
6.3.1 熱鬧的工程世界 / 340
6.3.2 軟件工程的獨特魅力 / 343
6.3.3 項目制開發(fā)與產(chǎn)品式開發(fā) / 345
6.3.4 思考和閱讀 / 347
6.4 敏捷背后的社會學(xué)密碼 / 347
6.4.1 康威定律的神奇魔力 / 347
6.4.2 兩個披薩團隊的奧秘 / 348
6.4.3 鄧巴數(shù)的啟示 / 349
6.4.4 人月神話的反思 / 350
6.4.5 思考和閱讀 / 351
6.5 敏捷隱含的經(jīng)濟學(xué)智慧 / 351
6.5.1 軟件產(chǎn)品的價值 / 351
6.5.2 機會成本的取舍之道 / 353
6.5.3 擁抱變化與沉沒成本的抉擇 / 354
6.5.4 神奇的邊際效應(yīng) / 355
6.5.5 敏捷里的時間價值 / 356
6.5.6 思考和閱讀 / 358
6.6 軟件產(chǎn)品的定位 / 359
6.6.1 軟件產(chǎn)品的客戶 / 359
6.6.2 軟件產(chǎn)品的用戶 / 360
6.6.3 軟件產(chǎn)品的競爭者 / 363
6.6.4 軟件產(chǎn)品差異化的認(rèn)知提升 / 364
6.6.5 軟件產(chǎn)品差異化的構(gòu)建要素 / 365
6.6.6 軟件產(chǎn)品差異化的實施路徑 / 366
6.6.7 思考和閱讀 / 367
6.7 軟件的生命周期 / 368
6.7.1 軟件技術(shù)生命周期的不同階段 / 368
6.7.2 軟件產(chǎn)品生命周期的不同階段 / 370
6.7.3 創(chuàng)新者的窘境 / 372
6.7.4 軟件開發(fā)的生命周期 / 372
6.7.5 思考和閱讀 / 374
6.8 大規(guī)模敏捷開發(fā) / 374
6.8.1 為什么需要SAFe / 375
6.8.2 金州勇士隊vs SAFe實踐 / 376
6.8.3 SAFe 的四層結(jié)構(gòu) / 379
6.8.4 常見的陷阱 / 379
6.8.7 思考和閱讀 / 382
第7 章 后記 / 384
7.1 小海的成長軌跡 / 384
7.2 從校園到職場的技術(shù)試煉場 / 385
7.3 職業(yè)發(fā)展的不同路徑 / 389
7.3.1 產(chǎn)品經(jīng)理的艱難抉擇 / 389
7.3.2 架構(gòu)師的沖鋒陷陣 / 394