课程大纲
分10个板块交付培训,如下:
1)软件设计回顾会议
通过Workshop形式帮助团队回顾过去的项目中在软件设计方面我们的策略和实践、问题和疑惑、以及建议,帮助大家迅速进入主题,主动思考,讲师了解反馈,激发学习欲望,调整后面重点,并引导出后面的内容,奠定两天培训的基调。
2)架构及设计腐化的5条途经
总结常见的架构及详细设计腐化途经,原因及克服方法。
3)从代码中学设计 - 面向对象设计原则练习
通过一个个实例,传递Clean Code,OO设计原则等知识点,包括DIY原则,Tell Don't Ask原则,Single Responsibility原则,Open Closed原则,Liskov Substitution原则,Interface Segregation原则,Dependency Inversion原则等等。帮助学员了解代码层面设计问题的上下文和解决方法。
4)从代码中的坏味道到重构练习
通过一个个代码片段发现怀味道并学习对应的重构对策,介绍java平台下的重构工具及常用重构技巧,学习到利用重构消灭重复和简化依赖的技术,探讨遗留系统重构的要点。
5)项目重构现场演示
学员将前面的知识加以应用,发现一个java项目代码中的设计问题并讨论解决方法。讲师现场重构这个java项目,详细讲解每一步,学员了解到真实项目重构的思路,具体过程,测试的作用,实用技巧和期间众多现实的设计考虑。
6)你需要掌握的设计模式
总结最为常用的设计模式,应用场景,陷阱,以及变通做法。
7)培养优秀的架构嗅觉 - 从成功软件看架构设计实践
讲师通过多个具体实例总结优秀架构设计的一些具体关键技术做法,背后的思路和业界架构设计的发展趋势。分享讲师经历的多个项目和产品中起到关键作用的架构设计具体做法,以及失败的教训。
8)演进式设计技术及实践
很多公司习惯做繁重的前期设计,这被证明是风险很高的做法。好的架构和设计是演进出来的,通过这个环节了解演进式设计的方法,包括演进式数据库设计的方法、工具、模式等内容。包括如何计划重构活动以实现架构演进,如何从设计方法、技术债务、复杂性等角度看架构演进。
9)架构设计及痛点识别Workshop
通过Workshop形式识别出目前系统各个层级的架构细节,问题及痛点,找到对策和行动计划。这是一个非常有益的活动,帮助团队认识架构和设计细节,形成完整视图,发现问题并制定Action。
10)让设计保鲜的团队实践、面临的挑战及案例分享
讲师带过很多团队,也一直关注如何让设计保鲜的问题,这是一个系统工程,讲师将分享他在这方面的成功经验,包括如何安排设计工作,如何用一致的语言在团队沟通设计,如何识别设计问题,日常开发中如何落实关键的工程实践,如何确保重构是小的并被计划在日常工作中,各角色如果合作能有效减少设计风险,需要培养那些技能,如何处理业务压力带来的设计缺失等等。