開發(fā)經理
互聯(lián)網
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

編碼修行與Code KATA

Bruce Zhang

前ThoughtWorks 架構師、敏捷教練

先后就職于中興通訊、惠普 GDCC、中軟國際、ThoughtWorks 等?大型中外企
業(yè),任職?角?色為?高級軟件?工程師,架構師,技術總監(jiān),?首席咨詢師?,F(xiàn)為深圳?
大眼科技有限公司的?首席架構師,聯(lián)合創(chuàng)始?人。精通包括 C#、Java、Ruby、Scala、
Python、JavaScript 等多種語?言,熟練掌握?面向對象思想、領域驅動設計、函數(shù)式語
?言、架構、?大數(shù)據(jù)分析、敏捷與過程改進,并致?力于?大型軟件企業(yè)的?面向服務系
統(tǒng)架構設計以及互聯(lián)網 Web 系統(tǒng)架構設計。在 ThoughtWorks 期間,作為?一名咨詢師,
主要為客戶提供組織的敏捷轉型、過程改進、系統(tǒng)架構監(jiān)理、領域設計、代碼質量提升等咨
詢?工作。目前,作為公司產品的架構師,致力于商業(yè)智能產品與?大數(shù)據(jù)分析平臺的開發(fā)
與架構設計

著譯作包括《解構領域驅動設計》、《軟件設計精要與模式》、《架構寶典》、《高可用可伸縮微服務架構》、《Java設計模式》、《恰如其分的軟件架構》、《WCF服務編程》、《人件》、《重構——改善既有代碼設計》評注版、《架構之美》評注版。

作為主持?人或講師多次被應邀參加如中國軟件?大會、QCon、MPD 大會、
Agile China、Scrum Gathering 等?大型會議,并作為培訓講師曾先后為摩托羅拉、惠普、
花旗銀?行、攜程、TCL、中興通訊、賽 門鐵克,廣發(fā)證券、平安銀?行等企業(yè)培訓架構、
設計、DDD、敏捷等專題內容。著譯作包括《軟件設計精要與模式》、《Java 設計模式》、《恰如其分的軟件架構》、《WCF 服務編程》、《?人件》等。目前,正在撰寫《架構之
美(Beatiful Architecture)》評注版,即將出版。

先后就職于中興通訊、惠普 GDCC、中軟國際、ThoughtWorks 等?大型中外企 業(yè),任職?角?色為?高級軟件?工程師,架構師,技術總監(jiān),?首席咨詢師?,F(xiàn)為深圳? 大眼科技有限公司的?首席架構師,聯(lián)合創(chuàng)始?人。精通包括 C#、Java、Ruby、Scala、 Python、JavaScript 等多種語?言,熟練掌握?面向對象思想、領域驅動設計、函數(shù)式語 ?言、架構、?大數(shù)據(jù)分析、敏捷與過程改進,并致?力于?大型軟件企業(yè)的?面向服務系 統(tǒng)架構設計以及互聯(lián)網 Web 系統(tǒng)架構設計。在 ThoughtWorks 期間,作為?一名咨詢師, 主要為客戶提供組織的敏捷轉型、過程改進、系統(tǒng)架構監(jiān)理、領域設計、代碼質量提升等咨 詢?工作。目前,作為公司產品的架構師,致力于商業(yè)智能產品與?大數(shù)據(jù)分析平臺的開發(fā) 與架構設計 著譯作包括《解構領域驅動設計》、《軟件設計精要與模式》、《架構寶典》、《高可用可伸縮微服務架構》、《Java設計模式》、《恰如其分的軟件架構》、《WCF服務編程》、《人件》、《重構——改善既有代碼設計》評注版、《架構之美》評注版。 作為主持?人或講師多次被應邀參加如中國軟件?大會、QCon、MPD 大會、 Agile China、Scrum Gathering 等?大型會議,并作為培訓講師曾先后為摩托羅拉、惠普、 花旗銀?行、攜程、TCL、中興通訊、賽 門鐵克,廣發(fā)證券、平安銀?行等企業(yè)培訓架構、 設計、DDD、敏捷等專題內容。著譯作包括《軟件設計精要與模式》、《Java 設計模式》、《恰如其分的軟件架構》、《WCF 服務編程》、《?人件》等。目前,正在撰寫《架構之 美(Beatiful Architecture)》評注版,即將出版。

課程費用

6800.00 /人

課程時長

2

成為教練

課程簡介

就像修煉武學一般,編碼的技能同樣需要修行,只有掌握更多編碼技能與設計技能的程序員才能在程序世界走得更遠,攀得更高。掌握必備的設計技能,就好像是武者修行的洗髓煉氣,決定了未來內力的強大;扎實的編碼功底,則是修煉外功,打磨的是筋骨皮;至于開發(fā)工具、測試驅動、重構等諸多技能,則是編碼武者掌握的招式,若能熟練掌握,就能一擊制敵,讓那些糟糕代碼無容身之地。
故而,程序員能力的提升,就是編碼武者的修行。

目標收益

培訓對象

課程大綱

洗髓篇
設計心法
縱觀軟件開發(fā)的歷史,其間經歷了過程式設計、面向對象設計(函數(shù)式編程)、面向組件設計、面向服務設計,然而無論是以什么內容作為驅動設計的要素,都離不開設計的本原——“高內聚松耦合”。
這六字真言道盡了軟件設計的終極目標:我們希望設計出來的實體(函數(shù)、類、模塊、子系統(tǒng))可以重用,支持擴展,如此才能提高編碼效率、減少系統(tǒng)缺陷,同時還能面對需求的變化。
高內聚,意味著程序的職責分配合理,不會將相關的邏輯分散到各處,且又定義了合理的邊界,只暴露需要進行協(xié)作的接口;于是又引入了松耦合,使得實體之間明斷實連,相依而不相存,可以獨立變化,卻又相互協(xié)作。
在本章,我將從多個角度來闡釋、剖析這六字真言:
高內聚松耦合
設計的起點
重復謎題
對象的合理封裝
自治對象
1、高內聚松耦合
內聚性
耦合性
2、對象的合理封裝
案例分析:報表系統(tǒng)之參數(shù)處理
3、繼承與委派的區(qū)別
案例分析:兩種分離方案的對比
4、多態(tài)與抽象設計的起點
5、重復謎題
5.1業(yè)務邏輯的重復
案例分析:日志系統(tǒng)的組合子設計
案例分析:業(yè)務系統(tǒng)的數(shù)據(jù)庫訪問與事務處理,采用兩種不同方式對其進行重構,重構的結果是一個初步簡略的框架。
5.2程序結構的重復
案例分析:對集合的操作,運用函數(shù)式編程思想消除重復。
易筋篇
整潔之道
武功修行,內外兼修才是王道。軟件設計同樣如此,不能只煉心法(設計),而缺少對身體(代碼)的錘煉。二者(設計與代碼)并非完全割裂的關系,而是相輔相成,甚至內外相通的關系。好的設計可以在一定程度上保證好的編碼,而把握好整潔代碼的特征,培養(yǎng)編碼的Sense,則有助于改進設計的質量。
那么什么才是整潔代碼呢?本章會對此展開探討,以期端正編碼者的態(tài)度,培養(yǎng)良好編碼習慣,打磨編碼技能。
簡單設計
Kent Beck提出了“簡單設計的概念”,內容為:
通過所有測試(Passes its tests)
盡可能消除重復 (Minimizes duplication)
盡可能清晰表達 (Maximizes clarity)
更少代碼元素 (Has fewer elements)
以上四個原則的重要程度依次降低。
案例:結合簡單設計理解郵件轉發(fā)器的設計
負重修行 外功修煉就是要負重而行。在這條修行道路上,我們需要突破如下內容的桎梏:
名:提高可讀性的一方面
形:提高可讀性的一方面
函數(shù):構成程序的最重要元素

1、可讀性:命名\表達式\合理的分段\DSL
案例分析:若干代碼片段,多數(shù)來自于真實項目的丑陋代碼,演示如何提高這些代碼的可讀性,使得代碼結構更加清晰。
2、整潔的函數(shù)
案例分析:Fitness代碼分析
3、異常處理
案例分析:版本升級管理系統(tǒng)的異常處理
4、重構
案例實踐:
影片租賃系統(tǒng)
分布式系統(tǒng)消息處理的測試
JBehave測試用例
綜合思考 如何制定重構策略
Code Review 案例:我在客戶處做的代碼診所
洗髓篇
設計心法
縱觀軟件開發(fā)的歷史,其間經歷了過程式設計、面向對象設計(函數(shù)式編程)、面向組件設計、面向服務設計,然而無論是以什么內容作為驅動設計的要素,都離不開設計的本原——“高內聚松耦合”。
這六字真言道盡了軟件設計的終極目標:我們希望設計出來的實體(函數(shù)、類、模塊、子系統(tǒng))可以重用,支持擴展,如此才能提高編碼效率、減少系統(tǒng)缺陷,同時還能面對需求的變化。
高內聚,意味著程序的職責分配合理,不會將相關的邏輯分散到各處,且又定義了合理的邊界,只暴露需要進行協(xié)作的接口;于是又引入了松耦合,使得實體之間明斷實連,相依而不相存,可以獨立變化,卻又相互協(xié)作。
在本章,我將從多個角度來闡釋、剖析這六字真言:
高內聚松耦合
設計的起點
重復謎題
對象的合理封裝
自治對象
1、高內聚松耦合
內聚性
耦合性
2、對象的合理封裝
案例分析:報表系統(tǒng)之參數(shù)處理
3、繼承與委派的區(qū)別
案例分析:兩種分離方案的對比
4、多態(tài)與抽象設計的起點
5、重復謎題
5.1業(yè)務邏輯的重復
案例分析:日志系統(tǒng)的組合子設計
案例分析:業(yè)務系統(tǒng)的數(shù)據(jù)庫訪問與事務處理,采用兩種不同方式對其進行重構,重構的結果是一個初步簡略的框架。
5.2程序結構的重復
案例分析:對集合的操作,運用函數(shù)式編程思想消除重復。
易筋篇
整潔之道

武功修行,內外兼修才是王道。軟件設計同樣如此,不能只煉心法(設計),而缺少對身體(代碼)的錘煉。二者(設計與代碼)并非完全割裂的關系,而是相輔相成,甚至內外相通的關系。好的設計可以在一定程度上保證好的編碼,而把握好整潔代碼的特征,培養(yǎng)編碼的Sense,則有助于改進設計的質量。
那么什么才是整潔代碼呢?本章會對此展開探討,以期端正編碼者的態(tài)度,培養(yǎng)良好編碼習慣,打磨編碼技能。
簡單設計
Kent Beck提出了“簡單設計的概念”,內容為:
通過所有測試(Passes its tests)
盡可能消除重復 (Minimizes duplication)
盡可能清晰表達 (Maximizes clarity)
更少代碼元素 (Has fewer elements)
以上四個原則的重要程度依次降低。
案例:結合簡單設計理解郵件轉發(fā)器的設計
負重修行
外功修煉就是要負重而行。在這條修行道路上,我們需要突破如下內容的桎梏:
名:提高可讀性的一方面
形:提高可讀性的一方面
函數(shù):構成程序的最重要元素

1、可讀性:命名\表達式\合理的分段\DSL
案例分析:若干代碼片段,多數(shù)來自于真實項目的丑陋代碼,演示如何提高這些代碼的可讀性,使得代碼結構更加清晰。
2、整潔的函數(shù)
案例分析:Fitness代碼分析
3、異常處理
案例分析:版本升級管理系統(tǒng)的異常處理
4、重構
案例實踐:
影片租賃系統(tǒng)
分布式系統(tǒng)消息處理的測試
JBehave測試用例
綜合思考
如何制定重構策略
Code Review 案例:我在客戶處做的代碼診所

課程費用

6800.00 /人

課程時長

2

預約體驗票 我要分享

近期公開課推薦

近期公開課推薦

活動詳情

提交需求