软件设计,那些你不知道的事

发布时间:2020-07-24 14:19:46 作者:heishaovvv
来源:网络 阅读:170

代码质量和产出是衡量一个程序员是否优秀最直接的标准。如何提高代码质量和产出?这就要从软件重构和review入手。市面上有很多关于重构和review的书籍,但是看完之后,代码能力并不能立竿见影显著提升,只能帮助我们解决表面的bug和规范点,无法帮助我们发现更深层次的设计问题。

从设计角度来考虑review,识别代码坏味道可以可以有效减少技术债务。技术债务是指有意或无意的做出错误的或非最优的设计决策所引发的债务。债务越积越多,最后只能重新彻底重构项目才能解决问题,这也叫做技术破产。如何解决技术债务问题,就要从根源上明确引起技术债务的重要的原因——设计坏味和重构认识不足。

首先要明确软件设计原则

我们从设计的角度来看代码时,要遵循六要素:

软件设计,那些你不知道的事

了解完设计原则和六要素后,我们再来看设计坏味。

软件设计,那些你不知道的事

本文中每种坏味我们只选其中一例做具体说明。

抽象型坏味

抽象原则倡导通过精简和概括来简化实体:精简指的是删除不必要的细节,而概括指的是找出并定义通过的重要特征。交通标志是用于交流的抽象示例,而数字符号和编程语言是用于解决问题的抽象示例。

软件设计,那些你不知道的事

缺失抽象

使用一系列数据或者编码字符串,而不创建类或者接口时会产生这种坏味

  1. 概念

  1. 潜在原因

  1. 示例

软件设计,那些你不知道的事

重构建议:从Jdk1.4起对JAVA的API进行了改进,StackTraceElement类就是原来设计中缺失的对象。

软件设计,那些你不知道的事

  1. 别名

  1. 现实考虑

封装型坏味

封装原则倡导通过隐藏抽象的实现细节和隐藏变化等手法实现关注的分离和信息隐藏。比如开车必须知道发动机原理吗?

软件设计,那些你不知道的事


不充分的封装

对于抽象的一个或多个成员,声明的访问权限超过了实际需求时,将导致这种坏味。例如,将字段声明为公有的类就存在「不充分封装」坏味。

  1. 概念

  1. 潜在原因

  1. 示例

软件设计,那些你不知道的事

  1. 重构建议:Java 1.6引入了java.io.Console类,他提供了用于访问基于字符的控制台的方法。reader()、writer()来获取Console相关的Writer和Reader对象。

  2. 别名

  1. 现实考虑

模块化坏味

模块化原则倡导利用集中和分解等手法创建高内聚、低耦合的抽象。

软件设计,那些你不知道的事

拆散的模块化

应集中放在一个抽象中的数据和方法分散在多个抽象中时,将导致这种坏味。表现为类被用作数据容器没有任何方法、类的方法更多的被其他类的成员调用。

  1. 概念
    一种重要的模块化实现手法是「将相关的数据和方法集中在一起」。如果抽象中只包含数据成员,而操作这些数据成员的方法位于其他抽象中,它就违反了这种实现手法,存在「拆散的模块化」坏味。称为拆散的模块化(Broken Modularization)。

  2. 潜在原因

  1. 重构建议
    对于包含大量数据类的过程型设计,可采用重构手法“将过程型设计转换为对象”。

  2. 别名

  1. 现实考虑

软件设计,那些你不知道的事

缺失的层次结构

代码片段使用条件逻辑来显式管理行为变化,而原本可以创建一个层次目录,并使用它来封装这些变化,会产生这种坏味

  1. 概念

  1. 潜在原因

  1. 示例

软件设计,那些你不知道的事

  1. 重构建议

  1. 别名

  1. 现实考虑



——————————————————分割线——————————————————

我是小微,专注微服务技术分享,致力挖掘更多“高、精、全”的微服务知识分享给大家。

我的微信:weiweiweiblack (备注:51CTO )

微信公号:黑少微服务,“分享技术,热爱生活”,欢迎关注


推荐阅读:
  1. 你所不知道的html5与html中的那些事(一)
  2. 详解php中switch你可能不知道的事

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

微服务 review 软件重构

上一篇:Oracle学习笔记之第七节手动数据库链介绍

下一篇:Android的软应用的使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》