下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >移动开发 >移动开发之开发规范篇

移动开发之开发规范篇

一路风景都看透发布于 2015-06-23 12:11查看:559回复:3

前言

程序猿这条路干久了,就会越发的觉得好习惯的重要性,在这之前,和大部分新手一样,觉得省时省事最重要,但现在慢慢注重这些了,一个好的编码习惯真的会是我们一辈子的财富。在学习的过程中,学会了慢慢积累这些东西,今天就汇总一下,并且以后会持续更新中。

编码之前,思路先行。

我之前总会有一个坏习惯就是,很多问题没想清楚,就动手敲代码了,结果大部分情况都是无功而返,好点的情况是亡羊补牢,遇到问题就再解决。其实有时候大部分的问题我们细心想一想都可以避免,好的思路可以引导出好的设计,这也就是为什么有设计模式的原因。
这里我贴出谷歌官方风格指南,这里包含了许多语言:C++ Style Guide, Objective-C Style Guide, Java Style
Guide,Python Style Guide, Shell Style Guide, HTML/CSS Style
Guide, JavaScript Style Guide, AngularJS Style Guide, Common Lisp Style Guide, and Vimscript Style Guide等,大家都可以做为参考。

Java/Android篇

这里我可以引用官方指南:Java代码约定,我们尽可能的遵循官方的代码规范,这里是Android官方给出的一些建议:Android开发者代码风格指南需翻墙,而下面是我整理的一些:

  • 驼峰式命名(大小写交替),常量大写,多个字母间下划线分割;多用常见缩写。

  • 使用Javadoc识别的注释。

  • 局部变量随用随声明(我们要尽量缩小变量的作用域)。

  • 每行的字符不要过长,以100个为限,当然可以在这左右浮动。

  • 缩进用4个空格符来代替Tab。

  • 私有变量的名称我们用m开头。

  • 不要省略大括号{},尤其是在条件判断语句后面,还有就是前大括号不要另起一行,我们遵循Java的规范,如果是C++的话,我们要遵循C++的编码规范,前大括号另起一行。

  • 对于异常,我们的try catch尽可能的少的包含代码。

  • 代码里尽可能不出现中文,最好中文统一写在strings.xml中。

  • 布局文件中的id命名:view缩写_模块名称_view的逻辑名称。

  • strings.xml中的id命名:activity名称功能模块名称逻辑名称/activity名称逻辑名称/common逻辑名称。

  • 尽可能的将layout中不断重现的style提出通用的style样式,然后放到styles.xml中。

  • 一些服务端处理的逻辑,我们尽可能的放到服务端,让客户端尽量只做数据展示的工作,把其主要精力放在UI和用户体验上面去,而不要去费大量精力去处理繁琐的业务逻辑。

  • 尽可能的使用资源来代替图片,再或者用.9图片处理。

  • 避免使用过多的第三方库,造成客户端包变大。

  • 擅用字符串通配符。

  • 注意listview的性能优化;注意内存泄露问题,尤其在处理图片、线程、游标等资源时。

  • 尽可能少的使用静态变量来作为类之间传值。

  • 资源文件的优化,擅用merge及include,以及viewstub等

  • 资源文件避免嵌套更多的层次,如需RelativeLayout或许是更好地选择。

  • 对于复杂页面的排版可以借用webview组件与html5来结合。

附:常见命名缩写规则表

名称缩写
iconic(主要用在app的图标)
colorcl(主要用于颜色值)
dividerdi(主要用于分隔线,不仅包括Listview中的divider,还包括普通布局中的线)
selectorsl(主要用于某一view多种状态,不仅包括Listview中的selector,还包括按钮的selector)
averageavg
backgroundbg(主要用于布局和子布局的背景)
bufferbuf
controlctrl
deletedel
documentdoc
errorerr
escapeesc
incrementinc
infomationinfo
initialinit
imageimg
InternationalizationI18N
lengthlen
librarylib
messagemsg
passwordpwd
positionpos
serversrv
stringstr
temptmp
windowwnd/win

程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的

类命名

类型命名
activityActivity为后缀标识
adapterAdapter为后缀标识
serviceService为后缀标识
BroadcastReceivereceiver为后缀标识
ContentProvider以provider为后缀标识
基础类以Base为前缀标识
工具类以Utils或Helper为后缀标识
封装类以Wrapper为后缀标识
解析或处理以Paser或Handler为后缀标识

接口多以able或ible结尾。

方法常见通用命名

方法说明
initXX()初始化相关方法,使用init为前缀标识,如初始化布局initView()
isXX()checkXX()方法返回值为boolean型的请使用is或check为前缀标识
getXX()返回某个值的方法,使用get为前缀标识
processXX()对数据进行处理的方法,尽量使用process为前缀标识
displayXX()弹出提示框和提示信息,使用display为前缀标识
saveXX()与保存数据相关的,使用sav为e前缀标识
resetXX()对数据重组的,使用reset前缀标识
clearXX()清除数据相关的
removeXXX()清除数据相关的
drawXXX()绘制数据或效果相关的,使用draw前缀标识

变量采用驼峰法则,常量全部大写,多个单词下划线分割。

资源文件命名规则

名称功能描述
btn_xx按钮图片使用btn_整体效果
btn_xx_normal按钮图片使用btn_正常情况效果
btn_xx_press按钮图片使用btn_点击时候效果
bg_XX背景图片使用bg功能说明
def_XX默认图片使用def功能说明
ic_XX图标图片使用icon功能说明
seg_XX具有分隔特征的图片使用seg功能说明
sel_XX选择图标使用sel功能说明


收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

共有3条评论

  • 慧星的那一夜
  • MK
  • 药师
  • IT宅男
  • mr jack
  • YUI
  • Mr ken
  • cappuccino
  • 课课家技术团队1
  • 选择版块:

  • 标题:

  • 内容

  • 验证码:

  • 标题:

  • 内容

  • 选择版块:

移动帖子x

移动到: