zoukankan      html  css  js  c++  java
  • ym——Android开发编码规范(自用)

    转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持!


    Android开发编码规范

    目的及指导原则

    目的

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


    指导原则

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

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

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

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

    5)多加凝视。凝视是为了让人更easy理解代码,而不是为了敷衍。比如 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) 变量必须起有意义的名字,使其它组员能够非常easy读懂变量所代表的意义,变量命名能够採用同义的英文命名,可使用几个英文单词,第一个单词首字母小写,其它单词首字母大写。

    比如:


    private protected:

    mCountChild

    public:

    局部变量

    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

    抽象类:

    Abstract开头

    例:AbstractDataManager


    接口:

    I开头

    例:IDataManager


    控件专用前缀规范

    控件名前缀

    Button/ImageButton btn

    toggleButton tb

    TextView tv

    CheckBox cb

    EditText et

    GridView gv

    ListView lv

    VideoView vv

    ScrollView scv

    ImageView img



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

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


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

    比如:

    加入短信模板的buttonid可命名为:

    btnAddSmsContent

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

    btnAddSmsContent

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

    private protected:

    mBtnAddSmsContent

    public:

    _btnAddSmsContent


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

    lvSmsContent

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

    lvSmsContent

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

    private protected:

    mLvSmsContent

    public:

    _lvSmsContent


    改动规范

    新增代码行

    新增代码行的前后应有凝视行说明。

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

    新增代码行

    //改动结束

    删除代码行

    删除代码向的前后用凝视行说明

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

    要删除的代码行(将要删除的语句进行凝视)

    //改动结束

    改动代码行

    改动代码行以凝视旧代码行后再新增代码行的方式进行。

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

    //改动前代码行開始

    //改动前代码行

    //改动前代码行结束

    //改动后代码行開始

    改动后代码行

    //改动结束


    错误处理规范

    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


  • 相关阅读:
    vmware导出为ovf
    华三接入交换机推荐
    mysql root情况
    ospf精确宣告地址
    kubernetes k8s yum localinstall
    js判断邮箱、用户名、手机号码和电话号码是否输入正确?
    如何修改Oracle中表的字段长度?
    mybatis与hibernate区别
    SSM框架的优势?
    SSH框架的优势?
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4246151.html
Copyright © 2011-2022 走看看