{

命名规范
类命名

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. mysql数据库用户权限设置

    设置用户权限:格式:grant 权限列表 on 数据库名.表名 to '用户名'@'来源地址' identified by '密码'; * 权限列表:用于列出授权的各种数据库操作,通过逗号进行分割,如 ...

  2. 【网页布局基础】css布局学习总结

    三种定位机制 1.标准文档流:从上到下,从左到右输出文档内容 2.浮动 3.绝对定位 需要注意的是块级元素如div p ul 等 行级元素如span strong img input等 块级元素与行级 ...

  3. C中的lvalue和rvalue

    该贴子第一条回答虽然浅尝辄止,但还是很有参考价值. https://www.quora.com/What-is-lvalue-and-rvalue-in-C IBM一个简单的说法是: "-通 ...

  4. redis-config.properties属性资源文件

    redis.host=192.168.200.128redis.port=6379redis.pass=redis.database=0redis.maxIdle=300redis.maxWait=3 ...

  5. 阿里云HBase全新发布X-Pack NoSQL数据库再上新台阶

    一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...

  6. UnixBench算分介绍

    关于如何用UnixBench,介绍文章很多,这里就不展开了.这里重点描述下它是如何算分的. 运行参数 碰到很多客户,装好后,直接./Run,就把结果跑出来了,然后还只取最后一个分值,比谁高谁低.下面列 ...

  7. 质数密度+思维——cf1174D

    /* 构造 n个点的无向图,无重边自环 边数e也是质数 点的度数也是质数 */ #include<bits/stdc++.h> #include<vector> using n ...

  8. flutter 卡在Running Gradle task 'assembleDebug'...

    Android项目运行时出错 卡在Initializing gradle… 运行时会卡在Initializing gradle..., 此时因为Android项目会用到Gradle, 如果没有FQ,下 ...

  9. [Go语言]cgo用法演示

        经历了数十年发展的C语言,各种各样的现成的库已经非常丰富.通过cgo,可以在Go语言中使用C语言代码,充分利用好现有的“轮子”. 本文所有代码,在下述环境中调试通过: Windows 8.1 ...

  10. 关于iframe定位碰到的问题。

    这几天在做自动化测试的时候发现一个问题,用JQUERY定位时,总是报错,MES:JQUERY IS NOT DEFINED. 检查自己定位没有问题,后来想是不是语法出了问题. 切换成XPATH来定位, ...