最近一直在做软件重构相关工作,不过我发现我所做的事情,和重构相差甚远,最多只能算是重写。
众所周知,以前的软件工程,都讲究设计文档,uml图到数据库,需求分析到详细设计。然后再编码的一种模式(姑且这么说吧)可能这都没有,只是有更多的口提面命。
这样的带来的后果就是软件很快腐败,充满恶臭,每个人去看别人的代码都在想,哇这个人在做什么东西,简直是太烂了,猫屁不通(可能我呆的公司技术实力不是特别强,不知道其他公司怎么样),但当是自己做出来的东西,再次去看时,会觉得更是令人恶心,初期还能靠自己的记忆维护,后期简直是不能看,到处充满着随意添加的补丁和修改。
当软件进行设计时,往往不能考虑周全,或者需求变化的很快,这时就需要修改代码。以前的思维认为,架构好,能够解决难修改的问题,但是现在来看,架构不能解决大多数软件出现的问题,非架构师码农懂的重构思维,应该成为每一个开发人员的必备素质。除了天才和大大大神,普通一般人,不可能一遍就把代码写好,一般我们可以先实现最初能够想到的方法,并测试通过,然后再根据这份代码,改善既有设计,不断优化,达到目前最优或者较优水平。而不是一开始就写最优、最好、最完美、能兼容以后需求的代码。
我们的代码就应该立足于现状的需求,满足了现有需求就应该是成功的代码。
所以说代码写后,不修改、优化是愚蠢的行为
记忆代码逻辑更是蠢中之蠢
我们所要做的是,将代码写好
不断重构,反重构(重构的反方向,example:提取函数和内联函数是一对重构与反重构, 提取函数,就是将独立逻辑的代码分离成一个函数。内联函数,就是将分离出去的两个函数,重新组合重一个函数,保持逻辑不变)
以便,再次当看到时,一目了然
而不是一直记忆这些代码中特殊处理(本人大脑容量实在有限)
和一些繁琐的逻辑,这些应该在下次有人读到代码时,一目了然
这里推荐大家去读经典书籍,《重构:改善既有代码的设计》一书,书中详细说明了代码在各种情况下的代码的重构,反重构方法,和怎么提升自己对坏代码的嗅觉能力。
另外,不要你觉得怎么样,要我觉得怎么样,真是职场真是写照啊
每天怼大佬,都是失败
好吧胡扯一大堆,勿喷、拙见。
正所谓:下笔千万言,满屋皆废纸。