{

命名规范
类命名

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. 总结下awk基本用法

    命令格式: awk '{commands} [{other commands}]' awk 'condition{commands} [{other commands}]' 如:awk '$4==&q ...

  2. InnoDB global status

    常见参数 Innodb_buffer_pool_pages_free 发现 Innodb_buffer_pool_pages_free 为0 ,则说明buffer_pool 已经被用光,需要增大 in ...

  3. CSS 是怎样确定图像大小的?

    本文转自奇舞周刊学习使用侵权删 先来看个例子,热热身. 上面这张图像的原始尺寸是:宽 54px 高 49px. 那么,在以下代码中,每张图像显示的最终尺寸是多少? https://p1.ssl.qhi ...

  4. mybatis快速搭建

    结构图 1.创建maven项目 2.引入依赖 <dependency> <groupId>mysql</groupId> <artifactId>mys ...

  5. 关于C#中Convert.ToInt32()是干什么用的

    并非每个对象都可以直接转换为int.例如,以下内容将无法编译: string Maomao = "100"; int i = (int)Maomao; 因为string无法隐式转换 ...

  6. leetcood学习笔记-14*-最长公共前缀

    笔记: python if not   判断是否为None的情况 if not x if x is None if not x is None if x is not None`是最好的写法,清晰,不 ...

  7. Oracle系列教程之一软件安装与卸载

    1.安装软件 软件下载地址:https://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html ...

  8. bzoj 3207 可持久化线段树+hash

    这道题要看出来这个做法还是比较容易说一下细节 1.因为要用hash的区间值域来建树,而hash为了不冲突要开的很大,所以值域就会比较的大,不过这道题好的一点是没有修改,所以直接离散一下就会小很多 2. ...

  9. Read Uncommitted

    Read Uncommitted是隔离级别最低的一种事务级别.在这种隔离级别下,一个事务会读到另一个事务更新后但未提交的数据,如果另一个事务回滚,那么当前事务读到的数据就是脏数据,这就是脏读(Dirt ...

  10. BZOJ 3159: 决战 解题报告

    BZOJ 3159: 决战 1 sec 512MB 题意: 给你一颗\(n\)个点,初始点权为\(0\)的有跟树,要求支持 Increase x y w 将路径\(x\)到\(y\)所有点点权加上\( ...