副标题 |
软件项目经理必修课 |
主办单位 |
巅峰培训会员单位 |
学员对象 |
软件工程师、项目经理 |
授课时间 |
2009年12月5-6日 、[长期举办,最新时间请咨询] |
授课顾问 |
赵老师 |
授课地点 |
北京 |
搜索北京 |
每班人数 |
|
|
报价 |
1800
- 在线免费预定报名一周内确定缴费者
可享团体优惠价! |
课程目的 |
|
本课程是程序员走向项目经理的快速捷径,更是项目经理提升技术管理水平的葵花宝典,课程对软件企业提高工作效率,促进软件生产能力,具有不可多得的推动作用。
课程起源:代码是软件工程师的基本功,但相当一部分程序员写了几年代码仍然不得章法,被认为“没有程序的味道”,而且还养成了许多错误的编程习惯,这导致很多企业,工作效率低下,产品或项目交付延期且要不断地加班加点的恶性循环局面。这种状况不仅加大了企业的运营成本,影响了企业的生产力水平,而且严重制约了企业的快速发展。
为此,如何降低软件项目或产品成本,提高软件工程师的生产力水平,我们邀请了多位软件过程改进著名专家和程序高手,收集了大量的真实案例,针对项目过程中技术人员常犯的错误进行了汇总,研讨,并最终形成改进解决方案的培训教程。课程将通过大量的真实案例和代码,以“魔鬼训练”式的代码训练方式让学员通过亲自动手操作来理解代码设计,编写,重构以及调试。
课程收获:代码能力训练是根据2/8原则,程序编写中常见的错误80%都是重复的理论,本课程总结了程序员非常易犯的若干种错误,汇聚了软件开发常见的多种设计模式以及多个编程实战技巧,重点侧重于程序员实际职业能力的提升。讲师从程序编写人员的基本编程习惯开始讲解,通过大量的真实案例,贯穿了设计、编码、重构、调试等整个软件生命周期过程,详细地介绍了各个阶段需要注意的要点以及难点,这些知识都是培训师十几年编程经验的总结,如何避免重复犯错,让代码更具健壮性是代码能力的关键点。
本课程是程序员走向成熟并迅速成长为项目经理的必经之路。
|
|
课程内容 |
|
课程纲要:
第一单元:面向对象程序设计的原则与模式
1.衡量软件系统质量的标准
从一个案例说起:
工程中常见的设计不佳的系统举例,分析其中设计失败的关键之处。
1) 复合文件系统。
2) 资源库系统。
问题所在
1)强耦合的坏处。2)低内聚的缺陷。3)避免“打补丁”式的修改。
2.用面向对象设计的原理优化设计
类的设计原则:开闭原则、依赖倒置原则、Liskov替换原则、单一职责原则、接口分离原则、组合复用原则、所知最少原则
通过案例说明:
1) 练习:对磁盘文件的处理,依赖注入的具体使用场合。
2) Liskov替换原则:
a) 例:会议管理系统。
b) 例:GUI组件
c) 例:线/线段。
d) 其它:脆弱基类的讨论。
3) 练习:设计媒体墙系统;关注单一职责原则,讨论各个方案的优缺点。
4) 接口设计中的问题:
a) 接口功能要内聚,接口中方法的数量要合适。
b) 扩展:内接口与外接口。核心部分对外暴露内接口,其它部分暴露出供外调用的外接口。
c) 扩展:普通接口与智能接口。智能接口供高层调用者,或不关心细节的调用者调用,普通接口供关系细节的调用者调用。
d) 工程实践中经常遇到的接口设计疑惑;简单但易出错的陷阱。
通过举例说明包内聚原则,耦合原则:
1) 常见的解耦方法。
2) 例:代码的坏味道:分散的变化。
3) 与保护变化、隔离关注面、职责单一等的关系。
3. GRASP模式在程序设计中的运用
GRASP模式:信息专家、创建者、高内聚、低耦合、控制者、多态、间接、纯虚构、保护变化
案例分析:
1) 商店收银系统:违反信息专家的设计方式,使用信息专家的设计方式。
2) 面向对象与信息专家模式的联系;面向对象的本质是什么。
3) 商务系统:大型系统中的信息专家模式运用。
4) 数据分析系统:数据字典使用中的创建者模式。
5) 工程中常见的包组织形式及创建者模式在其中的使用。
6) 资源库系统:低耦合的设计要点。
7) 信息抽取系统:不要死板地套用3层/4层结构,系统中低耦合设计要点。
8) 保存Html文档:高内聚的指导意义。
9) 对长函数的处理:控制者模式。
10) Socket编程:控制者模式举例。
11) 角色设计:用间接模式来处理不断变化的加密需求。
4. 面向对象设计中的经验原则介绍(20条)
1) 当类包含多于6个数据成员时,可以把逻辑相关的数据成员划分为一组,然后用一个新的包含类去包含这一组成员。 等等。
第二单元:灵活使用GOF设计模式避免走弯路
1.常用模式
模板方式模式、适配器模式、工厂方式模式、抽象工厂模式、策略模式、桥接模式、观察者模式、命令模式、装饰模式等。
2.需要背下来的定式――从实际中总结软件设计中的常见用法
1) 用策略 / 桥接 / 访问者模式作为中心骨架。
2) 用工厂 / 抽象工厂模式进行组装。
3) 用命令模式处理事务。
3. 模式案例分析:
1) 练习及分析:WDL解析系统:
a) 初始设计的缺陷分析。
b) 用模式重构:外观模式实现智能接口。
c) 桥接模式处理多对多的变化。
d) 模板方法模式统一流程。
e) 抽象工厂模式组织使用方案。
f) 单例模式的典型运用。
g) 适配器模式用于组织第3方模块。
2) ERO系统的设计分析:不能套用模式的场合。
a) 典型场合下的典型设计。
b) 深入分析后的领悟。
c) 按工程实际进行设计,而非套用模式。
3) 薪酬系统:
a) 从需求中做的抽象。
b) 桥接模式的典型运用。
c) 策略的选择:抽象工厂模式组织使用。
4) 练习:货运系统:
a) 策略模式的典型运用。
b) 抽象工厂模式的运用。
c) 对本系统中的常见错误设计分析,领悟策略模式的要点。
3.GOF高级话题讨论:
抛弃众多的原则、模式,看问题的本质:设计模式的实用分类及运用。
模式的高级运用分析:
1) 对间接类模式的本质分析。
2) 对多对多类型模式的本质分析。
3) 对命令模式的本质分析。
4) 对主体-附加类模式的本质分析。
5) 设计模式其实不难!
第三单元:用UML辅助系统分析与设计
1.UML中的常见疑难问题辨析
1. 用例图:UseCase的本质讨论。
2. 类设计
案例分析:
1) 搜索引擎中的建模:依赖关系、关联关系辨析
2) 商场收银系统中的类设计:建模为属性 / 类 / 基类-派生类 / 策略模式的抉择。
3) 杂志订阅系统中的类设计。
4) 汽车销售系统中的类设计。
3. 其它辨析:略
2.借鉴RUP的设计过程。
边界类、实体类、控制类的设计要点。
案例分析:
1. 复合文件编辑系统:
系统设计中的常见问题。
2. WDL文件解析系统:
初始设计的问题分析。
第四单元:对不良代码的重构
1. 常见的不良代码:
重复的代码、过长的函数、过大的类、过长的参数列表、发散式变化、分散的修改、伪面向对象的调用、数据泥团、基本类型的误用、switch-case结构的误用、平行继承体系、过薄的类、只有局部意义的成员变量、过度耦合的消息链、过薄的中间对象、紧耦合类、相似的类、只有数据的类、滥用类的继承关系
2. 对代码与结构重构的实际运用:
1) 结构不良的系统的典型表现。
2) 划分逻辑层次。
3) 把整理好的模块划归不同的逻辑层。
4) 提取控制类 + 纯虚构类,整理流程。
5) 整理模块间、层间的消息通知机制。
6) 数据层的考虑。
7) 运用命令模式等,重构主要的函数调用。
第五单元:框架搭建及实例分析
工程中常见的架构风格及案例讨论:
1. 系统软件:
分层(Layer)、管道和过滤器(Pipes and Filters)、黑板(Blackboard)
1) 数据采集系统:用分层组织系统的设计。
2) 搜索系统:用分层组织系统的设计。
3) 信息分析系统:管道过滤器的实际使用。
4) 信息分析系统:黑板模式的实际使用。
5) 人工智能系统:黑板模式的实际使用。
2. 分布式软件:
1) 讨论:异构系统间的通讯模式:经纪人(Broker)的典型运用场景。
2) 客户/服务器(Client/Server)模式。
3) 点对点(Peer to Peer)模式。
3. 交互式软件:
1) MVC模式的具体运用:图像模板编辑工具中的典型运用。
2) 显示-抽象-控制(PAC).
第六单元:案例分析:略
|
|
备注 |
|
课程对象:具有1-3年编程经验的程序员、项目经理
课程时间:12月5-6日
培训费用:1800元/人
报名须知:请认真填写《报名回执表》,并经单位确认后,发送传真或电子邮件至联系人。
|
|
报名电话 |
010-8243115O
、微信:QQ1391156248(电话或微信咨询) |
报名方式 |
点击下载报名表.DOC
(2个工作日内处理) |
. |