Android开发规范文档
剑走偏锋终归会落下一些东西,以后会慢慢整理
1. 基本命名规则
在面向对象编程中,对于类,对象,方法,变量等方面的命名是非常有技巧的。比如,大小写的区分,使用不同字母开头等等。但究其本,追其源,在为一个资源其名称的时候,应该本着描述性以及唯一性这两大特征来命名,才能保证资源之间不冲突,并且每一个都便于记忆。
对于理解应用程序的逻辑流,命名方案是最有影响力的一种帮助。名称应该说明“什么”而不是“如何”。命名原则是:使名称足够长以便有一定的意义,并且足够短以避免冗长。唯一名称在编程上仅用于将各项区分开。以下几点是规范的命名方法。
- 命名基本规范
- 编程命名基本规范
- 避免难懂的名称,如属性名list1,face2,这样的名称会导致多义性
- 在面向对象的语言中,在类属性的名称中包含类名是多余的,如Face.FaceData,而是应该使用Face.Data。
- 在变量名中使用互补对,如min/max、begin/end和open/close。
- 布尔变量名应该包含b,如 bFound, bChecked。
- 即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名 称。仅对于短循环索引使用单字母变量名,如 i 或 j。
- 为了帮助区分变量和方法名,对方法名称使用Pascal大小写处理 (CalculateInvoiceTotal),其中每个单词的第 一个字母都是大写的。对于变量名,使用 camel大小写处理 (documentFormatType),其中除了第一个单词外每个单词的第一个字母都是大写的。
2.2. 分类命名规范
- 包的命名
Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。
例如: com.tskj.facedemo
- 类的命名
类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。
例如:UserBean,FeatureBean
- 方法的命名
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。
例如: sendMessge()
- 常量的命名
常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。
例如: MAX_VALUE , SWEEP_OPEN_MENU
- 参数的命名
参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可能明确。
私有属性:private int nAge;
静态变量:static String sName;
函数内部变量:int lAge;
方法定义时的形参:int pAge;
- Javadoc注释
Java除了可以采用我们常见的注释方式之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,它是用来记录我们代码中的API的。Javadoc注释是一种多行注释,以/**开头,而以*/结束,注释可以包含一些HTML标记符和专门的关键词。使用Javadoc注释的好处是编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。
例如:
/*** This is an example of face detect** @author darchon* @version 1.0, 09/09/2018*/
- 变量命名规范
s:表示字符串。例如:sName,sHtml;
n:表示数字。例如:nPage,nTotal;
b:表示逻辑。例如:bChecked,bHasLogin;
a:表示数组。例如:aList,aGroup;
r:表示正则表达式。例如:rDomain,rEmail;
f:表示函数。例如:fGetHtml,fInit;
g:表示全局变量,例如:g_UserName,g_LoginTime;
- 分类命名规范
- 控件命名规范
TextView :txt_+描述Button :btn_+描述 ImageButton :imgBtn_+描述ImageView :imgView_+描述CheckBox :chk_+描述RadioButton :rdoBtn_+描述AnalogClock :anaClk_+描述DigitalClock :DgtClk_+描述DatePicker :dtPk_+描述TimePicker :tmPk _+描述ToggleButton :tglBtn_+描述EditText:edtTxt_+描述ProgressBar:lcb_+描述SeekBar:skBar _+描述AutoCompleteTextView:autoTxt_+描述MultiAutoCompleteTextView:mlAutoTxt_+描述ZoomControls:zmCtrl_+描述Include:ind_+描述VideoView:vdoVi_+描述WebView:webVi_+描述RatingBar:ratBar_+描述Tab:tab__+描述Spinner:spn_+描述Chronometer:Cmt_+描述ScrollView:sclVi_+描述TextSwitcher:txtSwt_+描述 Gallery:gal_+描述ImageSwitcher:imgSwt_+描述GridView:gV_+描述ListView:lVi_+描述ExpandableList: epdLt_+描述MapView: mapVi_+描述
- 项目目录规范
- 系统目录规范:
指项目目录中不仅包括源代码,还需要包括:需求相关文档、设计文档、计划日志文档、测试文档、项目进行中学习资料文档(参考Demo);使整个项目更加清晰,
- 源代码目录规范:
一般系统命名空间目录尽量不要超过3层,[组织名].[项目名].[模块名]:com.tsjk.demo
- Res资源文件命名
- res/layout下的xml文件统一用小写和下划线"_"组合命名,并加上前缀以便区分
正例:
对话框的xml配置文件:dlg_name.xml
- layout中的id采用以下命名模式: view缩写_模块名称_view的逻辑名称
说明:view的缩写详情如下
ListView: lv
RelativeView: rv
TextView: tv
ImageView: iv
ImageButton: ib / ibtn
Button: btn
正例:
@+id/lv_appstore_applist
反例:
@+id/ListView01
- activity文中的view变量采用以下命名模式: 逻辑名称_view缩写
正例:
ListViewapplistLv
- res/drawable下的资源文件采用以下命名模式: activity名称_逻辑名称/common_逻辑名称
正例:
main_default.png,main_pressed.png
- strings.xml中的id采用以下命名模式: activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称
正例:
<string name="main_downloading">正在下载„</string>
- 字符串信息应统一在strings.xml中定义,调试信息除外
- 使用日志时,不重要的信息定义在debug等级或者info等级,较为严重的情况把日志定义的warn等级和error等级。正常情况下尽量不使用System.out.println();作为日志的输出 Log的TAG要包含类名和编写人名字以及日期,例如Log.e(“ImgUtils 张三 20180719 18:00”)
- 代码书写规范
- 建立标准的缩进大小(如四个空格),并一致地使用此标准。用规定的缩进对齐代码节。
- 在括号对对齐的位置垂直对齐左括号和右括号,如:
for (i=0; i<100; i++) { // do sth. }
- 为注释和代码建立最大的行长度,以避免不得不滚动源代码编辑器,并且可以提供整齐的硬拷贝表示形式。
- 当一行内容太长而必须换行时,在后面换行代码中要使用缩进格式,如下:
string inserString ="Insert Into TableName(username,password,email,sex,address) " +"Values( 'Soholife ', 'chenyp ', 'soholife@sina.com ', 'male ', '深圳福田 ') ";
- 每一行上放置的语句避免超过一条。特殊循环如for(i =0;i<100;i++)等除外。
- 编写SQL语句时,对于关键字使用全部大写,对于数据库元素(如表、列和视图)使用大小写混合。例如
SELECT * FROM Table1;
Android开发规范文档相关推荐
- 微信小程序开发规范文档
微信小程序开发规范文档 摘自: https://shimo.im/docs/EZKacqyM018gmopv/read 目录规范 1.目录概述 组件文件 所有组件相关文件统一放在components目 ...
- 开发备必:WEB前端开发规范文档
规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必 须按本文档规范进行前台页面开发. 本文档如有不对或者 ...
- WEB前端开发规范文档
2019独角兽企业重金招聘Python工程师标准>>> 基本准则 符合web标准, 语义化html, 结构表现行为分离, 兼容性优良. 页面性能方面, 代码要求简洁明了有序, 尽可能 ...
- 【代码规范】Web前端开发规范文档!!!
规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进行前台页面开发. 本文档如有不对或者不 ...
- Java 开发规范文档
一 : 目的 使本组织能以标准的,规范的方式设计和编码.通过建立编码规范,以使每个开发人员养成良好的编码风格和习惯:并以此形成开发小组编码约定,提高程序的可靠性,可读性,可修改性,可维护性和一致性等, ...
- 再读华为代码规范文档
两年前,开始编程前,读过华为代码规范文档,以后一直按该文档要求自己,两年后,再读,另有收获,发现这些问题,自己平时还是没有注意到. 1.关于函数使用: 1.1 接口函数参数 在同一项目组应明确规定对接 ...
- Python试题和规范文档
##试题: ###第一题: microbit和Arduino的区别 microbit:1.在线编程工具+本地编程工具,2.尺寸 43mm * 52mm,3.兼容电压:3V,4.带有模拟窗口,即使手上没 ...
- microbit题目和规范文档
microbit题目和规范文档 考试题目: 第一题:microbit和Arduino的区别 第二题 第三题:画流程图,当microbit晃动时,在LED点阵上显示1-6的随机数,当按钮b按下时,清空l ...
- 还在手工制作APP规范文档?这款设计神器你不容错过
之前写了一些关于APP原型文档的文章:一款APP的交互文档从撰写到交付 这次想写下关于APP设计规范文档的内容,规范文档这个东西,实际上大部分中小型公司没有这方面的需求,也没精力去制作这样一个系统性的 ...
最新文章
- 关于SQLServer2005的学习笔记——XML的处理
- 使用Sencha Designer来快速开发web用户界面 -- 初识Designer
- 高德地图时间和实际差多少_独家揭秘:高德地图品牌升级背后的故事
- 本地编译和交叉编译的区别
- 可变与不可变数据类型详解
- WIF - claims-based identity
- [Halcon] 算子学习_Calibration_Calibration Object
- python写剧情文字游戏_文字游戏引擎试用心得之一:Ren'py 和 Fungus
- python人工智能入门优达视频_python入门视频教你搭建机器学习Python环境的正确姿势...
- 激光打印机与计算机相连,Hp laserjet1010打印机怎么连接电脑使用?
- 荣耀加冕,追梦不休 | 我的大学时光
- Ubuntu下adb无法识别android设备的解决方法
- 教你巧用后视镜判断车距
- vue 移动端头像裁剪_vue头像上传裁剪组件_一个漂亮的Vue组件,用于图像裁剪和上传...
- c语言程序设计臧,臧学莲
- 小悦悦事件,18路人视而不见,不只是道德问题
- Windows 10 安装STF实战
- C语言每日一题——查找数字
- Spring Data MongoDB SpEL表达式注入漏洞安全风险通告第二次更新
- 算法设计与分析(第4版)