`
shuofenglxy
  • 浏览: 189570 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

重构优化的思考

阅读更多

重构这个如今coding最时髦的词,在各个coder之间广泛流传。重构俨然已经成为了经验丰富的代名词。最近有机会开始重构一些东西,在这里回顾一下以前的重构基础吧。

       重构的时机:什么时候重构?
重构绝非没事的时候改动下代码让代码更美观,这个意义真的不大,太浪费精力了。当发现以前书写的代码不满足目前的功能需求时,那么可以考虑重构;当以前的代码不满足目前的性能要求时,需要重构(甚至于重写,重写要慎重);当可预见的未来里,可能会出现功能性能瓶颈时,需要重构。总而言之,没有明确的有价值的目的期望,那还是let it alone比较好。
重构的方式:怎样开始重构?
不是说拿到项目之后立马开始改写代码,按照自己的意愿完成代码的重构;在重构之前要有足够的分析工作,确定你要重构的代码能对你的目标起到正向促进作用,重构并不一定能保证你改善代码的性能(你需要确立一些优化点-----这些点可能能改进性能),然后去执行重构工作。切记,完全不需要改进所有的代码,真正决定关键性能的代码一般绝不会超过30%,分析好关键点之后进行优化重构工作往往能起到事半功倍的作用。
重构的结果:怎么样?
重构的结果未必会达到你的期望值,所以如果不行就改回原来状态,再去分析别的关键点,重构一定要通观全局,确立疑似点,而后再去重构改写,最糟糕的情况只能是重新设计了。

PS:重构可以让你读懂代码更容易;重构可以让代码效费比更高;重构能做很多很多,但重构也要求很多很多,要有足够的经验,要有足够的分析能力,要有足够的项目认知能力。在重构的路上,我还是彻头彻尾的大菜鸟,加油哈。

分享到:
评论

相关推荐

    软件重构的思考与实践

    软件结构可以因为各种各样的原因而被改变,如进行打印美化、性能优化等等,但只有出于可理解性、可修改、可维护目的的改变才是软件重构(Refactoring)。

    基于设计层次优化的软件自动化重构思考.pdf

    基于设计层次优化的软件自动化重构思考.pdf

    第一讲-大型互联网项目架构设计实践及架构优化思路.pdf

    1、如何构建一个高可用,高并发的项目架构(架构方向思考: 项目架构问题) 2、压测方案(发现系统问题,进行修复,调试)-- 分析当前系统性能瓶颈,解读一些 压测报告 3、服务器(tomcat 服务器,undertow 服务调优...

    GMTC北京 2016年全球前端技术大会PPT合集(34份).zip

    iOS遗留系统上的架构重构 手机解耦之路 组件化实践与优化 APP的性能稳定性优化及运维实践 客户端怎样应对弱网络 手机卫士性能优化之路 如何巧用数据在移动创业的红海中突围 跨平台的云服务SDK需要什么 从 SDK 到编...

    react-blog:使用React重构自己的博客

    边学边写边思考。。。 待办事项清单 静态页面 整理目录结构 Github issus作文章数据源 react-markdown渲染md 代码高亮 摘要 分类 标签 翻页功能 家用卡片 演示页面 评论功能(跳转到Github问题页面。。。) 回到...

    关于数仓里画像层的构建的一些思考

    情况呢是这样的,现在有很多的B端画像(交易,流量,什么的这种),但是呢,这些个画像,几年前就构建好了,而且SQL写的极其复杂,导致SLA已经很晚了,所以要优化重构。我这里主要说几点吧。 1.中间表尽量少——为...

    【卷一/共两卷】AJAX实战pdf高清版90M

    8.2.3 优化Ajax应用的执行速度 8.3 JavaScript的内存使用量 8.3.1 避免内存泄漏 8.3.2 Ajax的特殊考虑因素 8.4考虑性能的设计 8.4.1 测量内存使用量 8.4.2 简单示例 8.4.3 结果:如何将内存使用量缩减150倍 8.5 小结...

    react-qunar-pwa:React新特性Hooks 重构去哪儿网火车票PWA

    react-qunar-pwa 第一章 课程介绍 Hooks constructor this.setState componentDidMount render 职责分离 两耳不闻窗外事 模块解耦 优化可维护性 ...Context提供一种方式能够让数据在组件树中穿透传递而不必一级...思考:R

    如何利用GPT开发智能应用?微软提出这九大原则

    这九大原则可视为 Sam Schillace 在利用 GPT 技术革新软件开发的前沿实操总结,也许对正在思考如何重构软件工程领域的你也会有所启迪—— #1 如果模型可以做到 就不要写代码 模型会进化会变得更好,但编译之后代码...

    “互联网+”视阈下大学生创新创业能力评价及提升路径研究课题实施方案.doc

    “互联网+”不仅为高校创新创业教育带来了全新的技术,而且重构了大学生创新创业行为模式。一方面,“互联网+”平台打破了地域、校际隔阂,深度整合在线资源,降低了大学生创新创业试错成本,为其创新创业开辟了全新...

    《iOS6开发指南》精彩书摘

     第三部分进阶篇,介绍iOS高级内容,商业思考等,包括内容如下: 第14章“iOS中的商业模式”。了解iOS中的商业模式,其中的收费策略值得广大读者借鉴。此外,我们还介绍了植入广告和应用内购买的API,其中植入广告...

    CSS网站布局实录 (第二版)PDF版

    A.3 Web标准的思考 A.4 闪客帝国网站重构访谈 附录B 相关资源及术语表 B.1 相关网站 B.2 相关书籍 B.3 相关工具 B.4 术语表 《CSS网站布局实录:基于Web标准的网站设计指南(第2版)》编辑推荐与评论: ★国内第1本基于...

    【学位论文终稿】计算机科学与技术-企业人事管理系统的设计与实现

    【第六章 系统测试重构,增加章节6.3部门管理模块、6.5用户管理模块、6.6待我审批模块】 7、设计思想,应该从模块设计上说,为何要部门管理,为何要岗位管理?他们之间怎么联系等等 【4.1整体模块设计思想章节,增加...

    hnefatafl:北欧海盗棋盘游戏

    每个项目的待办事项,重构,安全降价文件,可以帮助我思考并分离关注点 未来的变化 也许为了某些优化,带有空白的全局董事会状态 试试rxjs 去做 控制面板 建议复选框 像不同的棋盘游戏版本 规则 AI(单人模式) ...

    Beatles小记

    就只有hadoop基础上的一系列工具,更多的时候很多企业需要的是更轻量的设计(办喜酒杀猪杀鸡未必都要用一把刀),因此将开放平台基础分析组件重构版本beatles的设计写出来,给出更多的思考空间。其次,也是希望推广...

    IOI国家集训队论文集1999-2019

    + [算法优化](#算法优化) + [程序优化](#程序优化) + [语言](#语言) * [策略](#策略) + [策略](#策略-1) + [倍增](#倍增) + [二分](#二分) + [调整](#调整) + [随机化](#随机化) + [非完美算法](#非完美...

    asp.net知识库

    DbHelperV2 - Teddy的通用数据库访问组件设计和思考 也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典...

    智能工厂的五大特征.docx

    根据实际形势的输入可以自动分析判断、逻辑推理,思考下一步的落子,在人工智能领域形成了对人类围棋的绝对压倒性优势,AlphaGo的出现象征着计算机技术已进入人工智能的新信息技术时代(新IT时代),未来将于医疗等行...

    软件工程思想

    简言之,林锐对软件工程实践的积极思考、轻快而不失深邃的文笔及其言行,都是出色之处。 正由于此,而不仅因为是同行,我才不惭浅陋,接受他的要求,荣幸地成为本书的第一位读者,并在本来应是名人大家留文的地方谈...

Global site tag (gtag.js) - Google Analytics