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