1.编码规范
2.常见开发习惯
1.编码规范
1.1 命名
1.1.1 通用规则
使用骆驼命名法尽量使用完整的英文描述
尽量使用术语,约定俗成的名词,比如 i,j 用于循环索引;temp 用于临时变量尽量不使用缩写,除了习以为常的,比如 success 可以缩写成 suc,button 缩写成
变量要突出含义,表达清晰,比如 mScanButton,mOffset。同时如果是动作型需要突出行为,比如
1.1.2 变量命名
常量使用全大写并用下划线分割,比如 WRITE_SETTINGS。只能写在类最开始的位置常量用途类型关键字加在开头,比如
类成员变量使用 m 开头,类静态变量使用 s 开头,比如 mOffset,sCache需要并使用正确的作用域修饰符(private,public 等)
变量只能写在类开头,函数之前。不能穿插在函数之间
1.1.3 函数命名
函数命名需要特别强调动作,并且用词得当。比如检查网络是否连接,应该用isNetworkConnected,而不是 getNetworkState
1.1.4 类命名第一个字母需要大写
1.1.5 包命名都由小写字母组成
1.2 格式
1.2.1 空格使用
参数之间:a(int arg1, int arg2, long arg3), b(1, 2, 3)
花括号,关键字,操作符前后:static {}, if (a == 1 || b) {}, for (int = 0; i < 10, i++) {}, synchronized (object) {}
1.2.2 换行换行使用\n,window 环境请修改默认配置
前花括号必须紧跟上一行语句,后或括号必须新起一行:
int i = 1;
}
函数之间需且只空一行函数内部非特殊情况不需要空行,如果要突出代码块差别可适当加空行过长行需要从适当位置换行,不要过度换行,保证在 24 寸显示器上面有最佳显示效果就可以了正常情况下面每行只有一个分号,也即每行一行代码
1.2.3 编写规范if,while 等关键字的代码块必须使用花括号包裹
1.2.4 缩进使用四个空格作为缩进
1.3 注释
1.3.1 使用时机
需要引起后来维护者注意的暴露给外部,其他开发者接口的
比较难以理解的场景,使用规则,线上偶发等
1.3.2 使用规范类注释,函数注释使用/** */
变量注释,内部注释使用//
release 代码中原则上不能包括使用注释来保存废弃代码,不用代码应该直接删掉
1.4 书写规范静态常量应该只定义在类最开始位置。仅次于的是类成员变量。然后是静态函数,成员函数。
类似声明集中在一起,并和其他分开来。比如 view 定义,普通变量,静态变量分别集中在一起并彼此分离开。排列顺序请参照示例
1.5 文件文件内容采用 utf-8 编码
1.6 其他 release 代码不允许存在 TODO,在开发阶段可以使用来标记未完全完成且需要后续来完善的
代码,建议这样标记避免遗忘
1.7 示例
private static final int DELAY_TIME = 2000; private static final int ITEM_MORE = 2;
private static List<String> sCache; private static List<String> sData;
private TextView mScanButton;//以下普通成员变量排列次序不做强行规定 private ImageView mAvatar;
private int mOffset = 0; private int mLimit = 10;
private BroadcastReceiver mGetLyricDoneReceiver = new BroadcastReceiver() { @Override
public void onReceiver(Context context, Intent intent) {
}
};
private BroadcastReceiver mDownloadedReceiver = new BroadcastReceiver() { @Override
public void onReceiver(Context context, Intent intent) {
}
};
public functionA(int a, String b) { if (a == 1) {
}
}
}
2.常见开发习惯
2.1 try catch 只抓自己关注的异常,一般情况下不允许使用 catch Exception 或者 Throwable,这样
避免无法暴露问题。