美文网首页
谈谈重构

谈谈重构

作者: 张晓乙 | 来源:发表于2019-01-18 23:22 被阅读0次

      又隔了一天写博客,哎,事与愿违!今天我们来谈谈重构这个话题,我们首先要认清一个事实是任何傻瓜都可以写出可运行的代码,唯有写出让人类容易理解的代码才是优秀的程序员,会写java代码的人多的很,随便一个从培训机构出来的初中生都可以,工作5年的你难不成跟他们一样仅限于会功能实现吗?

      本次重构很多观点来自于《重构-改善既有代码》与《代码整洁之道》这两本书,大伙可以买来看看,很多观点我们都知道,只是没有形成一个统一的总结。首先我先说下我们重构的一个简单理念要小步前进、快速迭代,怎么快速迭代呢?就是要有尽量完善的单元测试来覆盖你的修改,没有这个我们就不要去想着重构了,太TM危险了。

 这次重构主要讲的点:

 1.不要有长函数,如果你的一个函数一屏幕都展示不完或者如果你需要用注释来解释你写的代码的业务时,那就说明你该拆分你的代码了,原因很简单,复用性不够,可读性太差,不利于维护,当然还有一点就是函数调用千万不允许太深了,原因就是你跟谁捉迷藏呢?打算玩后面接你代码的人吗?

2.尽可能去除临时变量,原因就是临时变量传来传去,代码可读性很受影响,我们可以使用函数方法替换他。

3.每个方法尽量单一职责,这样代码的复用性才会高。

4.不要让一个临时变量被赋值超过一次,如果这样,说明这个变量承担一个以上的职责,第二个变量该怎么命名怎么命名,不要嫌麻烦。或者用查询替换了这个变量。

5.所有变量名方法名类型命名一定要有讲究,最好是一看名字就知道这个东西是干什么的了,起到注释的作用,还有就是实体类一定要是名词、方法使用动词。

6.不要使用switch或三个以上的if/else,这个是很惊悚的,如果是这样的话我们可以考虑状态模式,或者如果很多就考虑使用数据库之类的技术吧,不要懒!

7.当类作为参数时候不允许重新赋值,因为java的方法传递方式是值传递,原理是拷贝了一份地址给参数了,你重新赋一个新的对象是给这个对象是有问题的。

8.要尽量保证系统不存在相同逻辑块,有这么一句话,第一次做尽管做,第二次不想做也做,第三次我们就得重构了。

9.参数不要超过三个,这样会导致测试覆盖率成倍增加,而且很容易传递错。

11.还有将丑陋的try/catch尽量单独一个方法处理,try/catch本来就不是业务需要关心的东西,我们应该尽量让他跟逻辑分离。

。。。。。。

还有很多,想到再加,重构很重要,虽然不是什么银弹,但是他是让你的代码保持可拓展性的根本。还有,这只是一个开始,这是一门很深的学问,还有一个重要的原则是我们做这件事的时候不能为了重构而重构,我们应该是当有新需求的时候,嗅到了这块逻辑有变质的风险的时候才去重构,深度测试,重构跟需求本来就是螺旋前进的过程,还有人说的我的代码运行好好的,为什么要重构呢?这个问题又回到了之前的问题了,写的代码是给人看的,不是说正常逻辑走通了就行了,其中隐藏了无数bug你清楚吗?说不定你经过重构与测试,这无数个bug就消失了,一下说这么多是不是有点接受不了,没关系,仔细琢磨琢磨。

相关文章

  • 谈谈重构

    又隔了一天写博客,哎,事与愿违!今天我们来谈谈重构这个话题,我们首先要认清一个事实是任何傻瓜都可以写出可运行...

  • iOS代码重构

    遗留代码重构的原因: 风险: 详情链接:浅谈遗留代码的重构 从以下几个方面谈谈重构 1. 整理资源文件 删除未使用...

  • 用户运营:我对AARRR模型的理解

    一、从重构AARRR模型开始 今天和大家谈谈我对AARRR模型的理解与重构。 首先根据个人的工作经历,我将传统的A...

  • 代码的坏味道

    简述 今天主要简单的谈谈重构。重构在项目的开发周期中其实蛮重要的,不过很多小公司并不在乎。多数创业公司和产品都是试...

  • 何时应该维护、重构或重写代码

    让我们谈谈重构与重写代码。一般来说,我们的倾向是保持遗留项目的可维护性,但当这根本不可能时,我们就会开始分析重构或...

  • 代码重构专题(转载)

    代码重构(一):函数重构规则代码重构(二):类重构规则代码重构(三):数据重构规则代码重构(四):条件表达式重构规...

  • 重构代码之美

    什么是重构; 为什么要重构; 什么时候重构; 怎样避免重构的现象; 重构的难点在哪里; 如何来实施代码重构; 重构...

  • 30 - 重构之代码解耦

    重构可以分为大规模高层重构(简称“大型重构”)和小规模低层次重构(简称“小型重构”)。大型重构是对系统、模块、代码...

  • 重构、重构、重构

    【待完成】

  • 重构

    为何重构? 1.重构改进软件设计 2.重构使软件更容易理解 3.重构帮助找到bug 4.重构提高编程速度 何时重构...

网友评论

      本文标题:谈谈重构

      本文链接:https://www.haomeiwen.com/subject/kfuodqtx.html