课程简介
目标收益
培训对象
课程内容
让软件投入使用后的“折腾”期尽量缩短!
业界普遍认为,软件项目开发成本的70%取决于软件开发人员个人的技能、经验和工作习惯(《个体软件过程的改进》-张友生等)。因此,提高软件研发人员的代码能力,是软件企业的立足之本!
软件企业的开发成本在那里?一个中大规模的软件,从其诞生、投入使用到最终稳定,中间要经过长时间的“折腾”期。在这个时期,软件会出现无数的问题:不稳定、随即性的死机、数据库连接丢失、不符合用户的业务…,于是软件被反复修改,好不容易稳定一点了,为了适应用户的需求又必须做新的修改,于是新一轮的不稳定再次出现,软件开发商为此投入了巨大的人力物力。最终一个中大型的软件基本稳定下来,需要经过几年的甚至十年以上的时间!一些软件从此开始发挥其巨大的商业价值,但更多的软件系统,由于时间过长,面临业务模型、技术落后的尴尬境地,于是,基于新框架的软件被策划出来,进入了下一个诞生、投入使用、“折腾”、稳定、推倒重来的过程。
如何缓解这样的尴尬境地?从技术的角度,提高研发人员的代码质量是重中之重。大量的,大面积提高软件软发人员的软件设计、编写质量,可大大缩短软件开发完成后的稳定期,做到只是为了适应用户的需求而修改,而非因为软件本身质量不过关而反复修改;并且为适应用户需求所做的修改,也能保证修改本身的可靠性,且新修改不会导致已有代码出现问题!
本课程的讲师都是骨灰级的编码高手,有近15年的一线软件编码经验,经历过大量的软件产品、项目,经历过软件研发中的种种磨练,对软件稳定性不佳造成的反复、结项一拖再拖、不得不长期泡在用户现场等,有深刻的体会。我们收集了大量的案例,包括优秀的设计编码,和典型的不佳设计,通过“魔鬼式训练”训练,大量的、反复式的练习,强化提高程序员的代码与编程能力,以此促进企业软件生产力水平的大幅度提高。
实践证明,软件的设计和编码是有章可循的。本课程总结讲师的总结了程序员非常易犯的若干种错误,汇聚了软件开发常见的常见策略、模式、原则,归纳为易于理解的编程实战技巧,每种都通过大量的案例进行强化训练,并用综合案例加以贯穿,通过大量的真实案例,贯穿了设计、编码、重构、调试等整个软件生命周期过程,详细地介绍了各个阶段需要注意的要点以及难点,这些知识都是培训师十几年编程经验的总结,如何避免重复犯错,让代码更具健壮性。
课程大纲
第一单元 规范编码与优劣代码的判定 |
内容一:成为卓越的程序员----代码能力及关键因素 软件的核心是什么(市场?管理?技术?需求?销售?测试?) 做一个优秀的程序员并不简单! 低头看路与抬头看天——理论与实践的结合 优秀代码的评价标准 优秀的代码,而不仅是可以运行的代码 劣质代码的代价 内容二:编码规范 通用的编码规范 C/C++/java/C#/编码规范 内容三:案例—通过实际项目演示优秀的代码及不佳代码 介绍项目背景,展现设计细想 阅读代码指出代码坏症状 重构为优秀的代码,介绍重构的思想及代码对比 |
第二单元 整洁代码之道 |
内容一:代码的坏味道—代码的质量底线 代码坏味道概述 代码坏味道——程序员与医生的区别 代码坏味道----低级篇(重复的代码、过长的函数、过大的类、过长的参数列表、发散式变化、分散的修改) 代码坏味道----中级篇(伪面向对象的调用、数据泥团、基本类型的误用、switch-case结构的误用、平行继承体系、过薄的类、只有局部意义的成员变量) 代码坏味道----高级篇(过度耦合的消息链、过薄的中间对象、紧耦合类、相似的类、只有数据的类、滥用类的继承关系) 通过案例,让学员寻找代码坏味道 可以根据客户现在的项目作为案例进行现场分析,找出相应的代码坏味道 内容二:某项目分析----重点了解现实项目代码的充斥大量坏味道 介绍项目需求情况,阅读现有代码指出代码坏症状 不看不知道,代码到底有多烂—触目惊心的代码 通过重构逐步改善代码质量 本案例学习多种代码的整洁方案 |
第三单元 代码质量度量 |
内容一:代码质量度量 代码质量的度量 通过分析多个实际项目,分别度量相关是否标准 内容二:代码评审 代码评审前期准备 代码评审的代码量 代码评审的检查表 代码评审的总结与学习 通过案例分析如何做好代码评审 |
第四单元 如何达到优秀的设计 |
内容一:什么是好的设计以及如何预先设计实现 什么是好的设计和衡量的手段 可扩展性(Extensibility)容易添加新的功能. 结合案例,通过那些手段如何实现该目标 灵活性(Flexibility)代码修改平稳地发生. 结合案例,通过那些手段如何实现该目标 可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进来. 结合案例,通过那些手段如何实现该目标 软件的变化分析---发现变化/封装变化/隔离变化 分析真实项目,如何预先设计,给我们哪些启示,我们可以学习到什么 内容二:代码设计中的通用模式 (GRASP模式) 什么是GRASP设计原则 信息专家模式和应用场景,以及案例分析 创建者模式和应用场景,以及案例分析 创建者模式和应用场景,以及案例分析 高内聚/低耦合模式和应用场景,以及案例分析 控制者模式和应用场景,以及案例分析 多态/纯虚构模式和应用场景,以及案例分析 间接/保护变量模式和应用场景,以及案例分析 分析某个具体项目,如何设计重构,给我们哪些启示,我们可以学习到什么 内容四:案例—某项目设计思路分析 案例情况 演示如何发现设计坏味道,以及如何重构 |
第一单元 规范编码与优劣代码的判定 内容一:成为卓越的程序员----代码能力及关键因素 软件的核心是什么(市场?管理?技术?需求?销售?测试?) 做一个优秀的程序员并不简单! 低头看路与抬头看天——理论与实践的结合 优秀代码的评价标准 优秀的代码,而不仅是可以运行的代码 劣质代码的代价 内容二:编码规范 通用的编码规范 C/C++/java/C#/编码规范 内容三:案例—通过实际项目演示优秀的代码及不佳代码 介绍项目背景,展现设计细想 阅读代码指出代码坏症状 重构为优秀的代码,介绍重构的思想及代码对比 |
第二单元 整洁代码之道 内容一:代码的坏味道—代码的质量底线 代码坏味道概述 代码坏味道——程序员与医生的区别 代码坏味道----低级篇(重复的代码、过长的函数、过大的类、过长的参数列表、发散式变化、分散的修改) 代码坏味道----中级篇(伪面向对象的调用、数据泥团、基本类型的误用、switch-case结构的误用、平行继承体系、过薄的类、只有局部意义的成员变量) 代码坏味道----高级篇(过度耦合的消息链、过薄的中间对象、紧耦合类、相似的类、只有数据的类、滥用类的继承关系) 通过案例,让学员寻找代码坏味道 可以根据客户现在的项目作为案例进行现场分析,找出相应的代码坏味道 内容二:某项目分析----重点了解现实项目代码的充斥大量坏味道 介绍项目需求情况,阅读现有代码指出代码坏症状 不看不知道,代码到底有多烂—触目惊心的代码 通过重构逐步改善代码质量 本案例学习多种代码的整洁方案 |
第三单元 代码质量度量 内容一:代码质量度量 代码质量的度量 通过分析多个实际项目,分别度量相关是否标准 内容二:代码评审 代码评审前期准备 代码评审的代码量 代码评审的检查表 代码评审的总结与学习 通过案例分析如何做好代码评审 |
第四单元 如何达到优秀的设计 内容一:什么是好的设计以及如何预先设计实现 什么是好的设计和衡量的手段 可扩展性(Extensibility)容易添加新的功能. 结合案例,通过那些手段如何实现该目标 灵活性(Flexibility)代码修改平稳地发生. 结合案例,通过那些手段如何实现该目标 可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进来. 结合案例,通过那些手段如何实现该目标 软件的变化分析---发现变化/封装变化/隔离变化 分析真实项目,如何预先设计,给我们哪些启示,我们可以学习到什么 内容二:代码设计中的通用模式 (GRASP模式) 什么是GRASP设计原则 信息专家模式和应用场景,以及案例分析 创建者模式和应用场景,以及案例分析 创建者模式和应用场景,以及案例分析 高内聚/低耦合模式和应用场景,以及案例分析 控制者模式和应用场景,以及案例分析 多态/纯虚构模式和应用场景,以及案例分析 间接/保护变量模式和应用场景,以及案例分析 分析某个具体项目,如何设计重构,给我们哪些启示,我们可以学习到什么 内容四:案例—某项目设计思路分析 案例情况 演示如何发现设计坏味道,以及如何重构 |