在公司里为了方便公司部门各开发小组之间能够迅速的查看不同小组开发的项目源码,同时为了方便部门新人接手老项目时能够迅速融入到项目开发或者维护当中。所以拟订一套基于自己公司研发部门的iOS编码规范还是很有必要的。
编码规范的内容多而繁杂,大到项目文件结构规范,小到变量命名规范,基于我们的目的是想让我们项目能有一套较统一的项目代码规范,所以我们选取一部分来进行总结。
1、工程开发模式规范
2、项目中类名、方法名、变量名命名规范
3、项目开发中基类的使用
4、多人开发过程注意事项
一、工程开发模式规范
1、当前最常用的,大多数开发者选择的一种开发模式是MVC,这种模式项目中文件结构清晰,易于非项目开发人员快速查看项目。
2、虽然大家在编写项目时使用了MVC的设计模式,但是在项目中文件夹的存放和命名时还是存在差异(不同的人有不同的编码习惯),如现在项目中采用的方式是根据项目不同的功能界面来创建一个主文件夹,然后在主文件夹下再来区分各个小的功能的文件夹,然后再区分MVC。这种是当前我们项目中主要用到的方式,相信大家也熟悉这种方式,所以以后大家在写新项目时也可按照这种方式来做,具体格式如下:
二、项目中类名命名规范
1、命名要有意义,不用自认为好理解的缩写,宁可名称长一些,易读性是首位;
2、类名首字母大写(这是基本的);
3、实例变量命名时加上类型如:XXXArray、XXXDictionary、XXXSize等等,杜绝array1、number2类似命名,而且千万不能搞错类型,不能给NSArray类型的变量命名成XXXDic;
4、项目中有些数字如frame中的参数、color值、tag值等要使用能表示意义的宏定义,能够让其他非编码人员理解意义。
5、方法名的命名同样要见名知意,首字母小写后面单词首字母大写,如果有参数,第一个参数要从函数名称上携带出来,第二个参数的首字母小写,具体可参照系统方法命名格式:
三、项目开发中基类的使用
应用开发过程中合理使用基类能够大大降低程序的耦合性,同时能方便统一或修改界面风格。
1、首先是viewcontroller 的基类,它关系到整个项目的所有导航栏的风格,以及一些其他的有关界面统一的属性都可以放在这个baseController里;
2、网络请求基类,当前iOS应用开发过程中离不开网络请求,苹果官方API中提供了关于网络请求的类和接口,但是在项目中实际开发过程中要根据项目的实际需求进行合理的封装,以提高网络请求的效率和代码的质量。之前iOS开发这块对网络请求的官方API进行了封装,而且经过几个app版本的使用和维护,目前没什么大的问题。不过苹果在iOS9.0以后提出了更加安全的https请求,所以对客户端和服务端的网络请求的封装可以考虑重新封装。客户端可以考虑使用目前大多数开发者都在使用的网络请求类库AFNetWorking和SDWebImage,这些主流的网络请求类库一直在更新着最新的API,同时不断有人进行维护,而且关于效率和缓存等方面做得也比较成熟。我个人认为应该是每一个HTTP请求都应该独立互不干扰,就是你封装的POST/GET方法都会创建一个临时的对象,而 长连接一般只维持一个实例对象采用单例的方式创建。我会为每一个HTTP 接口请求创建一个API对象,在里面请求数据,当然了为了避免请求代码的重复编写可以建立一个BASE API类,子类调用父类的请求方法就行了,不同的只是接口与参数.
3、项目中关于提示警告框的使用,项目中运用到很多关于提示框和警告框的显示,目前来看现有的几个app都不一样,所以关于提示框和警告框的使用这些东西能够统一起来;
4、验证基类的使用,工程里有关于一些基本的验证类,比如手机号、验证码、姓名等输入条件的验证或者一些加密方法的运用,这些放在一个Util类下,使用的时候能够直接引入头文件即可。
5、常用功能的封装,如推送、定位、分享、意见反馈、缓存清理等。目前来看推送、分享和意见反馈都是使用的三方SDK,不过对三方的SDK再进行简单的封装后再使用能够更方便的引入到我们的工程当中,不至于所以的功能方法都写在AppDelegate中。
四、多人开发过程注意事项
1、框架:前期一定要设计好app框架,遵循软件的分层架构,什么数据持久层,网络层,业务逻辑层等一定要层层分明,每个层完成独立单一的功能,把层之间的耦合度降到最低。
2.线程:如果业务逻辑简单,并且不影响APP性能的情况下,尽量使用单线程,不要觉得我会多线程编程牛逼,就把操作都放到次线程中。
3.存储:对于数据持久化,最重要的就是保持数据源的一致。还有一个比较重要的就是APP升级之后的向前兼容,那种你一升级app,启动崩溃的问题,多半是新版本的数据结构发生变化,不支持老版本产生的数据或者设置等。
以上是个人对公司项目开发过程中的一些拙建,如果大家有什么宝贵的意见和建议随时在下面留言哦,或者qq我3400017313.
网友评论