课程简介
课程主要在「面向对象」的软件设计、重构技巧上帮助学员进一步提升,从而提升企业软件研发效率、降低长期维护成本。
课程还同时向学员展现在日常工作中高效拆分需求的方法,提升产品团队和研发团队的协作效率。
目标收益
本课程涉及到的方法、技巧主要来源于敏捷开发(包括极限编程 XP、Scrum)。在两天的学习里,讲师将透过工作中的实际案例拆解、分析,以及大量的代码练习来帮助学员学习:
• 通过更好地「面向对象」软件设计避免产生烂代码;
• 浮现式面向对象的软件设计方法;
• 常见代码问题,以及代码重构的原则和技巧;
• 测试驱动开发(TDD);
• 敏捷迭代的需求分析方法(实例化需求)。
本课程将开启一扇通往最优秀软件研发工程师的窗户。
培训对象
课程适合有一年以上面向对象语言使用经验的研发工程师
课程大纲
开篇 | 分组,互相认识 |
第一个练习:FizzBuzz |
学习目标: • 了解结对编程方式; • 了解 Cyber Dojo 练习方法; • 尝试编写第一个测试用例。 |
进阶设计 FizzBuzz |
学习目标: • 运用场景分析进行需求分析; • 使用测试代码推动软件设计(TDD); • 返回值对面向对象设计的影响。 |
第二个练习:用户登录 |
学习目标: • 运用「实例化需求」方法拆分软件需求; • 制定更符合业务需要的软件开发计划。 |
「用户登录」2-3 次迭代的代码练习: |
学习目标: • 安全地频繁提交代码; • 烂代码的特征; • 重构推动面向对象设计。 |
回顾 | 第一天课程回顾 |
全天完整练习:收银机 | 复习运用第一天的学习成果,以小组为单位进行需求分析和代码练习,注 意运用:实例化需求、单元测试、重构等技巧,关注优化面向对象设计。 |
Code Review | Code Review |
总结 | 全面课程回顾,下一步进阶建议,结课。 |
开篇 分组,互相认识 |
第一个练习:FizzBuzz 学习目标: • 了解结对编程方式; • 了解 Cyber Dojo 练习方法; • 尝试编写第一个测试用例。 |
进阶设计 FizzBuzz 学习目标: • 运用场景分析进行需求分析; • 使用测试代码推动软件设计(TDD); • 返回值对面向对象设计的影响。 |
第二个练习:用户登录 学习目标: • 运用「实例化需求」方法拆分软件需求; • 制定更符合业务需要的软件开发计划。 |
「用户登录」2-3 次迭代的代码练习: 学习目标: • 安全地频繁提交代码; • 烂代码的特征; • 重构推动面向对象设计。 |
回顾 第一天课程回顾 |
全天完整练习:收银机 复习运用第一天的学习成果,以小组为单位进行需求分析和代码练习,注 意运用:实例化需求、单元测试、重构等技巧,关注优化面向对象设计。 |
Code Review Code Review |
总结 全面课程回顾,下一步进阶建议,结课。 |