注重实效的开发人员、开发工程师、开发团队负责人等。
软件重构是指在不改变软件的功能和外部可见性的情况下,为了改善软件的结构,提高清晰性、可扩展性和可重用性而对软件进行的改造。简而言之,重构就是改进已经写好的软件的设计。在敏捷开发方法学中,重构常常是软件开发循环的一部分,开发者通过增加新的测试和功能,或者重构代码来改善内部的一致性和清晰性。重构也是代码维护中的一部分,既不修正错误,又不增加新的功能性。而是用于提高代码的可读性或者改变代码的结构和设计,使其在将来更容易被维护。特别是,在现有的程序的结构下,给一个程序增加一个新的行为会非常困难,因此开发人员可能先重构这部分代码,使加入新的行为变得容易。
本课程的目标是:了解实效编程、掌握面向对象的编程原则、掌握UML在设计中的应用、掌握职责分配模式的应用、掌握设计模式的应用、掌握测试驱动开发方法、掌握重构的手法以及了解如何选择和使用框架。具体事宜通知如下:
学员基础
具有项目设计、开发工作经验。
培训目标
?了解实效编程
?掌握面向对象的编程原则
?掌握UML在设计中的应用
?掌握职责分配模式的应用
?掌握设计模式的应用
?掌握测试驱动开发方法
?掌握重构的手法
?了解如何选择和使用框架
培训内容
本课程内容理论性与实践性都较强,采取讲课、讨论、实践三者结合的的方式,形成一整套解决问题的方法。
第一讲好的设计:“球不是这么踢的”
?让目标指导行动
?设计已死?
?足够好的软件
?化整为零,个个击破
?先实现后设计
目标:理解重构的基本思想,掌握关键的重构技巧。
第二讲用例驱动设计:用例与功能
?用例场景
?健壮性分析图
?时序图
?协作图
?类图
?包图
?逻辑框架和层
?模型-视图分离原则
目标:理解用例驱动设计的基本方法,掌握关键UML应用技巧。
第三讲领域驱动设计:何为“领域驱动设计”
?通用语言
?模型驱动设计
?面向深层理解的重构
?保持模型一致性
目标:理解领域驱动设计的基本方法,掌握关键重构技巧。
第四讲职责驱动设计:GRASP是什么?
?创建者
?信息专家
?低耦合
?控制器
?高内聚
?多态
?纯虚构
?间接性
?防止变异
目标:理解职责驱动涉及的基本方法,掌握关键的重构技巧。
第五讲测试驱动开发:TDD
?红色
?绿色
?重构
?模式
目标:理解测试驱动开发的基本思想,掌握关键的开发技巧。
第六讲设计模式与变迁
?行为型模式
?创建型模式
?结构型模式
目标:理解设计模式的基本内容,掌握关键的重构技巧。
第七讲设计原则:“重构怎么能没有原则”?
?开闭原则
?里氏科夫替换原则
?单一职责原则
?接口隔离原则
?依赖倒置原则
?不要重复你自己原则
?你不需要它原则
?KISS原则行为型模式
目标:理解基本面向对象的设计原则,掌握结构优化的重构技巧。
以上大纲仅用于罗列课程中的知识点,在实际授课时将会穿插在实际案例里,并非按时间顺序讲解。
由业界知名人士亲自授课:
姜老师:国家863项目专家,首席架构师;敏捷中国团队持有人;2005年IBM开发者大会最佳讲师、最佳讲义获得者;国家质量认证中心技术顾问;国家安全局技术顾问;人民银行技术顾问;大庆油田技术顾问;胜利油田技术顾问;鲁能集团技术顾问;2007年度开源项目之一AgileUML的主架设计师。