优化与重构的思考

看这篇文章:http://www.cnblogs.com/greyzeng/p/4077732.html

对评论引发我的思考。

网上有人说这句话我赞同:

优化和重构是两个概念啊,楼主还是没有搞清楚
优化不宜过早主要指的是性能的优化不宜过早,因为很多性能优化其实没有对系统有明显的提升。
而重构主要指的是修正代码中不好的味道,提高代码的可读性和可扩展性

优化的确不宜过早,但是重构是应该持续在整个开发过程中的
当需求比较稳定的时候,就应该考虑通过重构来整理代码

另外一个人的观点:

我们的做法是,将重构这件事当做一种思想,还不是行为来做。
简单的说,就是在日常的开发中,发现任何一个别扭的地方,就可以在自己时间和质量可控范围内,进行完善,并且不要求自己一次性做到尽善尽美。经过了一段时间的积累就会,重构就会由量变转为质变。
不管当初的设计有多好,代码都需要持续不继的成长和改变,所以,重构也需要当作思想,在任何一次开发时持续来做。

-----------------

启发思考:量变到质变。而不是专门花费时间,丢掉手头开发的新任务,新需求,通过这样的方式来重构,成本太高,风险太大(业务部门压力)。的确不可取。在实际工作环境的确时间上不太允许。

像打扫房间,清理桌面,定期清理一下,还一还技术债务。每一次改一点点,慢慢就会形成量变到质变了。我发现这样的方式还不错。看到有坏的代码,在力所能及的范围内重构一下,把代码抽一下。等到病入膏肓的时候,再去重构,所花费的时间将会是绝大的,而且面对一堆量大的工作,根本就没有信心开展下去。内心会放弃。

看别人优秀的代码,对自己是一种提高。看别人不好的代码也是对自己的提高:知道自己以后不要这样子写。

以博客园和CSDN为代表的社区中,普遍认为重构是修改代码,
这完全是错误的观点,
一份工单的完成就是以通过测试为标志,
一旦通过测试,谁都没有权利或者义务去修改代码(成本是需要买单的,是企业承担还是让程序员免费劳动?),
如果后来发现性能问题或者BUG,请重新开出工单,重新核算工价,
这些都必须体现在开发成本当中,
出于成本的考量,设计师自然会把性能测试的工单投放到最合适的时机

这个观点很奇怪:

真正的重构绝不会修改代码,而是以消灭代码为目的的增加代码,
对程序员来说,就是一份份普通的新开出的工单,
并且重构是设计师的日常工作,是企业行为,绝不仅仅针对某个项目,
重构影响的是未来,长期的看,重构会使新增的代码量趋近于零

启发性思考:

有些人是做事业,有些人只是做一份工作,或者是混日子,混工资生活而已。

那也告诉我们,精兵强将的思路招聘人的话,的确是要花价钱招聘精英,实际上是一个抵住10个普通的热。

那么问题来了,如果花不起钱请呢?我觉得,也并不一定要招聘厉害的。那么退而求其次,招聘有理想、有事业心的人。愿意把工作当成自己的理想,至少说是有人生理想,信念追求的人,这样的人会为了理想而奉献,勤奋,执着行动。

在看到唐太宗的讲解中,唐太宗注重有信义的人,就是那个时代的德。这样的人,当信念与利益冲突的时候,会选择坚持自己的道义(信念)。而不是唯利是图的人。

所以并不是要能力强的,能干的。而是有事业心追求的人。

时间: 2024-10-12 20:45:10

优化与重构的思考的相关文章

根据自己的需要,把别人开发好的东西搬过来,优化and重构,在优化的过程中,甚至也会弄出一套全新的东西(转)

赵海平在今年三月份来到阿里,听毕玄(他现任主管)说去年五六月份就跟赵海平聊上了.有人问:为啥 BAT 三大巨头,你看中了阿里巴巴?在今天现场达一千多人的分享中赵海平给出了回复:“因为百度和腾讯没找我呗~”,他笑道,“百度以搜索为核心,优化了很多年了,估计也没啥可以优化的了:而腾讯除了 QQ 和微信,也没什么大型应用(别跟人家说哦)”.这不是原话哈,赵海平还是相当谦虚并且能言的,思维很开阔,两个小时的分享内容丰富,时不时还插两个故事,起初进场的手机和电脑都很自觉的收起来了~旁边的同事侃道:“高 P

关于后台部分业务重构的思考及实践

关于后台部分业务重构的思考及实践 作者: ljmatlight 时间: 2017-09-25 积极主动,想事谋事,敢作敢为,能做能为. 当职以来,随着对公司业务和项目的不断深入,不断梳理业务和公司技术栈. 保证在完成分配开发任务情况下,积极思考优化方案并付诸实践. 一.想法由来 由于当前我司主要针对各大银行信用卡平台展开相关业务, 故不难看出,各银行信用卡平台虽然有各自的特性, 但其业务相似程度仍然很高,除必要的重复性工作外,仍有很大提升优化空间. 例如: 各个银行平台都需要对账工作.都要安排人

建索引时优化的观察和思考

同事调整了IndexWriterConfig的maxThreadStates参数,发现性能有很大提升,原来之前一直没去注意这个东西. addDocument时默认会调用ThreadAffinityDocumentsWriterThreadPool来获取线程锁,而这个线程池默认是8个线程,如果同时addDocument的线程多于8个,则线程处在等待锁的状态(一般是等最小竞争的>锁),所以本质上要在indexwriterconfig中增加最大索引线程数. Lucene中还存在一个FlushStall

对mysql的高并发优化配置的一些思考

对mysql的高并发优化配置的一些思考 mysql的高并发优化配置方案很多,但是适应你自己的就变得很少了,我们对数据库的优化,无非就是为了应对mysql的高并发情况罢了.随着大数据的时代的到来和网络用户的增多,很多企业中,可能每天应对的数量达百万,千万,甚至上亿的pv量,这样的量已经是超过普通配置的mysql所承受的量,所以应对日益增长的pv量,我们需要对mysql做出相应的对策,进一步优化mysql,达到我们所预期的效果,预防因为高并发所引起的mysql宕机,通过调试优化mysql,我们便可以

【20180329】MySQL优化SQL一则以及思考

线网环境 MySQL 5.6.21-log MySQL Community Server innodb_buffer_pool_size 1G 关闭QC 表存在分区 表结构和待优化的SQL mysql> show create table articles \G *************************** 1. row *************************** Table: articles Create Table: CREATE TABLE `articles` (

成本优化浪潮下重新思考RPA技术

下一次成本优化浪潮正加速到来,如何真正做到降本增效,是当前全球企业亟待解决的问题. 为此,人们将目光放在了能够替代人工的自动化.智能化科技上,从桌面自动化发展到机器人流程自动化(RPA),最终将实现智能自动化(RPA+AI). 从RPA到AI.再到RPA 从能完成重复性强.规则清晰的工作的传统RPA支持人类使用.提高人类效率,到像人类一样识别.学习.思考和感知(人工智能的结合),最终能做到数据分析.洞察力报告和决策支持,未来,RPA将朝着更加智能化的方向发展. RPA和AI有两个共通性:一是都跟

Maven(5)-优化和重构POM

本文主要介绍如何优惠pom,杜绝重复(DRY). 1)模块重复依赖: 2)坐标版本号重复: 3)兄弟依赖 一.项目骨架 上图说明: multi-module-project是一个有多个模块构成的项目,模块分别为:web-service.web-app.web-dal web-service.web-app.web-dal分别依赖与log4j web-app同时依赖web-service和web-dal,因为这三个模块属于同一个project,所以这种依赖叫做兄弟依赖.  二.模块重复依赖 2.1

不断优化,重构我的代码-----拖拽jquery插件

最近学东西学的有点太散了,歇一阵子,重新完善之前的JQ插件,今天先上拖拽吧 // JavaScript Document (function($){ var defaults = { actionElement : "", //获得事件的元素,非必填项 rangeElement : window, //可拖动范围的元素 非必填 direction : "", //默认为空,表示何以任意拖动, 可选值为vertical或者horizontal magnetic : 0

梯度下降法的优化与人生的思考

我是一个地地道道的技术人员,今天不跟大家讲复杂的数学原理,其实从图像就可以看出来一些蛛丝马迹,X是呱呱坠地的我们,W是指引我们前进的方向,B是我们生活的压力值,Func会根据W和B显示我们的轨迹,然而轨迹的平缓程度与好多复杂的因素有关,Y是我们的终点        很明显X,Y我们没办法控制,W和B的初始值也是随机的,Func根据复杂的环境,处理很复杂决策,每个环节我们想操控简直一点可能都没有,但是我们始终不会放弃前进的脚步,因为时间也不会允许…… 原文地址:https://www.cnblog