求知
文章
文库
Lib
视频
iPerson
课程
认证
咨询
工具
讲座
Model Center
Code
会员
找课
开班计划
|
技术学院
|
管理学院
|
嵌入式学院
|
机械
|
军工学院
|
定向培养
|
专家指导
电话
English
成功案例
品质保证
成功案例
某核电企 软件设计重构与代码
某集成电 多核体系的软件仿真
某电力能 设计模式原理及应用
南方航空 软件设计方法与实践
某跨国公 软件设计原理与实
爱立信( 软件设计
Moto 设计模式
更多...
全部课程
>
软件设计
卓越软件设计
3315 次浏览
55 次
张铭益
曾任HP中国资深架构师,连续四届荣获微软最有价值专家
地点时间:
北京,上海,深圳根据报名开班
课程费用:
4500元/人
报线下课
报直播课
企业内训:
可以根据企业需求,定制内训,详见
内训学习手册
认证方式:
培训前了解能力模型。
培训后进行能力评测:
在线考试
能力分析,给出学习建议
合格者颁发证书,作为职业技能资格证明
课程亮点:
1、全真案例,借助案例与设计模式知识的原理,借助最佳实践,帮助您提高设计能力,从而提高开发效率和设计质量
2、以新视角,揭示模式的本质、思想方法,剖析出模式之“道”,跳出“为模式而模式”的“陷阱”
3、提升设计能力,使开发人员由“编程小工”到设计专家
4、结合测试驱动开发与重构,提高软件设计质量,实现卓越软件设计
5、关注业界内设计模式,以实战训练驱动对设计模式的理解与运用
在课程中要逐一解决的问题:
1、员工无法接手遗留系统,原因是代码杂乱,可读性差
2、团队成员没有设计模式知识与经验,无法实施敏捷开发
3、系统难以重构,不利于产品的重用与二次开发
4、开发效率得不到保障,因为详细设计人员不能理解架构文档与详细设计方案
5、设计方案难于应对需求变更
6、设计的系统架构缺乏可扩展性、可维护性和可测试性,不能合理地重用
7、架构、设计、开发三个环节中各个角色不能理解设计意图,很难沟通
培训对象:
软件开发工程师,软件设计师
学员基础:
具有一定的开发和设计经验。
授课方式:
定制课程 + 案例讲解 + 小组讨论,60%案例讲解,40%实践演练
培训
内容:2天
卓越软件设计的五个指标
简单性
简单设计的四个要素
通过所有测试
无重复代码
体现设计意图
较少的类、方法
可重用性
面向对象的继承与组合
关注点分离原则
可读性
软件的成本
体现设计意图
体现业务价值
代码的命名与格式
可测试性
测试驱动开发
合理的职责分配
可扩展性
抽象
面向接口设计
案例实践:
Hadoop的版本变迁看简单设计:
通过比较两个版本的Hadoop实现,讲解如何保证设计的简单性(对Context模式的分析)
Email Server代码分析:
从面向过程式代码分析设计问题,然后运用简单设计的四个要素对代码进行改进(对Observer模式与Chain Of Responsibility模式的探讨、分析与比较)
权限认证系统:
通过抽象达到可重用设计,并简化客户端调用,协作合理,形成可扩展的认证机制(对Chain Of Responsibility、Template Method模式的探讨与分析)
设计匠艺的提炼与修行
职责的分配原则
DRY原则
程序等于数据加逻辑
高内聚低耦合
如无必要勿增实体
职责的合理分配
单一职责原则
信息专家模式
识别代码的坏味道
Chain Method
Feature Envy
Shotgun Surgery
Divergent Change
Large Class
Middle Man
职责分配的本质
职责驱动设计
时序图与职责分配
如何识别对象的职责
探索式方法
方法分组
观察隐藏的方法
寻找变化点
寻找方法和内部变量的关系
寻找主要职责
架构层级的职责分离
识别包图的坏味道
包的共同复用原则
如何划分组件或包
架构质量属性的考虑
职责分离的好处
高内聚松耦合
稳定
细粒度
变化可独自演化
避免类爆炸
案例
代码坏味道识别
提供多个代码案例,讲解如何识别代码坏味道,并针对代码坏味道进行重构,从而改善代码的设计与结构
Web参数处理:
分析如何寻找对象的职责,讲解如何合理分配对象职责,了解职责分配对设计的改善
报表引擎
分析如何划分系统模块
内容:双向依赖与循环依赖和包或模块的重用(对包重用原则的探讨分析)
培训系统
培训系统对票处理的方式,分析职责的变化与分离(对Bridge模式的探讨与分析)
抽象的本质
抽象的分类
抽象的层次
抽象需要遵循的原则
开放封闭原则
依赖倒置原则
抽象对设计的改善
抽象对设计的简化
抽象能避免重复
抽象保证对设计的一致性
扩展式设计
分离职责各司其职
利用抽象统一接口
引用接口预留空白
案例实践:
项目管理系统
通过对业务模型的分析,理解抽象对于建模的重要性,从而提高设计的质量,内容包括:
软件开发生命周期
领域建模
消息队列
通过分析JMS、MSMQ、RabbitMQ和NServiceBus的设计,理解抽象的含义,内容包括:
抽象与接口
接口隔离原则
按意图设计
Fa?ade模式
企业集成模式
CIMS基于消息的分布式架构
通过对服务的统一抽象,以及对消息处理的职责分配,建立一个协作合理的分布式架构,内容包括:
Command模式
Publisher – Subscriber模式
Message Bus模式
Message Translator模式
Lookup模式
ORM
订单系统
进一步理解职责分离与抽象应对变化,逐步改善设计。内容包括: Specification模式,Simple Factory模式,Chain Of Responsibility模式
场景驱动设计
场景驱动设计的6W原则
Who:角色
When:时序与协作
Where:边界与上下文
Why:价值
What:功能
HOW:实现
职责的三层图
业务价值:服务层
业务功能:领域层
业务实现:基础设施层
场景驱动设计过程
识别与分析场景
场景的三个目标层次
概要目标
用户目标
子功能
场景的角色入口
场景的边界与上下文
业务场景的活动流程
识别职责
通过业务的三层图建立职责层级
名词动词法
模型分类
领域建模
构建面向对象的虚拟世界
识别现实世界:业务目标、业务价值与用户意图
抽象:概念分类、统一概念、抽象模型、共性分析与可变性分析
领域驱动设计
案例实践:多租户服务订阅系统
根据一个真实案例,通过对需求进行分析以及编写用户故事,完整而统一地讲解了场景驱动设计过程中,如何识别场景与职责,如何进行领域建模与设计。
第一次迭代:租户的服务订阅,内容包括:
合理的职责分配
领域驱动设计中的实体与聚合根
时序图
Repository模式与Factory模式辨析
第二次迭代:特定用户的服务订阅,内容包括:
抽象的运用
Template Method模式
第三次迭代:需求发生变化,需要引入服务套餐。此时应该如何更改之前的设计,使得变化对设计的影响降到最低。内容包括:
Change Name重构
Extract Interface重构
Composite模式
第四次迭代:需要实现如下功能:
订阅者使用服务
使用第三方服务
内容包括:
如何合理地运用面向对象设计与设计模式对以上功能进行设计:
抽象接口
Command模式
Adapter模式
报线下课
报直播课
定制内训
3315 次浏览
55 次
其他人还看了课程
软件详细设计实践
3086 次浏览
软件设计模式最佳实践
11374 次浏览
软件设计重构与代码优化
1935 次浏览
软件详细设计、建模与编档
4606 次浏览
软件(详细)设计师
3297 次浏览
设计匠艺实战精要
1814 次浏览
咨询服务:架构评估与优化
咨询目标
对现有的架构进行评估,发现问题,并优化
咨询范围
业务架构,应用架构,数据架构,技术架构
咨询方式
对现有架构进行建模,然后诊断问题,对问题进行集成分析,设计优化方案,指导团队实施优化,最终效果评估。
成功案例
中国移动广西分公司,中国电信
详情咨询:010-62670969, zhgx@uml.net.cn
课程计划
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
LLM大模型应用与项目构建 12-26
[特惠]
UML和EA进行系统分析设计 12-20[线上]
数据建模方法与工具 12-3[北京]
SysML建模专家 1-16[北京]