重构的艺术 深入认识

重构是什么?

重构就是对软件内部结构的一种调整,目的是不改变软件可观察行为的前提下,提高可理解性,降低修改成本。不是为了提高性能,是为了提高可读性,可维护性。

重构,从某种角度讲,就是整理代码。整理归类。

程序员,要戴着两顶帽子,一个是添加新功能,一个是重构。对完成功能的代码进行整理。

重构的目的?

改进设计,使软件更容易理解。找出Bug,提高后期的编程速度。代码使逐渐的腐败的,腐烂的。经常的重构就是保证软件保质期的方法。

何时重构?

事不过三,三则重构。
添加新功能时重构。
修补错误时重构。
复审代码时重构。

不重构!
重构不如重新写。
项目已到截止期限。(时间宽裕时)

编写为可重用的中间件需要的时间比实现功能要多,要三倍时间。

开发者为什么不愿意重构?

客观:
时间不允许
经理不允许

主观:
缺乏重构意识
缺乏重构技巧
缺乏编程经验

提高自己的重构意识,重构实践,学习重构经验技巧。更好的让代码具有可读性,可维护性,可拓展性。健壮而不腐败。

原文地址:https://www.cnblogs.com/jiqing9006/p/9381829.html

时间: 2024-10-31 13:52:59

重构的艺术 深入认识的相关文章

无套路Java学习资源大全

声明: 所有资源在公众号<Java学习录>后台回复资源对应<>中的编码即可领取. 视频资源 15G的hapood教程<0001> 20G腾讯课堂课程汇总<0002> 92天的python 全栈开发-项目实战<0003> Angular Vue Easy UI ExtJS前端框架视频教程<0004> dubbo系列教程<0005> Java8新特性与设计模式<0006> java初级进阶到架构师148讲视频教程&

重构——程序猿的艺术

何为重构 重构:在不改变软件对外表现和行为的前提下修改已有代码使其易于理解,便于扩展 重构就是让代码易于程序猿理解.在重构的世界里代码是写给程序猿看的而非写给机器看,我们会忽视性能而专注于让代码对程序猿更友好(先让代码跑通,再去重构,最后才考虑性能优化) 为什么要重构 在添加功能前重构,可以时原有的代码更易扩展,简化功能添加难度 在改bug前重构,可以优化代码的结构,使逻辑更加清晰,更容易找出bug 在评审代码时(无论是自己的还是别人的代码都行)进行重构,可以加深对代码逻辑的理解 重复一遍: 重

Android艺术开发探索第三章————View的事件体系(下)

Android艺术开发探索第三章----View的事件体系(下) 在这里就能学习到很多,主要还是对View的事件分发做一个体系的了解 一.View的事件分发 上篇大致的说了一下View的基础知识和滑动,现在我们再来聊聊一个比较核心的知识点,那就是事件分发了,而且他还是一个难点,我们更加应该掌握,View的滑动冲突一直都是很苦恼的,这里,我们就来一起探索一下 1.点击事件的传递规则 我们分析的点击事件可不是View.OnClickListener,而是我们MotionEvent,即点击事件,关于M

单元测试的艺术-入门篇

前记:前段时间团队在推行单元测试,对于分配的测试任务也很快的完成,但觉得自己对单元测试的理解也不够透彻,所以就买了<单元测试的艺术>这本书来寻找一些我想要的答案.这本书并不是手把手教你写单元测试代码的,而是教你一些思想,循序渐进,最终达到能够写出可靠的.可维护的.可读的测试.本篇文章是入门篇,主要是讲解单元测试的概念.与集成测试的区别以及如何使用框架进行最基础的单元测试等. 一.单元测试的基础 1.1.什么是单元测试 单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单

读书报告之《修改代码的艺术》 (I)

<修改代码的艺术>,英文名<Working Effectively with Legacy Code>,中文翻译的文笔上绝对谈不上"艺术"二字,愧对艺术二字(当然译者不是这个意思).书中第三部分不论是例子还是解说都有点混乱,远不如<重构--改善既有代码设计>一书.此书精华在于第一.二部分. 如何学习这本书,作为一个最底层的码农,作为长期在别人代码上修修补补的苦逼二手货开发人员,我只能给的建议就是:你可以将它看做是如何做定制功能的指导书--从某种意义上

[.net 面向对象编程基础] (14) 重构

[.net 面向对象编程基础] (14) 重构 通过面向对象三大特性:封装.继承.多态的学习,可以说我们已经掌握了面向对象的核心.接下来的学习就是如何让我们的代码更优雅.更高效.更易读.更易维护.当然了,这也是从一个普通程序员到一个高级程序员的必由之路.就看病一样,普通医生只能治标,高级医生不但看好病,还能除病根. 1.什么时重构? 重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性.

重构验收总结(一)

机房重构结束了找师傅验收,验收过程中遇到了以下几个问题需要注意的,我觉得也是自己第一次重构的漏点吧,这次都补齐了! 1.界面丑 为了偷懒,我设计的字体.控件大小都是按照系统默认方式来的,非常不好.在MDI窗体上直接加控件,这种方法是实现了功能,但是却非常不美观.而且自己的窗体都太小了,感觉很应付事,所以师傅说,换. 2.代码注释少 敲代码的时候没有注意随时敲随时写注释,只想着功能实现,等都完成了再回头来补齐代码.可是后来发现这真是一个巨大的工程,一两个类不算什么,要知道我们的重构那是几十个啊,结

.NET单元测试的艺术-3.测试代码

开篇:上一篇我们学习单元测试和核心技术:存根.模拟对象和隔离框架,它们是我们进行高质量单元测试的技术基础.本篇会集中在管理和组织单元测试的技术,以及如何确保在真实项目中进行高质量的单元测试. 系列目录: 1.入门 2.核心技术 3.测试代码 一.测试层次和组织 1.1 测试项目的两种目录结构 (1)集成测试和单元测试在同一个项目里,但放在不同的目录和命名空间里.基础类放在单独的文件夹里. (2)集成测试和单元测试位于不同的项目中,有不同的命名空间. 实践中推荐使用第二种目录结构,因为如果我们不把

.NET单元测试的艺术-1.入门

开篇:最近在看Roy Osherove的<单元测试的艺术>一书,颇有收获.因此,将其记录下来,并分为四个部分分享成文,与各位Share.本篇作为入门,介绍了单元测试的基础知识,例如:如何使用一个测试框架,基本的自动化测试属性等等,还有对应的三种测试类型.相信你可以对编写单元测试从一无所知到及格水平,这也是原书作者的目标. 系列目录: 1.入门 2.核心技术 3.测试代码 4.设计和流程 一.单元测试基础 1.1 什么是单元测试 一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后