Android-编程规范
系统目录规范
Requriement 要求相关文档
Design 设计
Planning&Log 计划-日志-会议
Help 帮助
Source或者Src 源代码及单元测试
Deployment 发布-部署-public
Test 集成测试-系统测试-测试报告-Buglist
Study 学习资料-Demo等
readme.txt或者ReadMe.txt 包含该目录结构的具体含义
源代码目录规范
目录即包-Package
目录下所有类都说与此空间,一主类一文件
目录层次递归
一般系统命名空间目录尽量不要超过3层
命名空间:组织名-项目名-模块名 chengzhi.android.demo
二 代码命名约定和风格
常见的命名规范
Pascal命名法
首字母全部大写: int MyAge; Delphi中常用
Camel命名法
第一个首字母小写,后面的都大写:int myAge;java常用
匈牙利命名法
前面加上标识符:String strMyName;VB6常用
下划线命名法
标识符后加上下划线:String s_MyName;
上述的命名方法都采用,但是都不是完全采用,下面是各种使用情况
包(命名空间):
全部小写chengzhi.android.demo
文件命名:Pascal命名法-每个单词的首字母都大写,文件名即类名
类命名
Common类:Pascal
public class SomeClass
{
public SomeClass(){}
}
自定义属性类:pascal ,后缀使用Attribute
public class TestAttribute extends Attribute
{
}
自定义异常类:pascal, 后缀使用Exception
public class TestException extends Exception
{
}
泛型中的类型传递:传递类型字母大写
public class TestList<K, T>
{
}
方法命名:
方法名为动宾短语
普通方法采用Camel命名
构造函数采用Pascal命名
接口命名:
Testinterface,后缀加上interface
事件接口定义:OnClickListener
变量命名
私有成员变量:
Pascal命名+前缀m private String mMyName
静态成员变量 Pascal命名+前缀s static String sMyName
局部变量:
String myName;
推荐使用优化局部变量的方式
String _myName在前面加上下划线
优化方法参数:
String pMyName 前面加上p,是参数parameter的首字母
循环中的变量:
i j k 可以使用无意义字母
三 命名格式化
严格换行:
一个分号一换行,
建议使用
public void testDemo()
{
}
这样的大括号方式
严格缩进:
四个格一缩进,或者使用Tab键,但是Tab要设置缩进4格,且缩进要对其
严格注释:
文件,类,方法,方法参数,变量,属性都要注释
文件和类的注释要包含如下元素
Name,Description, Version, Date, Author, Change, Copyright
遵循javaDoc的标准采用
/**
*第一个类
*
*/的方式
先选中要注释的方法或者类,鼠标光标点在上面
然后在windows中的eclipse中采用shift+alt+J快速生成上面的注释
在Mac中是Cmd+shift+J
变量采用
//我的名字
private String mName
声明的位置:
所有的框架定义的命名空间为一组,自定义的和第三方的命名空间放在另一组,
所有的成员变量都应该声明在顶部,同时使用一个空行来进他们和属性以及方法分开
局部变量声明放到方法顶部
使用java预定义类型而不适用类名来声明变量
使用object而不是Object
使用int而不是Int32等
四 代码逻辑规范
1 避免将多个类放在同一个文件,除非是内部类
2 一个方法的长度不要超过35行
3 尽量不要修改机器产生的代码
4 Final String 取代 String ,同理 int
5 不推荐在循环中使用return返回
6 尽量不要使用goto
7 处处考虑异常
8 在需要对外部公布的时候才使用public,其余的使用private和internal
9 尽量不要提供public 和 protected程序员变量,使用属性代替
10 不要在系统自动生成的函数直接写代码,最好使用自定义函数,再调用
11 总是使用接口,推荐使用显示接口实现
12 在switch语句中总是要有default字句来显示信息
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。