程序员代码规范——马化腾、刘强东写的代码,你见过吗

  1. 云栖社区>
  2. 博客>
  3. 正文

程序员代码规范——马化腾、刘强东写的代码,你见过吗

欧阳愠斐 2018-10-25 16:46:29 浏览590
展开阅读全文

01

关于马化腾编码的水平,网络上曾有这样一个段子:

曾经和pony(马化腾)一起写过代码。当时我、pony、马克3人挤在一个只有10个位置的房间里,埋头开发。马克当时负责排查两个bug,跟进了10个月,没有一点进展,下楼准备买点瑞士卷吃,消消愁。回来发现pony光着膀子,啃着个猪蹄儿,站在阳台,望着寂静的夜,回头冷静地和马克说了句:“bug我帮你处理好了。”

可见老马的编码水平之高,当然,这只是个段子。但据说当年创业时,公司主页是马化腾自己亲手制作的。

关于他编码是不是最好的,我们不知道;但可以肯定的是,他一定是通过软件挣钱挣得最多的那位程序员。

02

无独有偶,互联网界的精英,大多数是技术出身,譬如雷军、李彦宏、周鸿祎等,几乎都是编程高手。作为京东首席CEO,刘强东编码水平也备受关注。

知乎上,有人曾提问过这样一个问题:

刘强东的代码水平如何?

有网友这样回复:

刘强东在一次讲座上,称自己在校大三的时候,也就是1995年左右,他给别人写代码,一个晚上就能赚5万。

95年一个晚上5万,那是什么概念。

至于刘强东编码的水平究竟怎样,是不是像上面网友形容的那样,可以一个晚上赚5万,我们无从而知。

但可以肯定的是,无论是马化腾还是刘强东,所编写的代码应该很规范。

不知你有没有类似这样的这样的经历:

回头看看自己一年前编写的代码,惊讶地发现,哇哈,如此不规范的代码,是谁编写的?确定是我写的吗?我能写出这样惨目忍睹的代码?分分钟钟怀疑人生。

代码规范的重要性我们都知道,但要真正做好,还需要我们在实践中慢慢的累积,不断修炼。

03

如果代码没有统一的规范,每个人都按照自己掌握理解的那一套,那么整个项目的代码很可能就会出现风格迥异。即使是分工明细,每个人负责一个模块,等到要整合代码的时候就尴尬了。

很多时候,并非程序的算法有多复杂,或是逻辑多么复杂,而是因为代码不规范,越读越费劲,把精力都耗在这里了。

统一的代码规范可使得代码可读性大大提高, 在团队的合作开发中是非常有益而且很有必要。

04

项目维护工作不仅读懂源码,而且还需要在原有源码基础上作出修改。如果没有统一代码规范,很可能会出现这种现象:

张三完成开发以后,李四进行维护加一段代码,过一段时间王五又加一段代码。原本一个很普通的需求,经历了N次迭代和修改,已经形成了巨大的功能。直到有一天,张三、李四、王五都辞职了,新来的员工看到那一大堆没有统一规范的代码。想死的心都有了。
随着不断迭代版的维护成本越来越高,从而形成恶性循环。程序背后的架构设计或模式固然重要,但良好的命名也不容忽视。不规范的命名不仅让我们对代码难以理解,更糟糕的是,会误导我们的思维,导致对代码的理解有偏差。

相反,良好的命名规范,则可以让我们的代码更加容易读懂,也能向读者正确表达事物以及逻辑的本质,阅读命名规范的源码理解没有那么费劲,会有一种享受的感觉。

有人喜欢对控件textview1,textview2,textview3、,textview4类似这样的命名,甚至还对其添加注释。

有人可能认为注释越多,其他人看到的就会越好。其实不然,注释过多,或是一些冗余注释,反而会影响源码的可读性。如果我们良好的命名规范,结合了需要和命名。它可以省去许多不必要的注释。

对于方法命名,首字母一会儿大写,一会儿小写;一会儿全称一会儿简写;一会儿驼峰命名法一会儿匈牙利命名法。

当然,起一个好的名字不是件容易的事情。首先,既要有尽量多的提供变量信息,又要尽可能的保证名字短小精悍,还不能为了短小而随意采用缩写而导致阅读障碍,另外还要尽量保证以后程序更新后名称仍然能很好的描述其内容。

在编写代码中,要尽可能的遵守一个良好的命名规范,并且不停地的调整学习命名,从而逐渐掌握起一个良好名字的能力。

05

知道了代码规范的重要性,但有时候迫于项目赶进度压力,有的因为繁琐的规范作出很多额外的工作,影响了项目开发进度,而渐渐被忽略。

规范不是对开发的制约,而确实是有助于提高开发效率的,最大的受益人其实还是自己。

不知你有没有类似这样的经历:

很多的时候阅读自己的代码,需要花费很多时间?
尤其是出现bug的时候需要逐行的debug?
自己编写的代码过了一段时间后再来看自己都乱了头绪。回到前面说的疑问,这代码是我自己写的吗?
我们应该做的就是规范开发,减少自己出现的错误。很多时候项目的压力一部分也是由于前期开发中遗留的众多的问题。

那些看似无用的东西要经过我们慢慢地累积由量变达到质变的时候,相信你能体会到其价值所在。

养成良好的代码规范不是为了别人,也不是为了公司,而是为了提高自己的编程修养,提高自己认识事物的能力。让自己编写的代码可维护性更好、可重用性和可扩展性更强。

接手别人项目时,最让你最难以接受的是什么?没注释,代码乱?代码冗余?架构拓展差?欢迎留言

欢迎工作一到五年的Java工程师朋友们加入Java架构开发:878249276,群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

网友评论

登录后评论
0/500
评论
欧阳愠斐
+ 关注