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

編碼修行與Code KATA

Bruce Zhang

前ThoughtWorks 架構(gòu)師、敏捷教練

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

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

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

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

課程費用

6800.00 /人

課程時長

2

成為教練

課程簡介

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

目標(biāo)收益

培訓(xùn)對象

課程大綱

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

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

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

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

課程費用

6800.00 /人

課程時長

2

預(yù)約體驗票 我要分享

近期公開課推薦

近期公開課推薦

活動詳情

提交需求