-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
思維整潔之道 編寫與頭腦合拍的卓越代碼 版權信息
- ISBN:9787121483080
- 條形碼:9787121483080 ; 978-7-121-48308-0
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
思維整潔之道 編寫與頭腦合拍的卓越代碼 本書特色
本書提供了實在且實用的建議,幫助讀者以可持續的節奏編寫代碼,同時控制會造成項目失控的復雜性。Mark Seemann總結了數十年間幫助軟件團隊取得成功的經驗,以指導讀者完成從零(一無所有)到部署功能的過程,并展示了如何在添加功能、解決跨領域問題、排除故障和優化系統時保持穩定的節奏。針對各種關鍵問題,從checklist到團隊合作,從封裝到分解,從API設計到單元測試,讀者都可在本書中找到寶貴的思路、實踐技巧、處理流程。
Mark Seemann講解自己洞見的工具是來自完整示例項目中的代碼。這些代碼用C#編寫,目標是對于使用各種面向對象語言(包括Java、C 、TypeScript)的讀者,都做到清晰、實用。如需要進一步探索,讀者可在本書英文原版的官方網站注冊后下載本書的示例代碼和詳細的代碼提交說明。
▲選擇切實有效的認知模型和工作流程,避免糟糕的類比
▲使用checklist解放自己,增加使用已有技能所獲得的產出
▲通過創建并部署垂直切片來應對“分析癱瘓癥”
▲對抗造成代碼腐化和非必要復雜性的力量
▲掌握更實用的改變代碼行為的技術
▲了解更快速、更有效地解決代碼問題的方法
▲更富有成效地看待性能和安全性
思維整潔之道 編寫與頭腦合拍的卓越代碼 內容簡介
軟件開發既需要理論和科學,也需要經驗和手藝。可惜,一直以來許多圖書都只關注前一部分,而忽略了后一部分。Mark的這本書主要關注的就是經驗和手藝的部分。本書既詳細講解了 API 設計、紅綠重構等常用技術,也演示了如何撰寫提交說明、如何修改單元測試,同時對故障定位、代碼閱讀、團隊合作等傳統上被認為“難以說清”的話題,也給出了實用而且精當的建議。難能可貴的是,與其他圖書提供的示例代碼庫不同,本書的示例代碼庫包含了完整的 Git 提交記錄。也就是說,讀者可以按照作者的路徑,一步一個腳印地重溫整個開發過程。
如果你的經驗還不夠豐富,建議嚴格按照作者的講解,認真讀完全書,掌握軟件工程的技巧。如果你已經有足夠的開發經驗,不妨在速覽全書后,精讀自己不熟悉但感興趣的部分。對自己不認同的部分,也不妨花時間了解作者主張的前因后果,讓自己對許多問題有更全面的認知。
全書以 C# 為示范語言,但并沒有用到太多 C# 的專屬特性。面對示例代碼,任何熟悉現代主流面向對象語言的讀者,都可以很容易地理解作者背后的思考。
思維整潔之道 編寫與頭腦合拍的卓越代碼 目錄
第1章 是藝術,還是科學
1.1 蓋房子
1.1.1 項目論之誤
1.1.2 階段論之誤
1.1.3 依賴
1.2 培育花園
1.2.1 花園中的植物為何會生長
1.3 工程
1.3.1 作為手工藝品的軟件
1.3.2 實用性
1.3.3 軟件工程的早期表述
1.3.4 與軟件工程共同進步
1.4 結論
第2章 checklist
2.1 助記工具
2.2 針對新代碼庫的checklist
2.2.1 使用Git
2.2.2 自動化構建
2.2.3 顯示所有錯誤消息
2.3 為已有的代碼庫新增檢查規則
2.3.1 漸進式開發
2.3.2 在組織中“便宜行事”
2.4 結論
第3章 控制復雜性
3.1 目標
3.1.1 可持續性
3.1.2 價值
3.2 為何編程是困難的
3.2.1 人腦類比
3.2.2 讀得多、寫得少的代碼
3.2.3 可讀性
3.2.4 腦力勞動
3.3 關于軟件工程
3.3.1 與計算機科學的關系
3.3.2 人性化代碼
3.4 結論
第4章 垂直切片
4.1 從能使用的軟件開始
4.1.1 從數據入口到數據持久化
4.1.2 *小的垂直切片
4.2 活動骨架
4.2.1 特征測試
4.2.2 預備-執行-斷言
4.2.3 靜態代碼分析的合理尺度
4.3 由外到內
4.3.1 接收JSON
4.3.2 提交預訂請求
4.3.3 單元測試
4.3.4 DTO和領域模型
4.3.5 假對象
4.3.6 Repository接口
4.3.7 Repository中的Create方法
4.3.8 配置依賴關系
4.4 完成切片
4.4.1 schema
4.4.2 SQL Repository
4.4.3 連接數據庫的配置
4.4.4 冒煙測試
4.4.5 使用Fake數據庫的邊界測試
4.5 結論
第5章 封裝
5.1 保存數據
5.1.1 代碼改動優先級的原則
5.1.2 參數化測試
5.1.3 把DTO復制到領域模型中
5.2 驗證
5.2.1 錯誤的日期
5.2.2 紅綠重構
5.2.3 自然數
5.2.4 Postel定律
5.3 保護不變量
5.3.1 恒常有效
5.4 結論
第6章 三角測量
6.1 短期記憶與長期記憶
6.1.1 遺留代碼和記憶
6.2 能力
6.2.1 超訂
6.2.2 惡魔的辯詞
6.2.3 已有的預訂記錄
6.2.4 惡魔的辯詞 vs 紅綠重構
6.2.5 多少測試才算夠
6.3 結論
第7章 分解
7.1 代碼腐化
7.1.1 閾值
7.1.2 圈復雜度
7.1.3 80/24規則
7.2 與思維合拍的代碼
7.2.1 六角花
7.2.2 內聚
7.2.3 依戀情結
7.2.4 類型轉換的代價
7.2.5 解析,而不是驗證
7.2.6 分形架構
7.2.7 清點變量
7.3 結論
第8章 API設計
8.1 API設計原則
8.1.1 預設用法
8.1.2 防錯設計
8.1.3 寫給讀者看的代碼
8.1.4 比起注釋,花更多精力在代碼的命名上
8.1.5 蒙住名字
8.1.6 命令與查詢分離
8.1.7 交流的層次
8.2 API設計實例
8.2.1 領班
8.2.2 與封裝對象交互
8.2.3 實現細節
8.3 結論
第9章 團隊合作
9.1 Git
9.1.1 提交說明
9.1.2 持續集成
9.1.3 小步提交
9.2 代碼的集體所有權
9.2.1 結對編程
9.2.2 團伙編程
9.2.3 code review的延遲
9.2.4 拒絕某個變更集
9.2.5 code review
9.2.6 pull request
9.3 結論
第2部分 由快到穩
第10章 新增代碼
10.1 功能標識
10.1.1 日歷標識
10.2 絞殺榕模式
10.2.1 方法層面的絞殺榕
10.2.2 類層面的絞殺榕
10.3 版本管理
10.3.1 事先警告
10.4 結論
第11章 修改單元測試
11.1 重構單元測試
11.1.1 修改安全網
11.1.2 添加新測試代碼
11.1.3 分開重構測試代碼和生產代碼
11.2 見證測試失敗
11.3 結論
第12章 故障排除
12.1 理解
12.1.1 科學方法
12.1.2 簡化
12.1.3 橡皮鴨法
12.2 缺陷
12.2.1 通過測試重現缺陷
12.2.2 慢速測試
12.2.3 非確定性缺陷
12.3 二分法
12.3.1 用Git完成二分法
12.4 結論
第13章 關注點分離
13.1 組合
13.1.1 嵌套組合
13.1.2 順序組合
13.1.3 引用透明性
13.2 橫切面關注點
13.2.1 日志
13.2.2 裝飾器
13.2.3 日志寫什么
13.3 結論
第14章 節奏
14.1 個人節奏
14.1.1 時間段
14.1.2 休息
14.1.3 有意識地利用時間
14.1.4 盲打
14.2 團隊節奏
14.2.1 定期更新依賴項
14.2.2 安排其他事務
14.2.3 康威定律
14.3 結論
第15章 常見困惑
15.1 性能
15.1.1 歷史負擔
15.1.2 一廂情愿的依托
15.2 安全
15.2.1 STRIDE
15.2.2 欺騙
15.2.3 篡改
15.2.4 否認
15.2.5 信息泄露
15.2.6 拒絕服務
15.2.7 提權
15.3 其他技術
15.3.1 基于屬性的測試
15.3.2 行為代碼分析
15.4 結論
第16章 代碼庫導覽
16.1 導航
16.1.1 看到全局圖景
16.1.2 文件組織
16.1.3 尋找細節
16.2 架構
16.2.1 單體架構
16.2.2 循環依賴
16.3 使用方法
16.3.1 從測試中學習
16.3.2 用心聆聽測試
16.4 結論
附錄A 實踐技巧列表
參考資料
思維整潔之道 編寫與頭腦合拍的卓越代碼 相關資料
放心閱讀這本書吧。仔細讀下去,跟隨Mark無懈可擊的邏輯,把這些實用方法和技巧吸收到你的腦海中。在書中讀到這些寶貴經驗的時候,不妨停下來,認真想一想。這樣,等到有一天你教自己的孫輩編程的時候,可能就不會嚇到他們。
—Robert C. Martin,“整潔之道”Clean系列圖書作者
Mark Seemann以能夠清晰透徹地解釋復雜概念而聞名。在這本書中,他濃縮了自己豐富的軟件開發經驗,將之凝聚為一套實用的、務實的技巧,用于編寫可持續的、對人類友好的代碼。這本書應當成為程序員的案頭書。
——Scott Wlaschin,Domain Modeling Made Functional的作者
對于每一位工程師、每一位技術管理者,我再次鄭重力薦這本《思維整潔之道》,希望每一位致力于提升軟件研發效率與質量的技術人獲得提高!
—“架構師之路”公眾號文章作者 沈劍
閱讀這本書,暗合了Mark反復提起的那句話:“未來已來,只不過是參差而來。”
—“余晟以為”公眾號文章作者 余晟
在軟件領域,我們站在前人的肩膀上前進。Mark 的經驗豐富,涉獵廣泛,上至哲學和組織的宏觀思考,下至寫代碼的微觀細節。這本書讓這些經驗為你所用。去讀吧。”
—Adam Ralph,演講者、導師、低代碼平臺開發者,供職于 Particular Software
“我閱讀 Mark 的博客已有多年,他總能提供深入的技術見解,又不失趣味。這本書仍然如此。對任何希望更上一層樓的開發人員來說,這本書都是一筆寶貴的資源。”
—Adam Tornhill,CodeScene 創始人,Software Design X-Rays 和 Your Code as a Crime Scene 的作者
“這本書最合我心意的是,它只用了一個代碼庫作為示例。你不必再四處下載單獨的示例代碼,而可以一次性得到包含完整應用程序的 Git 倉庫。代碼庫的歷史保留了工作痕跡,用來展示不斷演進的代碼以及書中解釋的概念。閱讀到某個特定的原理或技術時,你會發現它直接引用了某次提交,在實踐中證明了該原理或技術。當然,你也可以按照自己的喜好瀏覽歷史記錄,在任何節點駐足檢查、
調試,甚至試驗代碼。我從沒有在哪本書中看到過這樣便利的交互,這讓我享受到一種特別的愉悅,因為它以建設性的全新方式展示了 Git 的獨到設計。”
—Enrico Campidoglio,獨立顧問、演講者、在線教育網站 Pluralsight 的課程作者
“Mark Seemann 不僅在大型系統的架構設計和軟件構造方面擁有數十年的豐富經驗,對于如何擴展和管理此類系統與構建團隊之間的復雜關系,他也是最著名的思考者之一。”
—Mike Hadlow,獨立軟件顧問、博客作者
“Mark 說過‘成功的軟件經久不衰’,這本書將助力你寫出這樣的軟件。”
—Bryan Hogan,軟件架構師、播客主播、博客作者
“Mark 的能力超群,能啟發他人深入思考軟件開發行業 / 職業。每次跟他合作完成 .NET Rocks !的訪談,我都意識到,必須把自己的節目重聽一遍,才能真正理解我們所討論的一切。”
—Richard Campbell,.NET Rocks !播客聯席主播
如果你曾經經歷過糟糕的項目,或被迫應對難以維護的遺留代碼,這些指引會讓你的下一個和之后的每一個項目都變得更好。
思維整潔之道 編寫與頭腦合拍的卓越代碼 作者簡介
Mark Seemann 是一位平庸的經濟學家,于是他改行當了程序員。從 20 世紀 90 年代起,他一直在開發 Web 和企業應用。Mark 年輕的時候想成為搖滾明星,然而不幸的是他既沒有音樂天賦,也沒有搖滾明星的長相—不過陰差陽錯,他現在成了搖滾明星級別的王牌開發者。他寫的一本關于依賴注入的書獲得了Jolt大獎,他還做過 100 余場國際會議演講,并給在線教育網站 Pluralsight 和 Clean Coders 錄制過視頻課程。從 2006 年開始,他一直定期更新博客。現在,他和妻子以及兩個孩子一起住在丹麥首都哥本哈根。
余晟,知名互聯網自媒體創作人,歷任抓蝦網主力程序員盛大創新院高級研究員,廣州某外貿公司技術總監,滬江教育科技集團技術中心高級研發總監。在互聯網行業有超過十五年的開發經驗,涉足傳媒、電商、教育等眾多行業,帶領團隊參與過多個國際合作項目,在跨國業務方面有一定經驗。其寫作的《正則指引》和獨譯的《精通正則表達式(第三版)》廣為流傳。
- >
經典常談
- >
自卑與超越
- >
羅曼·羅蘭讀書隨筆-精裝
- >
李白與唐代文化
- >
名家帶你讀魯迅:故事新編
- >
大紅狗在馬戲團-大紅狗克里弗-助人
- >
莉莉和章魚
- >
推拿