zoukankan      html  css  js  c++  java
  • 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、不做哑巴程序员。

  • 相关阅读:
    Leetcode刷题有感
    [博客迁移] 准备将博客从CSDN迁移至博客园
    加快Linux上yum下载安装包的速度(以CentOS 7,安装gcc为例)
    Linux能ping主机,但ping不了网关以及外网,显示包全丢失解决方案
    如何设置centos7的ip地址配置信息,让我的主机和它互Ping,以及远程登陆
    线程池 ThreadPoolTaskExecutor
    java Http请求
    java排序
    java的代理
    java的反射机制
  • 原文地址:https://www.cnblogs.com/shizhiliblog/p/8669883.html
Copyright © 2011-2022 走看看