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、不做哑巴程序员。
iOS 代码开发规范的更多相关文章
- C#代码开发规范
Wrod下载 C#代码开发规范 文件状态: [√] 草稿 [ ] 正式 [ ] 修改 文件标识: 当前版本: 1.1 作 者: Empty 联系电话: 最后更新: ...
- php与数据库代码开发规范
php与数据库代码开发规范 1/25/2016 6:00:31 PM php对各类变量命名规范 目录名 文件命名 局部变量命名 使用英文动词名词,用下划线作为单词的分割,所有字母均使用小写 目录 up ...
- JAVA 代码开发规范
一.开发工具规范: 1. 开发工具经项目负责人调试后统一确定. 2. 开发工具一经确定不允许集成任何非统一插件,若有需要,经项目负责人同意后统一为 项目组成员添加. 3. 开发工具的编码格式不允许修改 ...
- IDEAL葵花宝典:java代码开发规范插件 p3c
前言: P3C插件 是阿里巴巴p3c项目组进行研发.这个项目组是阿里巴巴开发爱好者自发组织形成的虚拟项目组,根据<阿里巴巴Java开发规范>转化而成的自动化插件,并且实现了部分自动编程. ...
- python代码开发规范
https://github.com/libo-sober/LearnPython/tree/master/day18 为什么要有模块? 拿来主义,提高开发效率. 便于管理维护. 什么是脚本呢? 脚本 ...
- React代码开发规范
前言 一般在团队开发中每个人的代码习惯都不太一样,这样就会导致代码风格不一致,以致于维护和修改bug的时候看别人的代码成为一种痛苦...这种情况尤其在前端开发中尤为明显.因为关于前端的开发规范貌似也没 ...
- Eclipse的tab键为4个空格完整方法 附:阿里代码开发规范书
开发规范书:http://pan.baidu.com/s/1dESdyox 1.点击 window->preference-,依次选择 General->Editors->Text ...
- IDEAL葵花宝典:java代码开发规范插件 checkstyle、visualVM、PMD 插件
前言: visualVM: 运行java程序的时候启动visualvm,方便查看jvm的情况 比如堆内存大小的分配:某个对象占用了多大的内存,jvm调优必备工具. checkstyle: CheckS ...
- IDEAL葵花宝典:java代码开发规范插件 GenerateAllSetter、ECtranslation、translation、插件
前言: GenerateAllSetter: 我们在程序开发过程中,往往要编写这样的类:类的部分或者全部属性不希望让外部世界直接访问,而不用public字段修饰.这样,方法调用成了访问这些属性的唯一 ...
随机推荐
- java 的几种引用
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用和虚引用. 1.强引用 本章前文介绍的引用实际上都是强引用, ...
- mysql中的union用法以及子查询综合应用
union查询就是把2条或者多条sql语句的查询结果,合并成一个结果集. 如:sql1: N行,sql2: M行,sql1 union sql2 ---> N+M行 1.能否从2张表查询再uni ...
- 第三篇:一个Spark推荐系统引擎的实现
前言 经过2节对MovieLens数据集的学习,想必读者对MovieLens数据集认识的不错了:同时也顺带回顾了些Spark编程技巧,Python数据分析技巧. 本节将是让人兴奋的一节,它将实现一个基 ...
- ssm整合快速入门程序(二)
下面我们配置serivce层到项目中 1.service包中创建ItemsService.java接口,和service.imp包中创建一个service实现类ItemsServiceImpl.jav ...
- [SDOI2012]Longge的问题
题目大意: 网址:https://www.luogu.org/problemnew/show/P2303 大意:给定一个N,求\(\Sigma_{i=1}^N gcd(i, N);\). 题目解法: ...
- 【Luogu1345】周游加拿大(动态规划)
[Luogu1345]周游加拿大(动态规划) 题面 题目描述 你赢得了一场航空公司举办的比赛,奖品是一张加拿大环游机票.旅行在这家航空公司开放的最西边的城市开始,然后一直自西向东旅行,直到你到达最东边 ...
- 清橙A1202&Bzoj2201:彩色圆环
因为Bzoj是权限题,所以可以去清橙做一下 Sol 突然考了一道这样的题,考场上强行\(yy\)出来了 win下评测Long double爆零TAT 首先肯定是破环为链变成序列问题辣 那么就要求第一个 ...
- [BZOJ2654] tree (kruskal & 二分答案)
Description 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有need条白色边的生成树. 题目保证有解. Input 第一行V,E,need分别表示点数,边数和需要的白色 ...
- 重磅消息-Service Fabric 正式开源
微软的Azure Service Fabric的官方博客在2017.3.24日发布了一篇博客 Service Fabric .NET SDK goes open source ,介绍了社区呼声最高的S ...
- Net 面试随想
佳节已去,至今已半月有余,近来园中唱衰net的声音幽幽而起,net不成熟的大环境一直被作为诟病,net core的跨平台去年抄的火热,是否为net 崛起的最后一根稻草,结合我面试的情况,作为小白,嘟囔 ...