根据谷歌官方和自己的经验写了一些。
补充Android代码建议
1. import foo.Bar;导入架包使用全路径,这样可以增加代码的可读性。
2. 创建的类和接口必须要写名该类的作用
/**
* Does X and Y and provides an abstraction for Z.
*/
public class
Foo {
...
}
3. 代码中不允许出现相同的代码来实现同一个功能,应该封装为方法或者静态方法。下次修改只需要修改一处。
4. 公有的方法应该要以第三人称的视角对方法进行描述比如:
/**Returns the correctly rounded positive square root of a double value. */
static double sqrt(double a)
{
...
}
or
/**
* Constructs a new String by converting the specified array of
* bytes using the platform‘s default character encoding.
*/
public String(byte[] bytes)
{
...
}
5. 编写较短的方法,编写方法的原则是封装性和针对性。但并不是绝对的,如果方法的代码超过40行,可以在不影响程序的情况下,将方法拆分。可以使用快捷键,选择要拆分的代码CTRL+1选择extract method,提取成方法。
6. 定义字段和变量是应该在文件的前面,或者在紧接着要使用该字段或变量的方法上面。
具有类似配置功能的参数应该要定义在一起。
7. 控制变量的范围
7.1局部变量能完成的,不使用全局变量。提高效率的同时,还能避免出错。
8. 使用TODO 关键来注释,比如你关闭了客户端密钥的校验时,必须要写
//TODO 发布时打开密钥校验
9.不能捕获异常而不做处理,比如
void setServerPort(String value)
{
try {
serverPort =
Integer.parseInt(value);
} catch
(NumberFormatException e)
{ }
}
至少要打印出错误的日志,否则会给后期调试带来很多不便。
11.日志输出
a提交的代码中不能出现system.out这样的输出语句。
c.日志的TAG可以不写,但最好不要写类名,写了类名混淆就没有意义了。可以把相同的操作比如网络请求,网络返回统一作为TAG,同一个相同逻辑的用一个TAG。比如用户行为统计,数据校验等。
d.整个流程必须经过日志的说明。简单的说就是可以通过日志还原重要逻辑。以便后期定位问题和前期开发时思路的正确性。
Ex:
e.网络发送数据与接收到的数据一定要打印
12. 使用Android库或者模式出现deprecated的时候,已有的代码可以继续使用弃用的库或者模式,但是开发新的组件或者项目时,使用新的库或者模式。