技术标签: 帕斯卡pascal命名法 android 命名规范 驼峰法
标识符命名法
标识符命名法最要有四种:
1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。
2 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写
3 下划线命名法:单词与单词间用下划线做间隔。
4 匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。 量的取名方式为:<scope_> + <prefix_> + <qualifier>范围前缀,类型前缀,限定词。
个人觉得标识符命名原则:尽可能的用最少的字符而又能完整的表达标识符的含义。
英文缩写原则:
1 较短的单词可通过去掉“元音”形成缩写
2 较长的单词可取单词的头几个字母形成缩写
3 此外还有一些约定成俗的英文单词缩写.
下面为常见的英文单词缩写:
名称 |
缩写 |
icon |
ic (主要用在app的图标) |
color |
cl(主要用于颜色值) |
divider |
di(主要用于分隔线,不仅包括Listview中的divider,还包括普通布局中的线) |
selector |
sl(主要用于某一view多种状态,不仅包括Listview中的selector,还包括按钮的selector) |
average |
avg |
background |
Bg(主要用于布局和子布局的背景) |
buffer |
buf |
control |
ctrl |
delete |
del |
document |
doc |
error |
err |
escape |
esc |
increment |
inc |
infomation |
info |
initial |
init |
image |
img |
Internationalization |
I18N |
length |
len |
library |
lib |
message |
msg |
password- |
pwd |
position |
pos |
server |
srv |
string |
str |
temp |
tmp |
window |
wnd(win) |
程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的。
命名规范:
1 包(packages): 采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名
包名 |
此包中包含 |
com.xx.应用名称缩写.activities |
页面用到的Activity类 (activities层级名用户界面层) |
com.xx.应用名称缩写.base |
页面中每个Activity类共享的可以写成一个i额BaseActivity类 (基础共享的类) |
com.xx.应用名称缩写.adapter |
页面用到的Adapter类 (适配器的类) |
com.xx.应用名称缩写.tools |
此包中包含:公共工具方法类(tools模块名) |
com.xx.应用名称缩写.bean (或则 com.xx.应用名称缩写.unity ) |
此包中包含:元素类 |
com.xx.应用名称缩写.db |
数据库操作类 |
com.xx.应用名称缩写.view (或则 com.xx.应用名称缩写.ui ) |
自定义的View类等 |
com.xx.应用名称缩写.service |
Service服务 |
com.xx.应用名称缩写.broadcast |
Broadcast服务 |
2 类(classes):名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。
类 |
描述 |
例如 |
activity 类 |
Aty或者Activity为后缀标识 |
欢迎页面类WelcomeAty.或者WelcomeActivity |
Adapter类 |
Adp或者Adapte 为后缀标识 |
新闻详情适配器NewtDetailAdp或则直接 NewDetailAdapter |
解析类 |
Hlr为后缀标识 |
首页解析类HomePosterHlr |
公共方法类 |
Tools或Manager为后缀标识 |
线程池管理类:ThreadPoolManager |
数据库类 |
以DBHelper后缀标识 |
新闻数据库:NewDBHelper |
Service类 |
以Service为后缀标识 |
时间服务TimeService |
BroadcastReceive类 |
以Broadcast为后缀标识 |
时间通知TimeBroadcast |
ContentProvider |
以Provider为后缀标识 |
|
直接写的共享基础类 |
以Base开头 |
BaseActivity,BaseFragment |
3 接口(interface):命名规则与类一样采用大驼峰命名法,多以able或ible结尾,如interface Runna ble ;
interface Accessible 。
4 方法(methods):动词或动名词,采用小驼峰命名法例如:onCreate(),run()
方法 |
说明 |
initXX() |
初始化相关方法,使用init为前缀标识,如初始化布局initView() |
isXX() |
checkXX()方法返回值为boolean型的请使用is或check为前缀标识 |
getXX() |
返回某个值的方法,使用get为前缀标识 |
processXX() |
对数据进行处理的方法,尽量使用process为前缀标识 |
displayXX() |
弹出提示框和提示信息,使用display为前缀标识 |
saveXX() |
与保存数据相关的,使用sav为e前缀标识 |
resetXX() |
对数据重组的,使用reset前缀标识 |
clearXX() |
清除数据相关的 |
removeXXX() |
清除数据相关的 |
drawXXX() |
绘制数据或效果相关的,使用draw前缀标识 |
5 变量(variables)采用小驼峰命名法。类中控件名称必须与xml布局id保持一致。
用统一的量词通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。
量词列表:量词后缀说明
First 一组变量中的第一个
Last 一组变量中的最后一个
Next 一组变量中的下一个变量
Prev 一组变量中的上一个
Cur 一组变量中的当前变量
6 常量(Constants)全部大写,采用下划线命名法.例如:MIN_WIDTH
7 资源文件(图片drawable文件夹下):全部小写,采用下划线命名法,加前缀区分
命名模式:activity名称_逻辑名称/common_逻辑名称
如果有多种形态如按钮等除外如btn_xx.xml(selector)
名称 |
功能 |
btn_xx |
按钮图片使用btn_整体效果(selector) |
btn_xx_normal |
按钮图片使用btn_正常情况效果 |
btn_xx_press |
按钮图片使用btn_点击时候效果 |
bg_head |
背景图片使用bg_功能_说明 |
def_search_cell |
默认图片使用def_功能_说明 |
icon_more_help |
图标图片使用icon_功能_说明 |
seg_list_line |
具有分隔特征的图片使用seg_功能_说明 |
sel_ok |
选择图标使用sel_功能_说明 |
命名后缀:
后缀 |
说明 |
unit |
在使用xml的tilemode来配图片时,element图片使用此后缀 |
nor |
图片的状态,代表普通状态 |
hl |
图片的状态,代表高亮状态 |
press |
图片的状态,代表按下状态 |
select |
图片的状态,代表其所占的view被选中 |
unselect |
图片的状态,代表其所占的view没有被选中 |
8 资源布局文件(XML文件(layout布局文件)):
全部小写,采用下划线命名法
1).contentview命名, Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀:
功能模块.xml
例如:main.xml、more.xml、settings.xml
或则:activity_功能模块.xml
例如:activity_main.xml、activity_more.xml
2).Dialog命名:dialog_描述.xml
例如:dlg_hint.xml
2).PopupWindow命名:ppw_描述.xml
例如:ppw _info.xml
3). 列表项命名listitem_描述.xml
例如:listitem_city.xml
4).包含项:include_模块.xml
例如:include_head.xml、include_bottom.xml
5).adapter的子布局:功能模块_item.xml
例如:main_item.xml、
9 动画文件(anim文件夹下):全部小写,采用下划线命名法,加前缀区分。
//前面为动画的类型,后面为方向
动画命名例子 |
规范写法 |
备注 |
fade_in |
淡入 |
|
fade_out |
淡出 |
|
push_down_in |
从下方推入 |
|
push_down_out |
从下方推出 |
|
push_left |
推像左方 |
|
slide_in_from_top |
从头部滑动进入 |
|
zoom_enter |
变形进入 |
|
slide_in |
滑动进入 |
|
shrink_to_middle |
中间缩小 |
|
10 资源ID(resourcesid):大小写规范与方法名一致,采用小驼峰命名法。命名规范为“资源控件的缩写 名”+“变量名”。注意:页面控件名称应该和控件id名保持一致
strings.xml,colors.xml等中的id命名:
命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称
strings.xml中,使用activity名称注释,将文件内容区分开来
11 layout中的id命名
命名模式为:view缩写_模块名称_view的逻辑名称
view的缩写详情如下:
控件 |
缩写 |
LayoutView |
lv |
RelativeView |
rv |
TextView |
tv |
Button |
btn |
ImageButton |
imgBtn |
ImageView |
mgView 或则 iv |
CheckBox |
chk |
RadioButton |
rdoBtn |
analogClock |
anaClk |
DigtalClock |
dgtClk |
DatePicker |
dtPk |
EditText |
edtTxt |
TimePicker |
tmPk |
toggleButton |
tglBtn |
ProgressBar |
proBar |
SeekBar |
skBar |
AutoCompleteTextView |
autoTxt |
ZoomControls |
zmCtl |
VideoView |
vdoVi |
WdbView |
webVi |
RantingBar |
ratBar |
Tab |
tab |
Spinner |
spn |
Chronometer |
cmt |
ScollView |
sclVi |
TextSwitch |
txtSwt |
ImageSwitch |
imgSwt |
listView |
lVi 或则lv |
ExpandableList |
epdLt |
MapView |
mapVi |
12.activity中的view变量命名
命名模式为:逻辑名称+view缩写
建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view
13.styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中;
14.使用layer-list和selector
Android编码规范建议(别人弄的觉得蛮有道理)
1.java代码中不出现中文,最多注释中可以出现中文
2.局部变量命名、静态成员变量命名
只能包含字母,单词首字母除第一个外,都为大写,其他字母都为小写
3.常量命名
只能包含字母和_,字母全部大写,单词之间用_隔开
4.图片尽量分拆成多个可重用的图片
5.服务端可以实现的,就不要放在客户端
6.引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大
7.处理应用全局异常和错误,将错误以邮件的形式发送给服务端
8.图片的.9处理
9.使用静态变量方式实现界面间共享要慎重
10.Log(系统名称模块名称接口名称,详细描述)
11.单元测试(逻辑测试、界面测试)
12.不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致message.what冲突
13.activity中在一个View.OnClickListener中处理所有的逻辑
14.strings.xml中使用%1$s实现字符串的通配
15.如果多个Activity中包含共同的UI处理,那么可以提炼一个CommonActivity,把通用部分叫由它来处理,其他activity只要继承它即可
16.使用button+activitgroup实现tab效果时,使用Button.setSelected(true),确保按钮处于选择状态,并使activitygroup的当前activity与该button对应
17.如果所开发的为通用组件,为避免冲突,将drawable/layout/menu/values目录下的文件名增加前缀
18.数据一定要效验,例如
字符型转数字型,如果转换失败一定要有缺省值;
服务端响应数据是否有效判断
黄琴:一枚前端妹子,爱笑、爱运动、爱音乐、爱旅行前言瞪瞪,胖琴的第三篇文章来袭!近期在自己的规划中列着一份 vue3 清单。关于 vue3,虽然之前很早就看过了,但是也只是简单的了解一番写...
在mysql对字符编码的查看我们使用SHOW VARIABLES LIKE character即可,修改我们需要修改my.ini中的配置方法了,下面我一起来看看。最近,在项目组使用的mysql数据库中,插入数据出现乱码,关于这个问题做了下总结,我们从最基本的地方说起,到错误产生的深层次原因和解决办法。基本概念:• 字符(Character)是指人类语言中最小的表义符号。_mysql查看字符集和编码
建立一个二叉树 并中序遍历二叉树code:/*建立一个二叉树 并 中序遍历二叉树*/#include "stdio.h"//包含 getchar() scanf() printf() #include "malloc.h"//malloc()动态申请空间 函数//二叉树 结点 struct node{ char data; struct node *lchild,*rchild;}bnode;typedef struct node * blink;//建立 二叉数._创建二叉树并中序遍历
1.链表链表是线性表的一种,由一系列节点(结点)组成,每个节点包含一个数据域和一个指向下一个节点的指针域。链表结构可以克服数组需要预先知道数据大小的缺点,而且插入和删除元素很方便,但是失去数组随机读取的优点。链表有很多种不同类型:单向链表,双向链表和循环链表。在链表中第一个节点叫头节点(如果有头节点)头节点不存放有效信息,是为了方便链表的删除和插入操作,第一个有效节点叫首节点,最后一个节点叫尾节点。2.单向链表(单链表)单向链表,它包含两个域,一个信息域和一个指针域。这个链接指向表中的下一个节点,而
#models.py# -*- coding:utf-8 -*-from django.db import modelsfrom django.contrib import admin# Create your models here.class card(models.Model): id=models.CharField('编号',max_length=8,primary
以不可变对象为元素的列表a=[1,2]b=a*3#则b为[1,2,1,2,1,2]以可变对象为元素的列表#如列表以列表为元素a=[[1]]b=a*3#则b为[[1],[1],[1]]#不过有趣的是id(b[0])==id(b[1])==id(b[2])#也就是说b的三个列表元素项都是引用的一个原先的列表元素项,#实际上并没有新的列表元素项产生,这与直接定义b=[[1],[1],[1]]#是截然不同..._python列表乘以数字
本文讨论Yii2在服务器部署时遇到的权限问题以基础模板部署为例**目录不可写问题**The directory is not writable by the Web process ...原因是执行目录没有写权限,需要确认以下两个问题1 网站目录是否属于 nginx的运行用户,假定nginx的运行目录是www,执行以下命令...
《计算机应用基础》作业2.doc (16页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!14.9 积分作业名称:13春《计算机应用基础》作业2客观题预算成绩:100分注意:客观题是指单选题、多选题、是非题等能自动判分的题! 详细信息:本题分数:5号:1题型:单选题(请在以下几个选项屮选择唯一止确答案) 内容:在Excel的电子工作表屮建立的数据表,通..._计算机基础第二章形考作业客观题
参考https://source.android.com1.配置开发环境 Initializing a Build Environment编译Android4.4.4要求使用64bit系统.所以我在虚拟机上装了一个Ubuntu 14.04 64bit.首先安装jdk,andorid官网提供的安装方法是是安装OpenJDK7,android4.4.4要求使用jdk1.6.所以
[原]Maven管理Oracle10g和Oracle11g驱动包2014-7-31阅读315 评论0Maven管理Oracle10g和Oracle11g驱动包一、Oracle10g和Oracle11g驱动包的下载:如果本地没有安装Oracle数据库的话,可以从Oracle官网上边进行下载:下载地址:http://www.oracle.com/technetwork/inde_maven oracle10g
本文介绍 P2P 加速功能的基本概念、配置方法、使用方法以及故障排查。 什么是 P2P 加速在镜像拉取流程中,所有镜像的数据流量都从服务器中统一拉取。当几十台 ECS 同时拉取镜像时,我们提供的服务器可以提供顺畅的拉取能力。但当您的集群达到几百台甚至几千台的规模时,服务器的带宽限制会制约您分发镜像的时间。镜像服务企业版提供了 P2P 加速的能力,可以在大规模容器集群批量下载镜像的场景中,提升容器镜..._进入容器可以查看端口号
计算机网络第七版答案第一章 概述1-01 计算机网络向用户可以提供那些服务?答: 连通性和共享1-02 简述分组交换的要点。答:(1)报文分组,加首部(2)经路由器储存转发(3)在目的地合并1-03 试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。 答: (1)电路交换:端对端通信质量因约定了通信资源获得可靠保障,对连续传送大量数据效率高。(2)报文交换:无须预约传输带..._计算机网络可以向用户提供哪些服务?