卓越程序员编程最佳实践

类别:个人技能      编号:KC7793

  • 开课日期培训天数上课地区状态
  • 2013年08月30-31日2天北京市已过期
  • 原价:¥3200优惠价:¥3040

    招生对象:

    1年以上软件开发经验的程序员、项目经理、技术主管

    课程介绍:

    为了切实帮助软件企业降低企业项目开发成本,大面积提高软件工程师单兵软件生产能力,本中心推出了旨在快速提升程序员代码与编程能力的最新课程——软件工程师职业能力——实力进阶训练营,将通过“魔鬼训练”式的代码训练,提高程序员的代码与编程能力,以此促进企业软件生产力水平的大幅度提高。

    本课程是程序员走向项目经理的快速捷径,更是项目经理提升技术管理水平的葵花宝典,课程对软件企业提高工作效率,促进软件生产能力,具有不可多得的推动作用。

    课程起源:代码是软件工程师的基本功,但相当一部分程序员写了几年代码仍然不得章法,被认为“没有程序的味道”,而且还养成了许多错误的编程习惯,这导致很多企业,工作效率低下,产品或项目交付延期且要不断地加班加点的恶性循环局面。这种状况不仅加大了企业的运营成本,影响了企业的生产力水平,而且严重制约了企业的快速发展。

    为此,如何降低软件项目或产品成本,提高软件工程师的生产力水平,我们邀请了多位软件过程改进著名专家和程序高手,收集了大量的真实案例,针对项目过程中技术人员常犯的错误进行了汇总,研讨,并最终形成改进解决方案的培训教程。课程将通过大量的真实案例和代码,以“魔鬼训练”式的代码训练方式让学员通过亲自动手操作来理解代码设计,编写,重构以及调试。

    课程收获:代码能力训练是根据2/8原则,程序编写中常见的错误80%都是重复的理论,本课程总结了程序员非常易犯的若干种错误,汇聚了软件开发常见的多种设计模式以及多个编程实战技巧,重点侧重于程序员实际职业能力的提升。讲师从程序编写人员的基本编程习惯开始讲解,通过大量的真实案例,贯穿了设计、编码、重构、调试等整个软件生命周期过程,详细地介绍了各个阶段需要注意的要点以及难点,这些知识都是培训师十几年编程经验的总结,如何避免重复犯错,让代码更具健壮性是代码能力的关键点。

    本课程是程序员走向成熟并迅速成长为项目经理的必经之路。

    课程对象:具有1-3年编程经验的程序员、项目经理

    课程时间:12月25-26日

    课程纲要:

    第一单元:面向对象程序设计的原则与模式

    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)、管道和过滤器(PipesandFilters)、黑板(Blackboard)

    1)数据采集系统:用分层组织系统的设计。

    2)搜索系统:用分层组织系统的设计。

    3)信息分析系统:管道过滤器的实际使用。

    4)信息分析系统:黑板模式的实际使用。

    5)人工智能系统:黑板模式的实际使用。

    2.分布式软件:

    1)讨论:异构系统间的通讯模式:经纪人(Broker)的典型运用场景。

    2)客户/服务器(Client/Server)模式。

    3)点对点(PeertoPeer)模式。

    3.交互式软件:

    1)MVC模式的具体运用:图像模板编辑工具中的典型运用。

    2)显示-抽象-控制(PAC).

    第六单元:案例分析:略

    讲师介绍:

    康老师,国内资深高级系统架构师,UML/RUP专家,现任国内某知名企业研究院首席架构师,软件设计师。具有15年的从事IT行业的软件开发、系统架构设计分析经验。熟悉中国企业的需求管理,经历过多种文化氛围与组织形态,对大型项目、系统工程管理有着深入的实践与体会。最难能可贵的是康老师现在一直工作在实际项目的大型软件开发、系统架构设计的一线。主要客户包括:中国工商银行、中国农业银行、国家开发银行、交通银行、中国铁通、中国电信、中电集团、中石油、中石化、西南电信、海关总署、中国科学院计算机网络信息中心、中国航天研究院、上海盛大网络、上海证券研究所、上海携程计算机、杭州恒生电子等上百家企事业单位。

    热门公开课

    人才盘点最佳实践精准识人2024-04-26/广州 学德鲁克:卓越管理者的五2024-09-06/深圳 研发项目管理最佳实践实战2024-05-24/深圳 MTP中高层管理者卓越领2024-04-26/广州 项目全过程管理控制与实践2024-08-15/广州 逆境下经理人的心理调控与2024-08-14/上海