编写好的代码是程序员的基本功、手艺活。在开始探讨如何打磨这个手艺活之前,我们先来聊一下,好代码的标准到底是什么。
有的人认为简洁的代码就是好代码,有的人认为高效的算法就是好代码,有的人认为新的技术就是好代码,似乎都有道理,又似乎都不太准确。代码是人来抒写的,所以没有完全统一的标准,有一点像艺术创作,他需要创意,但是又跟艺术创作有本质的区别,因为艺术创作没有明确的用户需求,而代码是工程化的,他有明确的用户需求。
那么,好代码的标准是什么呢?我觉得有三个层面的标准,第一个层面就是能否高效、高质量的满足业务的需求,这是最基本的标准。我们做产品和服务最终还是为了给用户解决问题,解决问题本身才是最重要的,技术是为解决问题服务的。所以,怎么能高效高质量的满足业务需求就是第一重要的标准。
为什么要高效呢?因为所有的解决方案都是时间、资源和质量的平衡产物,没有人会给我们无尽的时间,可以做到尽善尽美。而且,好的产品都是不断迭代优化的,需要尽快推出市场,不断收集用户的反馈,不断打磨才可以。
什么叫高质量呢?光按时交付还不够,光我们技术架构高质量也不够,是最终的产品用户满不满意,有没有给用户提供超出预期的体验,这才算高质量。
第二层标准就是能否将系统的复杂度控制在可控的范围之内。我们知道任何一个系统的上线,并不是研发的结束,而是才刚刚开始。一个技术系统就像一个生命体,上线才意味着刚刚诞生,他还要经历漫长的、反复的迭代成长的过程。但是,这个成长过程就意味着熵增的开始,系统会变得越来越复杂,越来越难以维护和更新,越来越跟不上业务的变化。
所以,我们编写好代码的一个核心目标就是控制整个系统的复杂度。在尽力满足业务需求的前提下,还要从全局角度审视整个技术系统,做好未来的规划。这就好比城市建设,最开始的时候总是无序的,各种私搭乱建。但是,随着规模的扩大,整个城市的规划就变得越来越重要,不然就会出现各种交通的拥堵,生活的不便利等等问题。技术系统的建设也是如此,我们要提前进行规划,尽可能延续系统的生命周期,让系统可以长久的、快速的、灵活的满足业务的发展。
第三层标准就是能否驱动或者引领业务的发展。就像Window操作系统之于微软,安卓系统之于谷歌。最开始,Window操作系统只是一个技术的系统,但是,随着个人电脑时代的到来,这个技术系统在不断演变,通过开放的体系设计逐渐把上下游的服务商链接起来,包括以Intel为代表的硬件服务商,还有众多的PC软件程序提供商,针对这两者,Window系统都提供了友好的、统一的接口来对接,Windows系统从而演变成了一个技术的生态,进而催生了整个微软的商业帝国,让微软成为整个PC时代的王者。所以,好的代码是能够驱动甚至引领整个业务的发展的。
总结一下,我们总结了好的代码的三个标准,首先,好代码要高效、高质量的满足业务的需求,甚至超出用户的预期。其次,好代码要能控制系统的复杂度,做好技术系统的长久的规划。最后,好的代码会驱动业务的发展,甚至演变成技术的生态,引领商业的变革。
网友评论