高级软件工程建设师详细设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级软件工程建设师详细设计

为什么这是优秀的设计?——解救篇 优秀设计第一法则——开闭原则 何谓开闭原则?软件组成实体(类、模块、函数,等等)应该是可扩展的,但是不可修改的。(即软件实体可以通过增加代码实现扩展,但是不能修改已有代码)。 如何实现开闭原则?——2个基本思想 共性和可变性分析 正确的接受现实——重构 为什么这是优秀的设计?——解救篇 共性可变性分析 实现抽象:在oopl中,可以创建出固定却能描述一组任意个可能行为的抽象体,这个抽象就像抽象基类或者接口,任意可能的行为就是可能的派生类。 针对接口(抽象)设计:由于模块之间依赖一个固定的抽象,所以它对更改可以是关闭的。 注意抽象有度 为什么这是优秀的设计?——重构篇 正确的接受现实——重构 面对复杂的领域多变性,设计师根据经验猜测程序可能遭遇的变化,如果猜测正确,获得成功;如果猜测错误,遭受失败。 有时为了不必要的复杂性,我们会被愚弄(没有抽象)。但是当变化发生时,我们就应该创建抽象进行隔离以后的同类变化。(题外话:我们设计人员应该积极地参与到需求过程,这样我们的预测才有可能正确!) 即对软件内部结构的一种调整,目的是不改变功能的前提下,提高其可理解性,降低其修改成本 代码的坏味道与重构 代码的坏味道概述 坏味道解决之道-重构技术 坏味道 代码坏味道(code smell),是指在代码之中潜在问题的警示信号.并非所有的坏味道 所指示的确实是问题,但是对于大多数坏味道,均很有必要加以查看,并做出相应决定 代码坏味道是需要重构的症状。或者潜在的问题(Potential Problem)或者缺陷(Flaw) 代码坏味道和拙劣设计相比是低的层次,重点在代码的层次 生病的症状 21种代码坏味道-1 Duplicated Code 重复代码  Long Method 过长方法  Large Class 过长类  Long Parameter List 过长参数列表  Divergent Change 发散式变化  Shotgun Surgery 霰弹式修改  Feature Envy 特性依恋  Data Clumps 数据泥团  Primitive Obsession 基本类型偏执  Switch Statements switch语句  21种代码坏味道-2 Data Class 数据类  Refused Bequest 拒绝继承  Comments 注释过多 Temporary Field 临时字段  Message Chains 消息链  Middle Man 中间人  Inappropriate Intimacy 过度亲密  Lazy Class 冗余类   21种代码坏味道-3 Parallel Inheritance Hierarchies平 行继承体系  Speculative Generality 理论上的一般性  Alternative Classes with Different Interfaces接 口不同的等效类 Incomplete Library Class 不完整的库类 21种代码坏味道_治疗手段 软件重构—面临的困难 程序员方面 公司方面 如何改变现状 程序员方面 不知道如何去重构,认识没有达到一定程度。 程序员的认识有问题,认为别人写的垃圾都 很垃圾不如自己写的,还不如将此功能块重新开发。 个人误区,认为做新项目好,能学到新的东西,不喜欢维护旧项目,忽略了提高技能,而不是技巧。 公司方面 认为做出来东西才有价值,因为你做了两个月,可能界面和功 能一点都没有变。 公司没有那么多时间和精力让你去重构 对项目的工期评估有问题: 根据业界统计: 其中一个项目从设计到上线运行,前期的总成本和工时只占 软件总成本和总工时的20%-40%,后期占60%-80%。 重构过程中,没有为公司带来直接的价格,不如新开发项目。 如何改变现状 尽量挤时间从设计开始就不断去重构,开发中更要重视重构, 不要等到项目都要上线了,再去想着重构 积极去面对重构 下面看一个实际项目中重构的例子 回顾 架构的输出=详细设计的输入 (结构视图) 一个菜鸟的代码成长过程 什么是优秀的设计? 做设计的一些基本法则? 为什么要重构?如何重构? 重构遇到的问题,如何去解决? 谢谢!!! * * ? Evolve by case 我们来看设计 前言 架构的输出=详细设计的输入 (结构视图) 一个菜鸟的代码成长过程 什么是优秀的设计? 做设计的一些基本法则? 为什么要重构?如何重构? 重构遇到的问题,如何去解决 我们所处的位置——需求/架构/设计关系 架构的输出=详细设计的输入 功能视图

文档评论(0)

lau158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档