iOS 代码开发规范
最近公司因为业务增多,又招了一个iOS小伙伴,内心无比开心呀。但是多了一个人,日常代码开发就要统一规范起来,方便日后维护和查找。下边列一下我日常用到一些代码规范。
(一)、SVN规范
1、代码一定要先update,(解决冲突),然后在commit。
2、代码提交。
【人员】【动作】【动作内容】
如果代码中增加、修改文件,要写清楚增加了那个模块,那个文件夹,做什么功能的。
如果对代码进行删除,一定要和PM确定这个文件无用了,然后再删除文件,同时记得删除服务器上的文件。
如果对文件进行移动,要写清楚文件从哪里移动到了哪里,同时记得移动服务器上的文件。
eg:
【石智力】【添加】【首页 --生活 添加轮播图。。。SDCycleScrollView 】
【石智力】【修改】【首页 --生活 添加轮播图。。。】
【石智力】【删除】【首页 --生活 添加轮播图。。。SDCycleScrollView 】
【石智力】【移动】【首页 --生活 添加轮播图。。。SDCycleScrollView 从A移动到B】
(二)、代码开发规范
一、工程结构方面
1、新建工程目录下一定只有4个文件夹(前三个为实体文件夹,最后一个为group的虚拟文件夹),ThreeLib(放置所有导入的第三方包)、NetWork(放置app内所有网络请求)、CodeClass(放置整个app的功能模块代码)、ConfigFile(app的配置文件:assets,info,pch,header)。
2、ThreeLib第三方没啥好说的,假如使用pod管理第三方也要建有这个文件。
3、NetWork所有的网络请求都放这里,所有请求的前缀,写在request的头部,请求的地址、注释、方法依次写在下边;
connect是对AF等其他网络组件的封装,请求超时时间宏定义在这里,假如要做加密、解密统一在这里做就好了;
同时下边放置网络请求失败和请求结果暂无数据等相关的页面。
4、CodeClass中的代码按照功能模块划分,大的模块下建设具体页面的文件夹,然后每个模块在进行MCV模式划分,每个文件开头一定是这个模块的单词,避免文件和其他同事建设的文件重名。也可以在模块后边再加上创建者的名字缩写,O(∩_∩)O~,然后是具体小功能。model一定以model结束,view以view或者cell结束,VC以VC结束。
5、ConfigFile这里主要放置配置文件。header文件一律放到ProjectHeader文件中,文字、时间、字体,颜色,尺寸,等定义放到common文件,common和header文件放到pch文件。
二、编码规范
1、编码通用的哪些规范就不一一枚举了,说也没意思,但是一定要争取做到。
2、所有view,vc,都要继承base中的父类,不要直接从view或者VC中继承,便于后期维护和增加公用处理。
3、所有新建的文件第一件是是导入pg结构块(我自己定义的),所有方法放到对应的模块不允许乱放,便于日后查找方法。
#pragma mark - -------------------------life cycle--------------------------
#pragma mark - -------------------------content view--------------------------
#pragma mark - ----------------------private methods--------------------
#pragma mark - ----------------------public methods--------------------
#pragma mark - ----------------------event response---------------------
#pragma mark - -------------------------delegate -------------------------
#pragma mark - -------------------------network--------------------------
#pragma mark - ----------------------getter and setter--------------------
4、进入控制器的第一步打印进入某某页面的log,然后是才是setUIView方法。
5、用户响应事件一定有log,凡是有判断的地方必有注释和log,switch上方必有大段解释。魔法数字,必有注。所有方法一般不要超过30行,超过必有大段、多处注释。
6、字号、颜色、尺寸尽量用common中定义的,没有则自己添加定义。
7、view传递跳转等事件尽量使用响应者链就行传递,避免block和delegate。
8、传值尽量用block,事件尽量用delegate。
9、添加文件杜绝拖拽添加,一定要addfile。
10、所有涉及时间的东西一律用宏定义,除非特殊情况不单独设置时间。
11、一个方法用到第三回的时候就是你对他进行封装的时候。
12、不做哑巴程序员。
最新文章
- Atitit 知识管理的重要方法 数据来源,聚合,分类,备份,发布 搜索
- 《30天自制操作系统》笔记(02)——导入C语言
- WinMTR
- Annotation
- Rdesktop
- 在RHEL5.4 设置KVM(虚拟机)通过桥接器上网
- poj2686-Traveling by Stagecoach(状压dp)
- DocX组件读取与写入Word
- ldd显示可执行模块的dependenc
- 工作中用到的Jquery特效
- echo向文件中写入
- 嵌入式ntp服务器的移植
- Shell 传递参数
- CocoaPods在使用中的几个问题
- CSS单行、多行文本溢出显示省略号(……)
- GBDT(MART)概念简介
- Java异常处理-----程序中的异常处理.启蒙
- LOJ_6045_「雅礼集训 2017 Day8」价 _最小割
- 2018-No.7-SicnuCtf
- <;转载>; MySQL 架构 http://www.cnblogs.com/winner-0715/p/6863802.html