美文网首页
谈项目构建与维护

谈项目构建与维护

作者: iOS_Yee | 来源:发表于2020-06-09 19:27 被阅读0次

谈项目构建与维护

多去周边的世界看看。 -----Yee

链接

Yee的博客:谈项目构建与维护

第一阶段

  • 禁止使用xib.
  • 第三方service SDK禁止直接使用(更换的时候,代码如果太分散),必须构建一个中间层。
  • 图片名称不可出现中文。
  • 非公共、自行使用的组件,禁止编写宏。(真的会存在冲突)
  • 禁止编写对象或者Class的宏定义。比如:(#define YUInstance [YUClass manager])。
  • 依赖的frameWork必须修改源码时,需要在frameWork的加上当前项目的前缀。(为了防止与其他不可见SDK存在相同定义)
  • 禁止在逻辑代码中用宏去判断下一步该怎么做,(因为这个宏大多数情况下会使用多次,为何不维护一个全局变量。)

第二阶段

  • NSDictionary与NSArray使用时必须判断空或者转成model。
  • UITableViewCell中禁止使用KVO,应该由持有tableView的父UIView或更高级的视图(也可能为viewMdel)。
  • UITableViewCell中禁止去配置倒计时NSTimer,需要由更上层的组件去维护。
  • UITableViewCell的setSelected方法牵涉到逻辑处理时,禁止使用。(逻辑处理应该由上层下发)
  • UITableView与UICollectionView中禁止将cell设置为对象,当这个cell时考虑使用,其他情况不予使用。
  • 代码合并禁止跨版本合并(不能有侥幸心理,羚萌直播代码丢失了很多次了)
  • UIView、UIViewController、viewModel等Class的关键方法,如initinitWithFrameViewWillAppear静止编写逻辑代码,需要分发出来另起一个新方法。

第三阶段

  • 子对象禁止去操作父对象其他的子对象,必须借助父对象这个中间层。
  • block静止多层嵌套,需要下发出去。(以防止条件语句过多,导致逻辑层混乱,后序人员无法维护)
  • 懒加载方法中禁止setBlock等操作。(理由同上)
  • 反向传值禁止使用广播消息。(到底是谁接收/谁发送无从排查)

第四阶段

  • dealloc方法中要小心使用了点语法,以免对象无法销毁。
  • 组件需要自定义万能的初始化方法,参数为空时需要用nullable等关键字表明。

第五阶段

  • 更改以往版本功能,需告知测试人员,以防止功能丢失,代码丢失,线上问题等。(羚萌直播项目此类问题经常出现)。
  • 发版前一天出现问题,应该推辞发版。(这个需要多方面配合,羚萌直播经常出现此类问题,正式部署线上时间问题居多)

第六阶段

  • MVC、MVVM没有好坏,关键是如何处理组件的逻辑,而代码还能清晰明了。
  • tableView优化问题可做,无论是缓存height,取消不见的图片下载、圆角以图片更换,甚至于更换组件用Texture替换。需要考虑的是影响当前项目的瓶颈有那些,然后在开始动手。
  • 拦截常见的错误(NSArray越界,Map空,发生消息转发)
  • 启动时间优化(除了在程序启动后再加载非必须的组件,延后SDK的初始化,子线程预先加载必要图片),能否借助fishhook在dylb装载的时候优化。
  • 安装包的大小问题(无用代码,无用资源图片,减少SDK的使用)。

相关文章

  • 谈项目构建与维护

    谈项目构建与维护 多去周边的世界看看。 -----Yee 链接 Yee的博客:谈项目构建与维护 第一阶段 禁止使...

  • 大刘谈项目管理(三)-工欲善其事必先利其器

    前篇提要 �大刘谈项目管理(一) | 如何�细分项目需求大刘谈项目管理(�二) | 如何构建属于自己的代码库 项目...

  • TypeError: Cannot read property

    临时维护老项目,执行构建打包命令,例如 npm run build:prod 时报错如下: 发现webpack...

  • jenkins持续集成工程布署

    一、构建一个maven项目 二、具体配置 2.1、项目名称与描述 2.2、源码管理 2.3、构建触发器与构建环境 ...

  • 《架构整洁之道》读书笔记 (上)

    概述 好的软件架构可以大大节省软件项目构建与维护的人力成本。让每次变更都短小简单,易于实施,并且避免缺陷,用最小的...

  • 12-Maven

    依赖管理、项目构建和统一的项目结构。 1 依赖管理 2 项目构建 2.1 插件 插件与构建的生命周期绑定,mave...

  • Maven基础篇视频教程之Maven实战入门

    Maven概述 Maven是Apache软件基金会组织维护的一款自动化构建工具,专注服务于Java平台的项目构建和...

  • Maven

    简介 Maven是Apache软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和依赖管...

  • Node Sass does not yet support y

    同样是临时维护老项目,执行构建打包命令,例如 npm run build:prod 时报错如下: 按道理之前应...

  • Android中BuildConfig类的那些事<一>

    声明 本文章都只是在AndroidStudio基于Gradle构建项目开发的验证,所以不保证其它开发环境与构建项目...

网友评论

      本文标题:谈项目构建与维护

      本文链接:https://www.haomeiwen.com/subject/qwpetktx.html