分享到:
电话:0371-61318821
助力企业快速实现 "互联网+" 计划

官方微信

郑州星云互联新闻中心,郑州星云互联资讯
首页 > 新闻中心 > 行业新闻

论程序员的自我修养,写好代码的实践经验分享

作为一名资深老程序员,也来谈一谈什么样的代码算是好的代码,以及怎样写出好代码。

其实一个人写的代码跟这个人的性格是大致吻合的,房间很乱的人写的代码大概率也杂乱无章,现实世界还有物理规则的限制,代码世界里随心所欲,程序员在无拘束的代码世界里必须要提升自我修养。

编辑

最近看到几篇讨论代码好坏的帖子,不少人的观点中,好的代码应该具备良好的可读性,清晰的注释,要符合编程规范,变量命名要具备可读性等等。

这些都对,但是如果一段代码只符合这些,那是只注重了表面功夫,一段代码质量的核心要求还是这段代码要好用,毕竟,代码是要来用的而不是拿来看的。

功能完备

完整的功能是第一要素,这里强调完整性,要求代码实现十条功能,一条也不能遗漏。

有人说这还不简单?其实真的不是太容易,因为大多数时候,只是程序员认为自己功能全部实现了而已,程序员自己理解的功能跟实际需要的功能往往差距很大。

比如客户想要一个美女,这个客户说想要美女的时候心里想的是林志玲,因为这个客户喜欢温婉的古典美。

程序员表示收到了,但是别看这个这个程序员是个宅男,但那只是表象,当他听到美女的时候,心理想到的却是火辣的性感女神。

当客户拿到程序员实现的美女时,内心肯定是崩溃的,因为客户也不知道该喜欢好还是不喜欢好,你说性感美女不美吗?也美,但就是不能打动客户的心啊。

这只是个通俗的比喻,造成这种现象的原因是因为对一个需求的量化准则没有进行明确的规定,靠人的感觉去做往往南辕北辙,因为人和人的差异性非常大。

做过测试的同学应该非常清楚,很多问题单都是因为规格的问题跟开发人员吵来吵去,测试人员认为手机温度达到75度就应该过温保护降低CPU功耗,但是程序员认为80度才应该过温保护,为了这5度的事争论不休。

所以,真正实现一段程序的完备性并不是那么容易的,那我们应该怎么做?

要写出功能完备的代码就不能偷懒,请多花点时间细致澄清你的需求,别怕浪费时间,如果你实现偏了最后返工,只会浪费更多的精力,还会导致你的客户对你的不满。

可靠性强

这个要求一定要放在第二位,这比后面的要求更重要,如果说完备性决定了代码能不能用,可靠性就决定了代码好不好用。

可靠性通俗点来说就是不管你怎么折腾,程序就是不会挂,你的代码放在那里好几年都布满灰尘了,但是运行起来还是杠杠的,从来不需要人来操心。

可靠性比完备性更难达成,你能保证一次运行正确但是难保证一直运行正确,能保证一天运行顺畅但是难保证几年运行都不出问题,能保证过得了夏天但是不一定能搞定冬天(我没有影射苹果手机)。

可靠性难做的原因主要是要应对大量的未知的、不可控的应用场景,做功能完备性是做确定性的事情,保证可靠性是做不确定的事情。这就好比把桥修通车是做功能完备性,但是货车一上就坍塌,一点洪水就翻倒,过了几年就变脆,这都是可靠性没做好。

一段代码的可靠性更像是良心工程,因为代码还没有桥那样的实体摸得着看得见,可靠性到底好不好也要等代码运行一段时间后才能检验,所以有些程序员就会忽略这方面的考虑。

那么怎么做好代码的可靠性呢?

再次重申,程序可靠性最考验一个程序员的良心和修养,这是个需要大量精力才能做好的活。

性能优秀

性能在目前的高性能硬件环境下并没有那么重要了,或者说大多数情况下并不是主要矛盾。

但是在特殊的应用环境下,性能要求还是非常非常高,比如春节抢红包、通讯设备大批量用户同时接入、双11抢购、国家骨干网服务器等。

高性能和低性能的代码效率可能相差千百倍,提升代码性能是个技术活,必须对代码运行机制和操作系统的原理有深刻的理解,否则你不知道代码性能从哪些方面入手。

一个好的程序员不仅要会写代码,还要把数据结构、操作系统、编译原理等专业课知识学精学透,那些觉得只需要学好一门编程语言就可以做程序员的人,很容易变成只能编码的底层码农,这不是开玩笑。

性能的提升确实需要一定的技术含量,个人建议在需要性能的时候再刻意的去考虑性能提升,优先把功能完备性和可靠性做好。

可扩展性强

可扩展性时常被程序员忽略,因为这是个后效性的质量品质,一般都不会当场就被检验出来,都是在用了一年半载以后,需要增加功能进行软件升级的时候,才会集中爆发。

本人就曾经遇到过一个案例,只需要将一个模块的用户数从50人修改到100人,整个软件产品竟然涉及几百个修改点,客户觉得两分钟就改完的工作,连修改待验证折腾了两个星期。

当然这只是一个例子,可扩展性的含义不仅仅是修改软件的规格,总的来说,可扩展性是为了应对未来的变化。

可扩展性很难用一种量化的标准去衡量,多数时候依赖软件设计人员的经验。

基础要求

代码逻辑清晰可读性强,有完备的代码注释,统一的变量命名规则,符合较低的圈复杂度,符合编程规范,所有这些个人认为都是程序员的基本功,本文就不展开详细论述了。

如果有人不太理解编程规范是个什么东东,可以网上搜索华为的编程规范来学习一下,规定的都是一些非常基础,但是一不小心就会犯错误的编码技术问题。

总之,想要写好一段代码也不是那么容易的,资深程序员需要在软件工程能力和计算机基础科学理论上多投入精力,干一行爱一行,努力提升作为一个程序员的自我修养。

转载自网络 不用于商业宣传 版权归原作者所有,侵权删。


作者: 时间:2020-08-28 阅读:791 分享到: