重构,改善代码设计----初览

发布时间:2020-06-14 20:09:19 作者:niceheart
来源:网络 阅读:657

   看完《重构-改善既有代码的设计》一书,心里激起了点涟漪,既感觉有那么点感觉在以后的代码中小试牛刀,又感觉好些东西虽然看过了,可实际使用时还是会遇上莫名的问题的。没看之前头脑是清晰的,看了后反而头大了,不知所云……

   既然头大,那我就慢慢梳理一下吧!

   重构一共十五章:

   第一章:重构,第一个案例

        本章开始引入重构,用一个案例让我们尝试一点点甜头,然后对重构起一个总纲的作用,涉及到后边章节中的一些重构手法;重点讲了什么时候重构,如何重构,重构的步骤,重构时需要的准备工作,重构手法,重构技术等等。

        本章总结:以微小的步伐修改程序,每修改一处并及时测试,是否有所改变,若改变则立刻回到上一步检查,因为重构的本质是不改变功能的任何变化,只改变阅读效果。


   第二章:重构原则

         本章讲了重构的定义,重构的原则,重构目的以及何时重构。我分别把两个不同方式定义列出:

  (1)重构定义-名次形式:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低修改成本。

  (2)重构定义-动词形式:使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。

   接下来我对性能优化和重构的区别谈谈:

   性能优化:目的是提高性能,代码往往不易理解,但为了性能不得不这样做;

   重构    :使代码易被理解,易被修改,但软件功能一如既往。

   重构遵守原则:

   (1)加新功能则不重构;

   (2)重构时不加新功能。


   第三章:代码坏味道(重要章节)

         本章重点谈了常见的22个坏味道的地方,同时给出了22种解决方案来一一解决这些问题,相当于22把铡刀,为重构能顺利进行剔除了障碍,有了他们的护航,我们会更加自信的去做这些事,而且知道怎么做,用什么去做,对号入座,具体每一个方法不一一列出,请直接看书会更精彩。


   第四章:构筑测试体系

         本章重点谈了要能顺利并很好的进行重构,必须有一个好的测试作为保障,否则重构后的功能面目全非,南辕北辙,这偏离了我们的本意。

         构筑一套测试体系就是一个强大的bug侦测器,能够大大缩减查找bug所需的时间。

         严格要求:一步一测试。


   第五章:重构列表

         本章重点介绍了重构时如何进行记录列表,如何寻找引用点,如何运用重构手法进行重构。


   第六章:重新组织函数(重要章节)

         本章是在第三章的基础上再次对重构手法深入学习,运用了9个重构手法对函数进行重组,每一个手法都足以让你一醉不醒,强烈建议去看书,此处只做概论不细说,这里也算是9把铡刀,而且会更锋利。

   第七章:在对象之间搬移特性(重要章节)

         本章重点对字段、函数,类等一些处理方式,使用了8个重构手法针对对象之间的特性进行处理,其中每一个手法都会让你眼前一亮,绝对高大上,重点是搬移那些不该出现在不该出现的地方的对象,通过这8把铡刀,足以让他们生活属于自己的领地领空,要知道,当今的领域管理很严格,去到不该去的地方,小心×××把你给毁了。


   第八章:重新组织数据(重要章节)

         本章主要是规范数据,尤其对哪些魔法数恨之入骨,所以编码时尤其小心。针对数据采用了16个手法进行处理,细看后会让你扑朔迷离,真有一如重构深似海的感觉。

         对魔法数解释一下,我刚开始看的时候我也不知道是什么意思。

         魔法数:即指带有特殊含义的数字。指哪些在代码中直接使用的数字,此时遇上这种,解决方式就是用一个常量去替换掉,比如3.1415926

         本章的很多重构手法需要好好研究,其中Replace Type code with subclasses(以子类取代类型编码),Replace Type code with state/strategy(以state/strategy取代类型码)等。

         硬编码值:只固定值,比如常量,1,0 等。


   第九章:简化条件表达式(重要章节)

         本章用8个手法对不同的表达式进行处理,优化的表达式的逻辑结构,比较核心的如Replace Conditional with Polymorphism(以多态取代条件表达式),好好研究,受益无穷。


   第十章:简化函数调用(重要章节)

        本章核心是规范函数的名称,分离函数的逻辑与表示层,对函数的增减参数的处理,封装转型,异常处理等等,总共用了15个手法,让你对函数的使用提高一个高度,从此对函数的每一个参数,字段,名称不再持无所谓态度,有此良好的风格,得益于这15把铡刀的艺术修剪,此刻你已不能自拔。


   第十一章:处理概括关系(重要章节)

        先解释一下什么叫概括:所谓概括关系即继承关系。

        本章用12个手法将类与类之间的关系处理得相当好,犹如管理后宫一般,将每个类的职责划分得清清楚楚,有倒是增一分嫌多,减一分嫌少。根据类的职责将字段,方法移到他们该去的地方,将复杂的类提炼出独立的功能,如此减轻了类的负担,也使类能益年长寿。


   第十二章:大型重构

          本章总概了所有的重构手法,利用最后4张王牌为所有的重构的使用埋下伏笔,这四个重构手法可理解为道,而前几张手法理解为术,这是一种升华之象,融会贯通才是上上之策,此处的每一个手法可让你无法回头,细细品味吧。


   第十三章:重构,复用与现实

          本章轻描淡写的谈了作者的经验,在开发中实际遇上的问题,对重构再次加深印象,告诉你重构的本性,何时重构,何时开始,何时停止,何时前进,何时等待,只有敢于停止时就得道了。


   第十四章:重构工具

         本章对重构工具介绍和使用。


   第十五章:总结

         本章对重构高度总结,即给你鼓励也给你警示,总之一句话,何时得道,是在你停止重构时得道,重构漫漫,多少人能从中自拔,只见风飘飘兮易水寒,码农一去兮不复返。


   重构一书到处结束,个中滋味只有君读完才能体会,有时波涛汹涌、激情澎湃,有时万念俱灰,可每当停步时,我们总坚信,黎明的曙光就在前面,愿君伴之。

      

推荐阅读:
  1. 初玩prometheus
  2. 改善Defaults

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

软件 技术 程序

上一篇:已配置好的vue全家桶项目router,vuex,api,axios,vue-ls,async

下一篇:sql语句给数据库减肥,下面以网狐6603数据库减肥脚本

相关阅读

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

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