美文网首页
重构能实现整洁嘛?

重构能实现整洁嘛?

作者: devKen | 来源:发表于2020-09-20 20:52 被阅读0次

    重构是一种方式,整洁是一种准则或者说追求。作为开发人员,对于代码层次的整洁,再怎么要求都不为过,但是整洁的概念又很笼统。现在有很多规范,阿里的,腾讯的,各家有各家的编程规范。我现在去了解的,是马丁叔那波人在宣传的整洁代码之道。这里算是敏捷开发的范畴,所以会涉及到测试驱动开发,重构达成模式等理念。目标都是为了实现整洁,实现程序员对自己专业性追求。

    程序员对于自己的专业性的认识,是决定代码层次的敏捷实践的关键。只有对自己有了专业性的认识,才会有不断的动力去做重构,去践行整洁代码军规。但是现在的行业气氛并没有这方面的鼓励,所以产生一系列的码农之类的自嘲或者嘲讽。小到某个十几人的小团队,技术的氛围也不太好。职业程序员从学校毕业或者培训班毕业后没有被教会怎么平衡日常产品开发和自己的职业生涯追求,很容易就会落到某个矛盾的境地,直到最后支撑自己的理由,可能就剩了没有更好的选择(工资)。

    为了打破目前职业发展的困境,哪怕是几年以后的,也为了当前编程工作的需要,毫无疑问,我们要吸收新的开发理念,不应该在顺其自然,不应该在循规蹈矩的做重复的工作。这个时候,我能找到的好的思路,或者说自然想到的,就是从技术氛围出发,坚持开发自身的专业性,开始重构,自测,实现最大限度的整洁。

    说了这么多思想上的认识,接下来我们就如何用重构实现整洁进行建设性讨论吧。

    重构不只是改代码,大部分情况下,很多人听到这个词,都自然想到是要改代码。改代码只是最后的结果。怎么改,为什么改才是重点。为什么改,因为代码有异味。怎么改,针对不同的异味有不同的改法。甚至在不同的时机,同一种异味也有不同的改法。并且大部分时候,重构不是架构上的修改,而是小步修改。哪怕你只是改一下变量名,也是重构。那么这样就能实现整洁了吗?当然离整洁代码很远啊。不过至少我们已经开始向那个方向进发了不是嘛。我这里其实是有一个假设前提,大部分人写的第一遍的代码都是不整洁的。都需要不断的小步重构才能逐渐实现整洁的要求。

    从上面的分析,我们不难发现,重构的起点是发现异味。异味的发现现在除了基本的代码review外,也有sonar这样的静态代码扫描工具。异味的意思是看起来很好吃,但是闻一下就会有点不自然,让你怀疑里面是不是已经坏了?这是一种预先的根据微小的细节发现漏洞的方法。体现在代码上,就是不符合整洁代码规范的代码块。所以扫描或者代码审核的方法,就是套用已经预先设计好的整洁代码规范,不符合这些代码规范的代码块就会报异味。有些程序员这个时候可能就会不高兴了,凭什么不符合某些人设置的某些代码规范就是有异味的了?如果不能打心里对解读这样的疑问,重构也就无从说起。哪怕你用权力去强迫他去重构,那也是创造新的异味罢了。对于这样的问题,我首先觉得,他们的想法是有一定的合理性的。其次,我觉得这个其实是一个立场问题。一个已满足自己现状的立场,一个是想继续精进自己的技术的立场。满足现状是表示自己已实现了自己职业的追求,可以舒服的享受了。他们对自己说的最多的一句话,可能是“以前就是这么写的或者别人也是这么写的”。我以前也是这么觉得呢,那为什么我会转变了我的立场了呢?因为我觉得人活一世,终究还是要做些别人做不到的事情才好。当我们大部分时光开始花在职业发展上了,自然希望自己的职业(专业)之路走的更长久。这个时候,别人积累的经验或者先验,汇聚成的规范,就是我们的发展指南。我们不需要也不应该照搬他们的要求,但是也不能忽视他们的劝诫。我们要视情况,结合自己的项目真实的情况,特别是自己有诸多技术债务要还的情况,怎么看待异味,消除异味,一步一步的重构,最需要实践者自己去把控。

    关于重构的方法论,其实已经有很多书可以去参考,包括代码扫描工具在扫描出异味后也会给出对应的解决案例。这里,我想强调的是,重要的是认识到规则或者重构案例后面的对于自己编程的教导意义。因为我发现,在重构实践中,你可以学会很多,语言技术,框架技术,设计模式等。这是一个再教育的好机会,是自己工作和职业发展的一次友好合作。成功的重构,应该会给你带来工作的成功,当然,也会给应用带来整洁的回归。

    相关文章

      网友评论

          本文标题:重构能实现整洁嘛?

          本文链接:https://www.haomeiwen.com/subject/bjgryktx.html