[内训课]卓越程序员的技术修炼

  • 课程编号:C0005803
  • 发布时间:2010-01-21
  • 浏览量:107,606
  • 状态:发布中
提示:电话咨询时请说明来自智库培训,
以便获得更优质的服务。

课程详情至顶端

培训对象

1-3年的程序员、项目经理

培训收益

课程收获:代码能力训练是根据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).

第六单元:案例分析:略

课程安排

课程共计2天,16课时。根据企业要求可适当延长。

其他信息

培训费用:1800元/人
报名须知:请认真填写《报名回执表》,并经单位确认后,发送传真或电子邮件至联系人。

发布者简介 至顶端

北京博思创嘉教育科技有限公司是一家致力于教育科技创新与信息技术咨询服务的新型科技公司。 公司以“博思...

联系方式 至顶端

    • 联系电话:0592-8269738
    • MBA智库培训QQ:3588662388
    • 微信号:mba51214,加好友请备注:***公开课或者***内训咨询,谢谢
提示:咨询培训机构时请说明来自智库培训,以便获得更优质的服务。

在线咨询 至顶端

* 您的姓名:
性别/称呼:   
* 咨询事项:
为了您的咨询更加及时地得到回复,请您务必留下至少一种有效的联系方式:
联系电话: (区号-电话号码)
手机号码:
电子邮件:
* 验证码:

在线报名 至顶端

* 您的姓名: * 报名人数:
性别/称呼:   
为了您的报名更加及时地得到处理,请您务必留下至少一种有效的联系方式:
联系电话: (区号-电话号码)
手机号码:
电子邮件:
报名说明:
* 验证码:

相关内训课程 至顶端

课程名[领域] 发布者 发布时间
没有相关内训课程
  智库首页 - 培训首页 - 关于智库培训 - 服务推广报价 - 联系我们 - 友情链接 - 权利通知 - 使用帮助