最近阿芬在浏览知乎时发现了一个有趣的问题,那就是:为什么程序员会有代码能运行就不要动的想法?说实话,这句话在阿芬的工作中经常用到,听说不仅是一些长期没有维护的代码,日常维护的系统,甚至是之前已经实现过的代码。只修改之前的代码,不考虑复用之前的代码。毕竟复制粘贴的方式确实好用。那么为什么程序员会有这种思维呢?不得不说,知乎的答主都是讲人才的,很赞同一句话:新人一优化,系统就炸了!解决问题很容易。首先,当我们对系统不熟悉的时候,最容易出现问题。你有没有遇到过一行明明人畜无害的代码,服务却挂了,却找不到任何原因,最后只能回滚!这种情况往往是由于不了解系统设计的人不知道哪里有陷阱。他们只改了一行非常简单的代码,就导致了服务宕机。经验告诉我们,在修改任何代码的时候,都需要搞清楚这段代码的真实意图和逻辑。不管是谁面对一段自己不熟悉的代码,都不能随便动,因为很有可能要解决问题,必须先搞清楚代码的具体逻辑再动手。特别是新人!特别是新手!!特别是新手!!!这里的新人指的是刚刚接触项目的人,与工作年限关系不大。这意味着有经验的人不会解决问题,尤其是那些有多年工作经验的人。当面对新的环境和编程风格时,他们往往我行我素,一上来就会大刀阔斧的改变,导致各种问题。这其实也是有些公司愿意招一些毕业生的原因,因为毕业生就像一张白纸,可以慢慢培养,当然也可以理解为容易洗脑,哈哈哈。成本的问题是代码是否总是被占用。这也取决于我们对这个代码的投资是一次性的还是长期的。如果是一次性的,可以修复,因为为了一次性的功能去改,不值得花时间和精力。本来的东西,更别提随便重构了(虽然我知道很多程序员动不动就喜欢说重构)。但是在我们的工作中,我们经常接管别人的项目。我们接手的项目一定是我们需要维护和迭代的后续项目。这种项目在未来会有很多需求和迭代,弄清楚系统中的每一个细节,合适的时候重写,重构的时候重构,因为我们的目的是让服务能长久运行,如果老代码长时间不动,只有去如果是往里加,系统只会变、变臃肿,到头来无法维护。这时候,我们就需要通过一些设计思想和设计模式来改造我们的系统,使其更具动态性。所以是时候搬家了,是时候搬家了。我真的无法改变它。其实阿芬觉得还有一种可能,就是真的改不了~网上经常有笑话,说一个程序员看到一段代码忍不住骂:这段代码写的像狗一样。狗屎似的,然后我看了投稿记录,被打脸了,原来是几个星球前写的。说实话,这种情况经常发生。很多代码只有在面对当时的业务需求时,才知道为什么要这样写。时间久了,他们都想不起来为什么要这样写,更别说重构了。如果你要重构,需要花很多时间去重新理解当时的业务逻辑,但是在业务驱动的社会,老板哪有时间给你重构!知乎网友的一个回答也很有意思。截图给大家看看。有没有蝴蝶效应的感觉?有时候软件开发真的很像蝴蝶效应,不然也不会经常出现你经常自己改一个很简单的一行代码,结果崩溃的情况。综上所述,旧代码该搬,就搬。技术是为商业服务的。当我们的技术或者系统不适应业务发展的时候,我们就需要搬家。即使项目能够正常运行,我们仍然需要进行适当的重构。作为一个合格的工程师,在设计系统的时候,我们要着眼于下一年,提前做好设计和布局,才不会被业务追赶,导致系统臃肿无法上线。被改变到底!
