博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码规范的那些事儿
阅读量:5734 次
发布时间:2019-06-18

本文共 1885 字,大约阅读时间需要 6 分钟。

hot3.png

作为一个苦逼的程序员,因为种种原因经常需要阅读别人写的代码。您是否有因代码杂乱冗余而心生厌恶,您是否有过因代码晦涩难懂而抓狂,您是因代码低级的逻辑错误而愤概,您是否因代码结构不合常规而需要到处查找,您是否因看到几百甚至上千行代码的方法而望洋兴叹,您是否因代码缺少注释而猜测以及花很多时间去理清楚前后逻辑。苦逼的我全部遇到过并且很多很多,这些代码的作者从世界500强顶级IT公司到几十人的小公司同事,从印度美国新加坡人到中国人,从七八年的老人到刚入行的菜鸟。相信您也遇到过。这些人有一些共性,应付任务,个性十足以及不思进取!如果您是程序员菜鸟,那么您一定遇到很多并且既是肇事者又是受害者,这是必经之路;如果你是业界大牛,不用说您眼里别人的代码都或多或少都有问题,遇到的情况更多!

都说代码是程序员的第二张脸,写了太烂的代码背后一定会遭人鄙视。请遵循一些简单的规范,写干净一致的代码!请把您的个性用在写出最简单易懂的代码上面,而不是晦涩冗余无用的代码,甚至自我签名!您的才华应该表现在设计良好的结构和模式,表现在干净易懂的代码,表现在对空间的尊重,对代码的尊重。这样您才能赢得别人的尊重!请记住代码不是一次性的,需要重复的修改和重构,为未来写点代码!以下我总结几点Java里面最基本的小规范:

1.  写干净整洁的代码,请尊重空间,请尊重人眼的偏好

1.1  去除没有用到的类引用,eclipse里面Ctrl+Shilft+O。看到一大片的因为类引用没有用到而报的警告信息简直就是灾难,空间和视觉都没有得到尊重。

1.2  记得格式化代码,eclipse里面Ctrl+Shilft+F。看到一大片杂论无章,连基本的对齐都没有的代码也是很大的灾难,视觉脑力都会受到挑战。

1.3  不要吝惜废弃的老代码,eclipse里面Ctrl+D。有些人对待已经废弃的老代码比对待自己的老婆还宝贝,大量运用注释来保留,随 着代码的演变暂用非常大量的空间。如果那段代码非常精妙,舍不得删,那么请把它移到您的私人代码库。

1.4  请不要写冗余无用的代码。if(true)之类的代码块完全不应该出现,用空行隔开该段代码是更好的选择。

1.5  请合理运用空行。空行可以用来隔开相对独立的代码块,有利于阅读和理解。但是不要使用超过一行的空行,对空间,别太奢侈了。

1.6  请不要在两个地方出现完全相同的代码,您总是可以想办法重用的,不是吗?

1.7 命名类,方法,变量慎用简写,除非大家都公认。全称我都不一定看得懂,简称您太高估我的智商了!请问qrbs代表什么,可能火星人知道吧!

1.8 把所有的类变量放到最前面,如果比较多请按用途分组排列,不要把变量散落在大江南北,我找的真的很辛苦!

1.9  拆分大的类,大的方法,如果您的类有一万行,如果您的方法有一千行,我真的会恐惧,是恐惧!

2.  高效运用注释

2.1  规范的注释类信息。请查看一下Java标准库的String.java源码吧,包括文件名,日期,作者,版本号等信息,用统一的模板。千 万别把您的大名散落于方法签名甚至于具体代码里面了。我在读业务逻辑的时候没有兴趣思考您的人生!要找您我可以在类签名里面找到的,放心啊!

2.2  非Java Bean的public方法都需要注释,您总不会要别人读您的代码才能调用您的代码吧!即便您的英文非常好,命名也非常规范,您总不能期待别人都英文好,理解都一样吧。

2.3  为不容易理解类变量注释。类变量特别是私有的类变量没有人要求注释,但是为了能够快速的了解您表示的是什么,还是写点什么吧!您知道我英文不算好!

2.4  注释代码段,注释逻辑选择。上面提到运用空行分割开逻辑相对独立的代码,那么请在空行的下一行也写点下面代码段要干什么的语句吧。 如果有if else等逻辑选择的时候,麻烦也花几秒钟写上判断的依据和结果好吗?逻辑难懂且关键,您懂的!

3. 不断学习,不断思考,不断实践,更上一层楼

3.1 遇到不懂的,请先google,一定要学会,不然就一直不会了,回头发现工作六七年没有工作两年的小朋友懂的多!

3.2 看别人代码时要汲取好的方法和技巧。

3.3 接触一项技术要升入了解和实践,请问您做过的系统您现在都可以从零开始搭建起来了吗,我的意思是架构搭建哦!

3.4 书里面有知识,有思想,有时间的话还是多精读几本经典书籍吧。您会受益匪浅!

以上只是一点个人的想法,您可以接受或者反驳。谢谢您的时间,就这样!

转载于:https://my.oschina.net/u/781842/blog/111694

你可能感兴趣的文章
响应式API的设计、实现和应用
查看>>
持续交付——不仅仅是技术
查看>>
区块链现状:从谨慎和批判性思维看待它(第二部分)
查看>>
SRE工程师到底是做什么的?
查看>>
解读:Red Hat为什么收购Ansible
查看>>
AWS Config新增跨账户、跨区域数据聚合功能
查看>>
Facebook公布最新的神经网络机器翻译算法
查看>>
使用Android提供的CountDownTimer类实现短信验证码倒计时
查看>>
Java数据结构——单向链表实现
查看>>
MySQL 卸载
查看>>
zabbix创建钉钉报警
查看>>
企业官网建立海外用户与思迈光电的桥梁
查看>>
强烈推荐|你不可不知的性能优化内幕
查看>>
安装可以查看PMM 源码的Go环境
查看>>
HTTPS中间人攻击实践(原理·实践)
查看>>
互联网行业高弹性系统构建最佳实践
查看>>
Avro序列化和RPC实现
查看>>
[New Feature]阿里云对象存储OSS支持版本管理特性
查看>>
Java使用POI读取和写入Excel指南
查看>>
Spark DataFrame 的 groupBy vs groupByKey
查看>>