开发经理
互联网
推荐课程
average > 0 ? $model->average . '分' : '10.0分' ?>

编码修行与Code KATA

Bruce Zhang

前ThoughtWorks 架构师、敏捷教练

先后就职于中兴通讯、惠普 GDCC、中软国际、ThoughtWorks 等⼤大型中外企
业,任职⾓角⾊色为⾼高级软件⼯工程师,架构师,技术总监,⾸首席咨询师。现为深圳⼤
大眼科技有限公司的⾸首席架构师,联合创始⼈人。精通包括 C#、Java、Ruby、Scala、
Python、JavaScript 等多种语⾔言,熟练掌握⾯面向对象思想、领域驱动设计、函数式语
⾔言、架构、⼤大数据分析、敏捷与过程改进,并致⼒力于⼤大型软件企业的⾯面向服务系
统架构设计以及互联网 Web 系统架构设计。在 ThoughtWorks 期间,作为⼀一名咨询师,
主要为客户提供组织的敏捷转型、过程改进、系统架构监理、领域设计、代码质量提升等咨
询⼯工作。目前,作为公司产品的架构师,致力于商业智能产品与⼤大数据分析平台的开发
与架构设计

著译作包括《解构领域驱动设计》、《软件设计精要与模式》、《架构宝典》、《高可用可伸缩微服务架构》、《Java设计模式》、《恰如其分的软件架构》、《WCF服务编程》、《人件》、《重构——改善既有代码设计》评注版、《架构之美》评注版。

作为主持⼈人或讲师多次被应邀参加如中国软件⼤大会、QCon、MPD 大会、
Agile China、Scrum Gathering 等⼤大型会议,并作为培训讲师曾先后为摩托罗拉、惠普、
花旗银⾏行、携程、TCL、中兴通讯、赛 门铁克,广发证券、平安银⾏行等企业培训架构、
设计、DDD、敏捷等专题内容。著译作包括《软件设计精要与模式》、《Java 设计模式》、《恰如其分的软件架构》、《WCF 服务编程》、《⼈人件》等。目前,正在撰写《架构之
美(Beatiful Architecture)》评注版,即将出版。

先后就职于中兴通讯、惠普 GDCC、中软国际、ThoughtWorks 等⼤大型中外企 业,任职⾓角⾊色为⾼高级软件⼯工程师,架构师,技术总监,⾸首席咨询师。现为深圳⼤ 大眼科技有限公司的⾸首席架构师,联合创始⼈人。精通包括 C#、Java、Ruby、Scala、 Python、JavaScript 等多种语⾔言,熟练掌握⾯面向对象思想、领域驱动设计、函数式语 ⾔言、架构、⼤大数据分析、敏捷与过程改进,并致⼒力于⼤大型软件企业的⾯面向服务系 统架构设计以及互联网 Web 系统架构设计。在 ThoughtWorks 期间,作为⼀一名咨询师, 主要为客户提供组织的敏捷转型、过程改进、系统架构监理、领域设计、代码质量提升等咨 询⼯工作。目前,作为公司产品的架构师,致力于商业智能产品与⼤大数据分析平台的开发 与架构设计 著译作包括《解构领域驱动设计》、《软件设计精要与模式》、《架构宝典》、《高可用可伸缩微服务架构》、《Java设计模式》、《恰如其分的软件架构》、《WCF服务编程》、《人件》、《重构——改善既有代码设计》评注版、《架构之美》评注版。 作为主持⼈人或讲师多次被应邀参加如中国软件⼤大会、QCon、MPD 大会、 Agile China、Scrum Gathering 等⼤大型会议,并作为培训讲师曾先后为摩托罗拉、惠普、 花旗银⾏行、携程、TCL、中兴通讯、赛 门铁克,广发证券、平安银⾏行等企业培训架构、 设计、DDD、敏捷等专题内容。著译作包括《软件设计精要与模式》、《Java 设计模式》、《恰如其分的软件架构》、《WCF 服务编程》、《⼈人件》等。目前,正在撰写《架构之 美(Beatiful Architecture)》评注版,即将出版。

课程费用

6800.00 /人

课程时长

2

成为教练

课程简介

就像修炼武学一般,编码的技能同样需要修行,只有掌握更多编码技能与设计技能的程序员才能在程序世界走得更远,攀得更高。掌握必备的设计技能,就好像是武者修行的洗髓炼气,决定了未来内力的强大;扎实的编码功底,则是修炼外功,打磨的是筋骨皮;至于开发工具、测试驱动、重构等诸多技能,则是编码武者掌握的招式,若能熟练掌握,就能一击制敌,让那些糟糕代码无容身之地。
故而,程序员能力的提升,就是编码武者的修行。

目标收益

培训对象

课程大纲

洗髓篇
设计心法
纵观软件开发的历史,其间经历了过程式设计、面向对象设计(函数式编程)、面向组件设计、面向服务设计,然而无论是以什么内容作为驱动设计的要素,都离不开设计的本原——“高内聚松耦合”。
这六字真言道尽了软件设计的终极目标:我们希望设计出来的实体(函数、类、模块、子系统)可以重用,支持扩展,如此才能提高编码效率、减少系统缺陷,同时还能面对需求的变化。
高内聚,意味着程序的职责分配合理,不会将相关的逻辑分散到各处,且又定义了合理的边界,只暴露需要进行协作的接口;于是又引入了松耦合,使得实体之间明断实连,相依而不相存,可以独立变化,却又相互协作。
在本章,我将从多个角度来阐释、剖析这六字真言:
高内聚松耦合
设计的起点
重复谜题
对象的合理封装
自治对象
1、高内聚松耦合
内聚性
耦合性
2、对象的合理封装
案例分析:报表系统之参数处理
3、继承与委派的区别
案例分析:两种分离方案的对比
4、多态与抽象设计的起点
5、重复谜题
5.1业务逻辑的重复
案例分析:日志系统的组合子设计
案例分析:业务系统的数据库访问与事务处理,采用两种不同方式对其进行重构,重构的结果是一个初步简略的框架。
5.2程序结构的重复
案例分析:对集合的操作,运用函数式编程思想消除重复。
易筋篇
整洁之道
武功修行,内外兼修才是王道。软件设计同样如此,不能只炼心法(设计),而缺少对身体(代码)的锤炼。二者(设计与代码)并非完全割裂的关系,而是相辅相成,甚至内外相通的关系。好的设计可以在一定程度上保证好的编码,而把握好整洁代码的特征,培养编码的Sense,则有助于改进设计的质量。
那么什么才是整洁代码呢?本章会对此展开探讨,以期端正编码者的态度,培养良好编码习惯,打磨编码技能。
简单设计
Kent Beck提出了“简单设计的概念”,内容为:
通过所有测试(Passes its tests)
尽可能消除重复 (Minimizes duplication)
尽可能清晰表达 (Maximizes clarity)
更少代码元素 (Has fewer elements)
以上四个原则的重要程度依次降低。
案例:结合简单设计理解邮件转发器的设计
负重修行 外功修炼就是要负重而行。在这条修行道路上,我们需要突破如下内容的桎梏:
名:提高可读性的一方面
形:提高可读性的一方面
函数:构成程序的最重要元素

1、可读性:命名\表达式\合理的分段\DSL
案例分析:若干代码片段,多数来自于真实项目的丑陋代码,演示如何提高这些代码的可读性,使得代码结构更加清晰。
2、整洁的函数
案例分析:Fitness代码分析
3、异常处理
案例分析:版本升级管理系统的异常处理
4、重构
案例实践:
影片租赁系统
分布式系统消息处理的测试
JBehave测试用例
综合思考 如何制定重构策略
Code Review 案例:我在客户处做的代码诊所
洗髓篇
设计心法
纵观软件开发的历史,其间经历了过程式设计、面向对象设计(函数式编程)、面向组件设计、面向服务设计,然而无论是以什么内容作为驱动设计的要素,都离不开设计的本原——“高内聚松耦合”。
这六字真言道尽了软件设计的终极目标:我们希望设计出来的实体(函数、类、模块、子系统)可以重用,支持扩展,如此才能提高编码效率、减少系统缺陷,同时还能面对需求的变化。
高内聚,意味着程序的职责分配合理,不会将相关的逻辑分散到各处,且又定义了合理的边界,只暴露需要进行协作的接口;于是又引入了松耦合,使得实体之间明断实连,相依而不相存,可以独立变化,却又相互协作。
在本章,我将从多个角度来阐释、剖析这六字真言:
高内聚松耦合
设计的起点
重复谜题
对象的合理封装
自治对象
1、高内聚松耦合
内聚性
耦合性
2、对象的合理封装
案例分析:报表系统之参数处理
3、继承与委派的区别
案例分析:两种分离方案的对比
4、多态与抽象设计的起点
5、重复谜题
5.1业务逻辑的重复
案例分析:日志系统的组合子设计
案例分析:业务系统的数据库访问与事务处理,采用两种不同方式对其进行重构,重构的结果是一个初步简略的框架。
5.2程序结构的重复
案例分析:对集合的操作,运用函数式编程思想消除重复。
易筋篇
整洁之道

武功修行,内外兼修才是王道。软件设计同样如此,不能只炼心法(设计),而缺少对身体(代码)的锤炼。二者(设计与代码)并非完全割裂的关系,而是相辅相成,甚至内外相通的关系。好的设计可以在一定程度上保证好的编码,而把握好整洁代码的特征,培养编码的Sense,则有助于改进设计的质量。
那么什么才是整洁代码呢?本章会对此展开探讨,以期端正编码者的态度,培养良好编码习惯,打磨编码技能。
简单设计
Kent Beck提出了“简单设计的概念”,内容为:
通过所有测试(Passes its tests)
尽可能消除重复 (Minimizes duplication)
尽可能清晰表达 (Maximizes clarity)
更少代码元素 (Has fewer elements)
以上四个原则的重要程度依次降低。
案例:结合简单设计理解邮件转发器的设计
负重修行
外功修炼就是要负重而行。在这条修行道路上,我们需要突破如下内容的桎梏:
名:提高可读性的一方面
形:提高可读性的一方面
函数:构成程序的最重要元素

1、可读性:命名\表达式\合理的分段\DSL
案例分析:若干代码片段,多数来自于真实项目的丑陋代码,演示如何提高这些代码的可读性,使得代码结构更加清晰。
2、整洁的函数
案例分析:Fitness代码分析
3、异常处理
案例分析:版本升级管理系统的异常处理
4、重构
案例实践:
影片租赁系统
分布式系统消息处理的测试
JBehave测试用例
综合思考
如何制定重构策略
Code Review 案例:我在客户处做的代码诊所

活动详情

提交需求