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等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

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

  1. 国产某偶像剧天才程序员爱心C语言作业用C++写的代码,结果是Py脚本文件

    hi,我是程序员飞鸟,欢迎关注,点赞,收藏三连,这是我个人博客网站:https://zhengguibo.top/ 1.先看一下python效果图: 爱心 2.废话少说,直接上源码: import r ...

  2. 一个后端程序员如何被公司逼的开始写前端代码!奉劝各位最好选择前后端分离的公司...

    hello~各位读者好,我是鸭血粉丝(大家可以称呼我为「阿粉」),在特殊的日子里,大家要注意安全,尽量不要出门,无聊的话,就像阿粉一样,把时间愉快的花在学习上吧. 事情起因 阿粉自从学会Java以来, ...

  3. 自己帮别人写的网站可以公开源码吗_雷军靠写代码赚第一个 100 万,马化腾亲自写腾讯网,码农出身的大佬...

    作者 | 夏弢 本文经授权转载自创业邦(ID:ichuangyebang) 一提到程序员,很多人脑海里马上会出现这些刻板标签: 可事实上,有一个词似乎更能概括: 改变世界 程序改变世界,已经有几十年了 ...

  4. 马化腾亲自写腾讯网站,雷军靠写程序赚到第一个100万...那些码农出身的互联网大佬们...

    本文经授权转载自公众号创业邦,ID:ichuangyebang,作者:夏弢 一提到程序员,很多人脑海里马上会出现这些刻板标签: 可事实上,有一个词似乎更能概括:   改变世界 程序改变世界,已经有几十 ...

  5. 浅谈程序员的“内卷化”

    一.什么是内卷化 最近开始了解到一个很有意思的词--"内卷化",如果你还不知道这个词,那就非常建议往下看. 什么是内卷化?内卷化,亦称过密化,最初由文化人类学家亚历山大·戈登威泽提 ...

  6. 程序员的你,有哪些炫技的代码写法?

    很高兴参加这次分享活动,以下是我对程序员炫技代码写法的一些见解和经验分享: 一.代码美感-灵动转换 美感是良好的编码风格的核心,代码美感平衡了可读性和编写效率,让我们的代码具有更好的可理解和可维护性. ...

  7. HTML5七夕情人节表白网页(抖音-流动爱心表白)HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 爱心表白网页

    HTML5七夕情人节表白网页❤抖音-流动爱心表白❤ HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 爱心表白网页 这是程序员表白 ...

  8. HTML5七夕情人节表白网页(抖音超火3D炫酷魔方) HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白

    HTML5七夕情人节表白网页❤抖音超火❤3D炫酷魔方❤ HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白 这是程序 ...

  9. HTML5七夕情人节表白网页(抖音-罗盘时钟) HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白

    HTML5七夕情人节表白网页❤抖音罗盘时钟❤ HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白 这是程序员表白系列 ...

  10. HTML5七夕情人节表白网页(结婚倒计时) HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白

    HTML5七夕情人节表白网页❤结婚倒计时❤ HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白 这是程序员表白 ...

最新文章

  1. 匿名管道 阻塞_Linux系统编程—有名管道
  2. android 屏蔽home键操作
  3. 实践篇 | 推荐系统之矩阵分解模型
  4. 学习笔记(18):Python网络编程并发编程-守护进程
  5. 通过用 .NET 生成自定义窗体设计器来定制应用程序
  6. 在struts2中push方法的使用_【干货】网版印刷中水墨使用注意事项及助剂使用方法...
  7. 创建一个守护进程来监听服务进程的异常状态_用 C# 来守护 Python 进程
  8. 《R语言机器学习:实用案例分析》——1.2节R的数据结构
  9. 在没有Docker容器的Ubuntu上安装SQL Server 2019
  10. Referenced file contains errors
  11. github电脑壁纸_这可能是2020年最好的电脑壁纸软件推荐文章!
  12. java 读取文件 效率_JAVA读写文本文件的效率
  13. 图片转成文字:方便准确的OCR识图软件
  14. Google Dapper 大规模分布式系统的跟踪方案
  15. MFC OnFileNew OnFileOpen过程分析代码(一)
  16. 禾川Q0 PLC ModbusRTU通讯
  17. reset master和reset slave解析
  18. 【STM32】DAC详解
  19. 使用命令行统计代码行数
  20. ctypeh里的函数c语言,大满贯平台网址网址-官网首页

热门文章

  1. kettle能否自动建表_Kettle、Python实现报表自动化
  2. mysql 1236 bug_【转】MySQL主从失败 错误Got fatal error 1236解决方法
  3. Micro-personnel部署
  4. java的inputbox,解释InputBox函数(输入函数)的用途
  5. 服务器SAS硬盘raid5崩溃lvm丢失的数据恢复过程
  6. 文本分类(2)——取特征词构建词典
  7. vue组件编写 组件库_一种玩具,可让您使用Vue组件编写歌曲
  8. 大数据项目实战——基于某招聘网站进行数据采集及数据分析(五)
  9. Excel正确输入身份证号码
  10. C++笔试题目大全(笔试宝典)