A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1. 风格务必保持一贯性(Consistent)
一位同胞顶着我的鼻子问,为什么我们的Java代码缩进格式非得是这样,而不能是他那样,他就是喜欢他自己的这一种,因此他写的代码总是用他自己习惯的风格。结果在Code Review里被大家毙掉,责令修改。因此他是大大地不服。就是风格一贯性问题。其实他的风格,本来也没有什么问题,但在项目里,和其他程序员的程序的风格,显得扃异,那就存在问题了。比如这个缩进,又比如变量命名方法,不同的类,不同的Methods里,各自不同,这程序就很难看了。所以一旦你选择了某种风格,一定要贯彻始终。如果一个项目里规定了一个风格,即便很不符合你自己的习惯,也要贯彻始终,绝不应该有标新立异。

2. 缩进风格(indent)
既然是从缩进说起,就先说说缩进风格;一般来说,象Java这样的类C语言,都采用缩进风格。而常用的,有四种
A.K&R风格
这是C程序最早的缩进风格,由C的发明者Ritchie和他的合作者Kernighan率先使用:
if (<cond>) {
    <body>
}
其特点,是大括号和if判断在同一行。通常,缩进为8个空格或一个tab键,但在C++和Java里,也常缩进4个空格。有人喜欢用两个空格,窃以为不好,不明显。

B. BSD 风格
又称Allman Style,源自Unix BSD程序员Eric Allman--他为BSD写过很多程序:
if (<cond>)
{
    <body>
}
特点:大括号和条件判断分在两行。

C. Whitesmith风格
这种风格源于Whitesmith C:
if (<cond>)
    {
    <body>
    }


D. GNU风格
这种风格仅见于GNU EMACS的源程序中:
if (<cond>)
  {
    <body>
  }

那么在Java里用哪种好呢?建议只采用A或B。SUN有一个Java Code Name Convention,建议的是A。

3. Tab还是空格(Tabs vs Space)
还是缩进问题。那么一次缩进应该多大距离?是八个空格键,还是一个Tab键?

Java有一个特点,就是跨平台性。不过跨平台指的是它的Class可以在不同平台的虚拟机上运行。Java的源程序,有时候可不是跨平台的。什么?源程序还能不跨平台?是的。有次一个程序员送来一些Code,在我的环境里打开,程序难看得一塌糊涂,有该缩进的地方,没有缩进,有的则缩进一大截,如同怪石一样,嶙峋参差。这样的代码质量可不行!叫来程序员一问,答曰在他那里漂亮得很啊,他还专门花时间去美化它们了呢?

原来他的缩进没有注意一个风格,在有的地方用Tab键,有的地方打空格。在一些不同的平台上,Tab键的宽度可是不一样的。

说道这里,相信大家比较清楚了,在缩进的时候,尽量不用Tab,而是用空格。好在许多编辑器,都可以把你的键盘上的Tab键定义成几个空格。赶紧去定义它!

每次用多少空格呢?4个。2个太少不明显,8个太多占空间。

4. 行宽
说道8个空格键占空间,那么我一行有320列,8个空格算什么?打住!请寄住,一行尽量不要超过80列。许多终端一个屏幕只能显示80列,为它们想想巴。如果你的语句太长,想办法折断它,分几列来写。

5. 变量命名
SUN Java Code Convention里定义了Java里package, class, method和普通变量的命名规则,

方法、变量与常量的命名规则

关于包、类及接口的命名规则,在上面的章节中已经讲解过,在此就不再赘述了,本节讲解在Java程序设计中,有关方法、变量与常量的命名规则相关的知识。

10 个回复

倒序浏览
嗯,无规矩不成方圆。。。
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
不错很好啊,有感悟
回复 使用道具 举报
谢谢 总结的很好。
回复 使用道具 举报
用TAB和回车比以前多多了
回复 使用道具 举报
马克~~~~~~~~~~~~~
回复 使用道具 举报
Cat 中级黑马 2015-5-4 08:36:30
8#
学习一下
回复 使用道具 举报
养成好习惯~  学习了
回复 使用道具 举报
不错谢谢,分享,楼主
回复 使用道具 举报
很好,其实这个问题平时大家和可能不注意。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马