代码规范的那些事儿

标签: 代码 规范 | 发表时间:2012-06-29 00:17 | 作者:陈雨晨
出处:http://www.blogjava.net/

作为一个苦逼的程序员,因为种种原因经常需要阅读别人写的代码。您是否有因代码杂乱冗余而心生厌恶,您是否有过因代码晦涩难懂而抓狂,您是因代码低级的逻辑错误而愤概,您是否因代码结构不合常规而需要到处查找,您是否因看到几百甚至上千行代码的方法而望洋兴叹,您是否因代码缺少注释而猜测以及花很多时间去理清楚前后逻辑。苦逼的我全部遇到过并且很多很多,这些代码的作者从世界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 书里面有知识,有思想,有时间的话还是多精读基本经典书籍吧。您会受益匪浅!


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



陈雨晨 2012-06-29 00:17 发表评论

相关 [代码 规范] 推荐:

android 编程代码规范

- - CSDN博客推荐文章
                学习android开发已经有很长时间了,但是有时代码却很少用规范的模式进行书写,下面就简要的总结了自己学习的代码规范. 一、关于一些常量值资源的书写规范. 颜色值有RGB和透明信息Alpha组成,以#开头, 形式有 #RGB                        #ARGB                        #RRGGBB                    #AARRGGBB.

java代码开发规范

- - BlogJava_首页
格式规范:                                                                      .       1、TAB空格的数量. 编辑器上的TAB空格数量统一取值为4.       2、换行, 每行120字符.       3、if语句的嵌套层数3层以内   .

前端代码规范

- - Web前端 - ITeye博客
1 结构、样式、行为三层分离;. 2 采用统一的缩进(两个或四个空格/Tab);. 3 嵌套标签应当缩进一次,必须合理嵌套;. 4 HTML页面必须包含文档类型声明,采用HTML5文档类型声明;. 5 CSS样式全部采用外链的方式在标签中引入;禁用行内样式,复用已有的样式规则;. 6 所有标签和属性名称必须小写,标签的属性值全部使用双引号,不采用属性简写方式;.

几个 Swift 代码规范

- - SegmentFault 最新的文章
作者:Erica Sadun, 原文链接,原文日期:2015-11-17. 译者: mmoaay;校对: lfb_CD;定稿: shanks. 我们需要经常带着新问题来重新审视一下以前的代码规范. Kevin 提供的一套规范:“如果尾部的闭包参数是函数式的就用圆括号. myCollection.map({blah}).filter({blah}).etc myCollection.forEach {} // 或者 dispatch_after(when, queue) {}.

代码规范的那些事儿

- - BlogJava-首页技术区
作为一个苦逼的程序员,因为种种原因经常需要阅读别人写的代码. 您是否有因代码杂乱冗余而心生厌恶,您是否有过因代码晦涩难懂而抓狂,您是因代码低级的逻辑错误而愤概,您是否因代码结构不合常规而需要到处查找,您是否因看到几百甚至上千行代码的方法而望洋兴叹,您是否因代码缺少注释而猜测以及花很多时间去理清楚前后逻辑.

优秀的 HTML 和 CSS 代码规范

- - SHTION官方网站
HTML 和 CSS 代码规范究竟是怎么样的. 做网站时, HTML 和 CSS 代码有什么要求. HTML 和 CSS 代码的写法是否影响网站的SEO. 写好  HTML 和 CSS 代码需要注意些什么. 一般大型WEB站点开发设计人员,要求使用者具有一定的 HTML、CSS基础知识,对原代码具有较强的控制能力.

【转载】Google推荐的15条军规:HTML5代码规范

- - HTML5研究小组
今天无意间看到了Google的HTML/CSS编码规范,发现了不少自己很容易忽略的问题,特意仔细看了看,将其整理翻译出来分享给大家. Google规范的原文链接大家可以访问: http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml.

10种常见的Java不规范代码

- - 编程语言 - ITeye博客
1、在Eclipse中格式化源代码并管理import语句:. Eclipse提供了自动格式化源代码和管理import语句的功能(并移除未使用的语句). 你可以使用下面的快捷键来使用这些功能. Ctrl + Shift + F – 格式化源代码. Ctrl + Shift + O – 管理import语句并移除未使用的语句.

为什么谷歌要执行严格的代码编写规范

- Ken - python.cn(jobs, news)
# 本文是从 Stuff Everyone Should Do (part 2): Coding Standards 这篇文章翻译而来. 本篇是谷歌是如何做代码审查的的续篇. 我们在谷歌所做事情中另外一个让我感到异常有效、有用的制度是严格的编码规范. 在到Google工作之前,我一直认为编码规范没有什么用处.

项目开发中碰到的一些常见的不规范的代码

- - Java - 编程语言 - ITeye博客
从事java EE开发4年多了,从2011年尾开始参与一个大型电子商务系统,一直做到现在. 项目在2012年10月完成了验收,2012年11月开始转运维,巧的是自己跟另外一个同事被客户指定为长期固定运维人员. 虽说是运维,但我们不需要管理服务器,不需要管理数据库,做的工作就是修改上生产后项目出现的一些问题(处理用户报障),同时开发一些新的需求(开发新功能),以及不断的优化重构项目源码,处理一些原功能存在的严重性能问题,提炼或从新定义共用的业务API等.