Android开发编码规范

来源:互联网 发布:小企业网络搭建 编辑:程序博客网 时间:2024/05/17 03:28


Android开发编码规范

目的及指导原则

目的

     统一规范 Eclipse编辑环境下Java的编码风格和标准

指导原则

     1)首先是为人编写程序,其次才是计算机。这是软件开发的基本要点,软件的生命周期贯穿产品的开发、测试、生产、用户使用、版本升级和后期维护等长期过程,只有易读、易维护的软件代码才具有生命力。

     2)保持代码的简单清晰,避免过分的编程技巧。保持代码的简单化是软件工程化的基本要求。不要过分追求技巧,否则会降低程序的可读性。

     3)编程时首先保证正确性,其次考虑效率。编程首先考虑的是满足正确性、健壮性、可维护性、可移植性等质量因素,最后才考虑程序的效率和资源占用。

     4)函数(方法)是为一特定功能而编写,不是万能工具箱。方法是一个处理单元,是有特定功能的,所以应该很好的规划方法,不能是所有东西都放在一个方法里实现。

     5)多加注释。注释是为了让人更容易理解代码,而不是为了敷衍。例如 sort函数,注释写的是排序,那么该注释是无意义的,因为看名字就知道是排序。例如注释为希尔排序实现,则有意义,因为阅读者能知道名字以外更多的信息。

适用范围

    适用于所有用Java语言开发的项目。

编码规范

文件

     1) 项目文件必须使用一个有意义的名字。例如:Eclipse中下拉刷新的view文件被命名为’RefreshLoadingView’

     2) 对于文件的目录要按如下结构创建:

          -包名下面:程序入口

          -activity:存放所有Activity,不同模块可以建立子包存放便于区分

          -frament:存放所有Frament,不同模块可以建立子包存放便于区分

          -service:存放所有service,不同模块可以建立子包存放便于区分

          -broadcast:存放所有broadcast,不同模块可以建立子包存放便于区分

          -view:存放所有自定义控件

          -base:存放所有base类及存放全局变量

          -utils:存放所有工具类

          -adapter:存放所有adapter

          -db:存放数据库相关如:model(db实体), operate(db操作类)

           -http:存放请求类及所有请求实体(dto),callback

           关于图片,资源文件等都按android默认存放路径存放

           蓝牙,网络请求类,数据库操作基类封装成lib,引用即可。

注释

          打开eclipse-Properties->Code Templates->Comments

          配置如下

          Files

/**
* @Title: ${file_name}
* @Package ${package_name}

* @Description: ${todo}(用一句话描述该文件做什么)
* @author 名字
* @date ${date} ${time}
* @version V1.0
*/
Types
/**
* @ClassName: ${type_name}
* @Description: ${todo}(这里用一句话描述这个类的作用)
* @author名字
* @date ${date} ${time}
*
* ${tags}
*/
Fields
/**
* @author 名字
* @date ${date} ${time}
* @Fields ${field} : ${todo}(用一句话描述这个变量表示什么)
*/
Constructors
/**
* <p>Title: </p>
* <p>Description: </p>
* ${tags}
* @author 名字
* @date ${date} ${time}
*/
Methods
/**
* @author 名字
* @date ${date} ${time}
* @Title: ${enclosing_method}
* @Description: ${todo}(这里用一句话描述这个方法的作用)
* @param ${tags}    设定文件
* @return ${return_type}    返回类型
* @throws
*/
Overriding methods
/**
* @author 名字
* @date ${date} ${time}
* <p>Title: ${enclosing_method}</p>
* <p>Description: </p>
* ${tags}
* ${see_to_overridden}
*/
Delegate methods
/**
* @author 名字
* @date ${date} ${time}
* ${tags}
* ${see_to_target}
*/
Getters
/**
* @author 名字
* @date ${date} ${time}
* @return ${bare_field_name}
*/
Setters
/**
* @author 名字
* @date ${date} ${time}
* @param ${param} 要设置的 ${bare_field_name}
*/

有些重要地方用 // TODO 标明

编码排版格式

可用Eclipse自带格式快捷 shift+command(ctrl)+f

命名规范

方法

        1)方法的名称应全部使用有意义的单词组成,且以小写字母开头,多单词组合时,后面的单词首字母大写。

            例如:

            getUserInformation……

        2) 设置类变量的内容的方法应使用set作为前缀,读取变量的内容的方法应使用get作为前缀。

            例如:

            getUserName();

            setUserName(String username);

        3) 方法中的参数:参数名要有意义

            例如:

            setUserName(String username);

变量

         1)变量必须起有意义的名字,使其他组员可以很容易读懂变量所代表的意义,变量命名可以采用同义的英文命名,可使用几个英文单词,第一个单词首字母小写,其他单词首字母大写。

             例如:

             全局变量 mCountChild

             局部变量countChild

         2)对于一些特殊类型的变量,命名时要带上类型,如NSArray的变量命名为xxxArray,其他的如xxxDictionaryxxxSize等。这样就可以从名称上知道是什么类型的变量。

常量

        1)避免在程序中直接出现常数,使用超过一次的应以常量定义的形式来替代。

         2)常数的宏定义应与它实际使用时的类型相一致。如以3.0来定义浮点类型,用3表示整型。

         3)常量的命名应当能够表达出它的用途,并且用大写字母表示。

             例如:

             public static final doublePI 3.1415926

         4)一些常量前加特殊前缀,可以作为不同常量的区分,

             例如:

              UserDefaultsKey的变量前加UDKEY_,

              NotificationNameKey前面加NNKEY_,

              DictionaryKey前面加DICTKEY_,

        1)所有的类名,接口名均以大写字母开头,多单词组合时,后面的单词首字母大写。类,接口名必须是有意义的。

        2) 继承自UIView的类以View结尾。

            例如:

            OperatorUsersInfomationViewLabelView等。

        3) 继承自ViewController的类以viewController结尾。

            例如:

            HomePageViewControllerLoginViewController等。其他类推。

        4)所有保存数据的实体以Model结尾。

            例如:

            UserModel

        5) 抽象类:Abstract开头

            例如:

           AbstractDataManager

        6) 接口:I开头

            例如:

            IDataManager

控件专用前缀规范

        控件名前缀

        Button/ImageButtonbtn

        ToggleButtontb

        TextView tv

        CheckBox cb

        EditText et

        GridView gv

        ListView lv

        VideoView vv

        ScrollView scv

        ImageViewimg

xml文件的控件id命名规则:

        控件专用前缀+英文名称(每个单词首字母大写)

        英文名称在能反映出该控件的大致用途的前提下尽量简短。

        例如:

           添加短信模板的按钮id可命名为:

           btnAddSmsContent

           对应java代码中的局部变量可命名为:

           btnAddSmsContent

           对应java代码中的类字段可命名为:

           mBtnAddSmsContent

           显示短信模板的ListView id可命名为:

            lvSmsContent

            对应java代码中的局部变量可命名为:

            lvSmsContent

            对应java代码中的类字段可命名为:

            mLvSmsContent

修改规范

         新增代码行, 新增代码行的前后应有注释行说明。

               //修改人,修改时间,修改说明

               新增代码行

               //修改结束

         删除代码行,删除代码向的前后用注释行说明

               //修改人,修改时间,修改说明

               要删除的代码行(将要删除的语句进行注释)

               //修改结束

         修改代码行,修改代码行以注释旧代码行后再新增代码行的方式进行。

               //修改人,修改时间,修改说明

               //修改前代码行开始

    //修改前代码行

               //修改前代码行结束

               //修改后代码行开始

               修改后代码行

               //修改结束

错误处理规范

1)对所有的实体类及其属性的使用要做非空检查,避免使用空对象引起的错误;

2)对数组进行越界检查;

3)所有有返回值的函数必须首先在函数开始指定默认值;

4)通用函数、方法以及具体业务实现代码中必须加 try…catch错误扑捉处理;


代码管理规范

1)统一使用SVN进行代码管理

2)严格控制commit次数,只有在关键代码或者模块完整功能全部实现、下班前才能做代码commit

3)代码commit必须要写明变更记录;

4) 代码提交之前必须CheckStyle,并且解决CheckStyle警告后才能提交;

CheckStyle

1. Checkstyle是在软件开发中的一种静态代码分析工具,用来检查Java源代码是否符合编码规则。

2.配置CheckStylehttp://www.cnblogs.com/lanxuezaipiao/p/3202169.html

3.配置CheckStyle文件配置文件到(中文提示版)CheckStyle.xml

配置方法http://chenzhou123520.iteye.com/blog/1627618

4.使用CheckStyle


转载自http://blog.csdn.net/cym492224103/article/details/40108857



0 0
原创粉丝点击