{

命名规范
类命名

1)所有的类名,接口名(Protocol)均以大写字母开头,多单词组合时,后面的单词首字母大写。
   类,接口名必须是有意义的,切忌使用中文拼音命名。
另外所有类都要加标致前缀:“OP”

2)继承自UIView的类以View结尾。
  例如:OperatorUsersInfomationView,LabelView等。

3)继承自ViewController的类以viewController结尾。
例如:HomePageViewController,LoginViewController等。其他类推。

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

5)类别命名,与类命名相同,此外需要添加要扩展的类名和“+”
  例如:NSString+URLEncoding

方法命名

1)首字母小写,之后每个单词首字母大写。
2)​留一个空格在-或+和返回类型之间,但参数列表里的参数之间不要留间隔,每个冒号之前都必须有对该参数的说明词
3)设置类变量的内容的方法应使用set作为前缀,读取变量的内容的方法应使用get作为前缀,创建视图用create作为前缀。
4)方法中的参数:第一个参数名称要从函数名称中携带出来,参数名不要加下划线等前缀。

例:- (void)sendUserInfo:(NSDictionary *)userInfo Other:(NSString *)other;

变量

1)首字母小写,之后每个单次首字母大写。简洁、准确的表示出变量作用。
2)成员变量不需要添加“_m”前缀
3)成员变量添加“_”前缀

常量

1)常量(预定义,局部常量等)使用小写k开头的驼峰法
 例:kInvalidHandle,kWriRerm
2)枚举类型命名首字母大写,之后每个单词首字母都大写,最后加“s”
3)枚举变量使用枚举类型去掉“s”作为前缀,每个单词首字母大写,中间不允许加下划线。
  例:typedef enum UIControlEvents {
      UIControlEventTouchDown,
      UIControlEventTouchUpInside
      }UIControlEvents;

图片命名

1)使用英文,首字母大写,之后每个单词首字母都大写
2)添加模块名作为前缀,避免冲突
3)图片应该与类文件一样,按模块分组放置

分组命名

1)使用英文,首字母大写,之后每个单词首字母都大写
2)每个分组使用模块的名字
3)使用的开源库统一放在“Lib”下的“3rd”分组夹中
4)使用的公共组件统一放在“common”分组下
5)视图控制器放在“Controllers”分组下,并按模块再分组

其他规范

1)操作符前后都要加空格
2)避免相同的代码段在多个地方出现
3)语句嵌套层次不得超过3层
4)每个实现文件建议在500行以内,不能超过1000行,超过之后应考虑通过抽象类对代码进行重构
5)及时删除或注释掉无用的代码
6)UITableViewCell里面的network client都要委托出来
7)点击按钮之后需要切换按钮图片,当这两张图片没有关联时(例如一张图片相比另一张图片有选中效果),不应该设置为UIControlSelected
8)控件布局使用相对坐标
9)确定不使用的代码应该删除

注释规范

1)文件都包含文件头,要说明文件名、作者、创建时间、变更记录
2)多人协作完成项目时,public接口的每个方法都应该添加关于函数,参数,返回值以及副作用的注释
3)当if语句的判断条件复杂时,需要用注释说明判断内容
4)接口类(继承于BaseClient)的头文件每个方法前都应该注明方法的作用
5)注释可以采用’ /* */ ’和’// ’两种注释符号,涉及到多行注释时,尽量使用’ /* */ ’。
6)对于一行代码注释,可放在前一行及本行上,不允许放在下一行,更不允许在一行语句中间加入注释。

文档结构规范

参阅医评开发文件夹中的《源码结构说明》文稿
发布流程

1)修改项目中的服务器地址,改为正式服务器;
2)修改Info.plist中的版本号,外部版本号看情况升,内部版本号,每次提交都要做一次增加;
3)连接已授权的手机,在XCode中选中,打包“Product”-->“Archive”;
4)打包进度条完成后,出现如下界面,点击“Submit App Store”提交到Appstore;
5)提交成功后,到wiki中再提交一份对应版本的描述备案,要说明新版新增功能和遗留问题;
6)在git将代码提交的主线,并打标签注释。

文本输入框规范
控件属性

1、手机号码、体重和身高等数值型的输入限定为数字键盘

UITextField.keyboardType = UIKeyboardTypePhonePad;
正则表达式

1、验证手机号格式:^(0|86|17951)?(1[345678])\\d{9}$

2、验证身份证格式:

18位:^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|[xX])$
    15位,在身份证第7、8位加入“19”,最后位加“x”

3、限定中文输入:[\u4e00-\u9fa5]

4、验证邮箱规则:[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}

}

Development 编程规范的更多相关文章

  1. go 编程规范

    如果没有编程规范会有什么问题? 哪些地方可以需要指定规范? 非编码类规范:编码规范 非编码规范 开源规范 http://www.ruanyifeng.com/blog/2011/05/how_to_c ...

  2. Batsing的网页编程规范(HTML/CSS/JS/PHP)

    特别注意!!!我这里的前端编程规范不苟同于Bootstrap的前端规范. 因为我和它的目的不同,Bootstrap规范是极简主义,甚至有些没有考虑到兼容性的问题. 我的规范是自己从编程实践中总结出来的 ...

  3. JAVA编程规范(下)

    JAVA编程规范(下) 2016-03-27 6. 代码的格式化 6.1 对代码进行格式化时,要达到的目的 1.     通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解: 2.     ...

  4. JAVA 编程规范(上)

    2016-03-20 J120-CHARLIEPAN JAVA 编程规范(上) 1.      应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JA ...

  5. 使Eclipse符合Java编程规范

    编程规范是很重要的东西,能让团队的代码易于阅读和维护,也便于日后的功能扩展. 工欲善其事必先利其器!作为一个Java程序员,与Eclipse打交道可能是一辈子的事情.将Eclipse设置为符合公司编程 ...

  6. flex+AS3编程规范

    flex+AS3编程规范 Flex+AS3编码规范 http://www.cnblogs.com/jiahuafu/   1.  缩写: 尽量避免使用缩写,使用缩写时尽量和Flex保持一致.但要记住一 ...

  7. Python编程规范(PEP8)

    Python编程规范(PEP8) 代码布局 缩进 对于每一次缩进使用4个空格.使用括号.中括号.大括号进行垂直对齐,或者缩进对齐. 制表符还是空格? 永远不要将制表符与空格混合使用.Python最常用 ...

  8. Python 编程规范-----转载

    Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. ...

  9. JavaScript编程规范

    最近看NodeJS中,有一部分写JS约定俗成的编程规范(附录B,详情参考附件),感觉在实际工作中能用到, 大致意思分享给大家,详情参考附件: 1.缩进:建议两空格 作为Node.js代码的缩进标记: ...

随机推荐

  1. Springmvc集成CXF请看教程二

    转自: http://www.cnblogs.com/xiaochangwei/p/5399507.html 继上一篇webService入门之后,http://www.cnblogs.com/xia ...

  2. mongoose 数据库连接

    1安装mongoose npm install mongoose 安装成功 2.打开数据库 mongod --path E:\mongo 成功 创建一个db.js var mongoose = req ...

  3. Fatal error compiling: invalid target release: 11 -> [Help 1]

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compi ...

  4. 简单记录下Jmeter通过CSV保存测试数据,测试用例,及将测试结果导出到Excel里

    1.CSV保存测试数据,并上传到CSV Data Set Config,设置相关属性 2.CSV保存测试用例,并上传到CSV Data Set Config,设置相关属性 3.设置一个http请求,设 ...

  5. 【luoguP4768】【NOI2018】归程

    description 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定. 魔力之都可以抽象成一个 nn 个节点.mm 条边的无向连通图(节点的编号从 11 至 nn).我们依次用 l,a ...

  6. WPF ListBox 横向排列

    WPF ListBox 横向排列   如果只是单纯的让ListBox可以横向配列,这样很简单,只需要更改ListBox的ItemsPanel模板就可以,例如: <ListBox><L ...

  7. Yii2中应用子模块下的内容

    public function actionIndex(){ $article=\YII::$app->getModule('article'); $article->runAction( ...

  8. Codeforces Round #568 (Div. 2) G1. Playlist for Polycarp (easy version) (状压dp)

    题目:http://codeforces.com/contest/1185/problem/G1 题意:给你n给选项,每个选项有个类型和价值,让你选择一个序列,价值和为m,要求连续的不能有两个相同的类 ...

  9. 【React-Native】---Android环境配置

    一.前言 本文主要内容是在Window系统下配置Android APP的开发环境,要配置RN的Android开发环境需要3个依赖 1.JDK(版本必须是 1.8) 2.Node(版本必须高于8.3) ...

  10. Java多线程sleep和wait的区别,总结得非常好。

    我们都知道sleep是让线程休眠,到时间后会继续执行,wait是等待,需要唤醒再继续执行,那么这两种方法在多线程中的表现形态,它们各有什么区别呢? 可以总结为以下几点. 使用上 从使用角度看,slee ...