课程简介
本次课程,涵盖了工程师必知必会的一些基本设计原则、模式与最佳实践。比如SOLID原则,它们是一组旨在帮助开发易于维护的软件的原则集,包括:单一职责原则 (SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖倒置原则(DIP)。同时,Java中的23种设计模式也非常重要,本课程会挑选部分典型常用的模式进行深入讲解和演示。另外,高质量代码的持续迭代离不开合理的测试与重构技巧。以测试为例,抛开时间因素,大家经常遇到测试粒度不好把控、测试代码懈于维护、测试端点侵入式太强等问题,这就需要对测试有一个更好的认知,通过认知来指导行动,TDD+OOP的理念能让编写测试变成一个无负担的工作。重构方面,实际上考察的是工程师的综合能力,比如说重构时机的把握,设计原则/模式在重构中的作用,编写可维护性测试代码对重构的意义等。
目标收益
培训对象
课程大纲
第一单元 设计原则与模式(3.5h)【该单元介绍常见原则与模式(含编码实操)】 |
设计模式发展史 编程语言的变迁及模式的改变 过程式、OOP及函数式 设计模式基本原则 设计模式关注哪些问题 单一职责原则及案例分析 开闭原则及案例分析 里氏替换原则及案例分析 接口隔离原则及案例分析 依赖倒置原则及案例分析 设计模式基本分类 代码级设计模式 架构级设计模式 设计模式应用案例 工厂模式及在现代框架中的应用 建造者模式及常见代码案例 代理模式在日常框架中的应用案例 其他设计模式在解耦中的常见用法 |
第二单元 项目驱动式的最佳开发实践(6.5h)【该单元将会以《Real-World Software Development: A Project-Driven Guide to Fundamentals in Java》为蓝本,逐步将常见的编码准则、模式及迭代实践融入项目开发中,完全覆盖实际项目开发中产生的扩展性、维护性等问题。】 |
理解常见编码原则:案例之银行账单分析器 体现KISS原则 代码可维护性与反模式 单一职责(SRP) 类级别内聚 如何重构:支持处理不同格式 异常的模式与反模式 理解类层次关系:文档管理系统 理解领域对象 类层次结构与行为设计 里氏替换(LSP) 编写良好测试代码 理解存储库模式与解耦:案例之信息系统 持久性和存储库(repository)模式 尝试使用函数式编程 DI和IOC解决依赖问题 |
第三单元 高质量代码之:重构与测试(2h)【该单元介绍测试驱动开发、可维护性测试代码与重构落地实践。】 |
编写可测试性代码 单元测试的意义 如何编写正确的单元测试 如何编写高质量可测性代码 重构策略与落地实践 重构目的与时机 重构方法及实操 案例:从开发、测试到重构 |
第四单元 总结与讨论【总结、讨论及答疑解惑】 |
话题:开发过程中的常见问题及应对策略 要点:梳理需求、领域建模、面对对象设计、常用辅助工具 |
第一单元 设计原则与模式(3.5h)【该单元介绍常见原则与模式(含编码实操)】 设计模式发展史 编程语言的变迁及模式的改变 过程式、OOP及函数式 设计模式基本原则 设计模式关注哪些问题 单一职责原则及案例分析 开闭原则及案例分析 里氏替换原则及案例分析 接口隔离原则及案例分析 依赖倒置原则及案例分析 设计模式基本分类 代码级设计模式 架构级设计模式 设计模式应用案例 工厂模式及在现代框架中的应用 建造者模式及常见代码案例 代理模式在日常框架中的应用案例 其他设计模式在解耦中的常见用法 |
第二单元 项目驱动式的最佳开发实践(6.5h)【该单元将会以《Real-World Software Development: A Project-Driven Guide to Fundamentals in Java》为蓝本,逐步将常见的编码准则、模式及迭代实践融入项目开发中,完全覆盖实际项目开发中产生的扩展性、维护性等问题。】 理解常见编码原则:案例之银行账单分析器 体现KISS原则 代码可维护性与反模式 单一职责(SRP) 类级别内聚 如何重构:支持处理不同格式 异常的模式与反模式 理解类层次关系:文档管理系统 理解领域对象 类层次结构与行为设计 里氏替换(LSP) 编写良好测试代码 理解存储库模式与解耦:案例之信息系统 持久性和存储库(repository)模式 尝试使用函数式编程 DI和IOC解决依赖问题 |
第三单元 高质量代码之:重构与测试(2h)【该单元介绍测试驱动开发、可维护性测试代码与重构落地实践。】 编写可测试性代码 单元测试的意义 如何编写正确的单元测试 如何编写高质量可测性代码 重构策略与落地实践 重构目的与时机 重构方法及实操 案例:从开发、测试到重构 |
第四单元 总结与讨论【总结、讨论及答疑解惑】 话题:开发过程中的常见问题及应对策略 要点:梳理需求、领域建模、面对对象设计、常用辅助工具 |