美文网首页
编程要有灵魂

编程要有灵魂

作者: 霍营营长 | 来源:发表于2020-06-21 14:01 被阅读0次

    最近有一位大神review了一个工程后说,这些代码没有什么灵魂。我不禁反思,什么是代码的灵魂?

    通常说一个人没有灵魂,那就如同行尸走肉,毫无生机,只能机械的行动。代码没有灵魂势必也如同枯槁,没有风格,没有创意,没有思考。编程有几种境界,初级阶段只知道语法,把编程当成一种工具或手段,实现功能为主要目的,写代码的时候直来直去,典型的情形就是用if/for/while实现了全部的功能,查询就遍历,新分支就if,循环就while。用最普通直接的逻辑满足功能的需求就算完事。这种编程也不可能有什么风格,要么写出来一堆函数,要么写出一堆关系凌乱的类,是最没有灵魂的编码。中级阶段有了一定的工程经验,知道代码该适应未来需求的变化,于是开始套一些设计模式,初步掌握了抽象和封装的思想,开始考虑编码的风格,最主要的是开始构思工程的结构、脉络和趋势。最高级的状态势必经历了充分的历练,真正打磨过至少一个项目,于是编码如同创作,会综合考虑各种因素,在一堆的矛盾点中找到奇妙的平衡,用最高效精炼的方式实现最优雅美妙的作品。读这种代码如同读一篇文章,或者看一个电影,就是一种享受,不时有些小细节给你耳目一新眼前一亮的感觉。这种高级状态应该就是有灵魂的编程了吧。

    如何让自己的编码有灵魂?

    首先要有风格,最基本的,编码要赏心悦目,实现这一点不难,有很多公开的编码规范都可以帮你实现这一点,只要严格遵守。就像三段论式的文章一样,不至于太糟糕。而且风格里面其实有很多到了中高级阶段才能理解的思想,先严格按照风格来,如同临摹一样,时间长了,总能有一些心得体会。俗话说,熟读唐诗三百首不会作诗也会吟诗。编码也是一样的,先模仿,不用着急创新,能模仿明白,才能站在巨人的肩膀上突破创新,到那时的创新才是创新,否则费老劲儿创出来的只是对自己而言新的东西,却不是真的“新”东西。

    其次要有创意,同样的功能,有些设计如同流水账,平铺直叙,有些设计另辟蹊径,结构上的变化让整个设计简洁清晰,有设计感。什么是设计感?就是那种能感觉到上心了的实现。使用的人能快速看到对外的接口和使用方法,维护的人能清晰的知道代码的逻辑和查问题的方式,开发的人能清晰地知道套路和边界。大家经常说的“优雅”不是那么容易达到的状态,反复的琢磨和重构才可能达到最优,创意的灵光一现往往是基于反复的失败和总结之后产生的。

    最后要有思考,虽然要有创意就必须有思考,但是我觉得还是有必要专门强调一下思考,这是对于编程这个特殊创作的特殊要求。编程是要面向商业化的,不要以为你的机器可以拥有无限的资源,不要以为消耗的一秒钟不足为道。细节决定成败,每个细节能节约一些时间、计算资源、带宽,或者能阻止一次异常,避开一个潜在的bug,都是有巨大的商业价值的。多思考一下,有没有更好的数据结构,有没有更好的算法,有哪些边界条件?每次思考都帮助你实现质的提升。大学教给你那么多计算机基础、数学和建模能力,也是需要在这种时候发挥作用的。

    当然也不是每一次编程都能达到这种状态,前面也说过,工程中有很多的矛盾点,时间成本就是其一,项目往往不会给你太多的时间去打磨,所以如我在讲团队的文章中所述,团队中必须要有资深的leader来带领大家快速地实现这种目标,如果没有,那就要不断的反思优化和重构。既让产品越来越有灵魂,也让团队越来越有灵魂。时间花在更有意义的事情上,做出来的东西有价值,越来越有成就感,个人和团队都能有不断的成长,是十分宝贵的状态。

    相关文章

      网友评论

          本文标题:编程要有灵魂

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