架构设计与重构架构师之路iOS学习开发

设计模式-《重构》读书笔记及 APP 重构心得

2018-01-10  本文已影响156人  Q以梦为马

前段时间和一同事一起重构了两个 APP,正好想写一些重构心得,前天又在知乎上看到一前辈推荐《重构》这本书,据说是程序员的必读书籍,于是就粗略的读了一遍,对重构有了更深层次的认识了。这里结合 iOS 项目的重构,谈谈与重构相关的问题,做一下记录及分享。

一、《重构》读书笔记

1.1 重构的定义

重构的定义说明了两点,第一,重构的目的是使软件更容易被理解和修改;第二,重构不会改变软件可观察的行为——重构之后软件功能一如既往。

1.2 为何重构?

1.3 何时重构?

1.4 重构的基本技巧:

二、结合 iOS 项目重构心得

2.1 项目目录结构

项目的目录结构是开发中最基础的,但也是很重要的,清晰的目录结构能够让人一眼就看懂该项目的业务及功能,目录结构也能反应一个开发者的经验及架构水平。项目目录结构比较常规的有两种,第一种是按照业务分类,第二种是按照模块分类。当然具体还得根据具体的业务需求来做,适合自己的才是最好的。

这里有一篇关于项目目录结构的文章,有兴趣的童鞋可以读下:iOS 项目的目录结构能看出你的开发经验

2.2 业务与 UI

这里不讨论 MVC 架构与 MVVM 架构,关于架构模式之间的争论有很多,个人比较赞同一个观点:不要局限于 MVC、MVVM、MVP 等等一些架构模式,万变不离其宗,真正适用于项目的架构才是最好的架构。刚接手的旧项目在设计初期以及开发过程中,没有进行合理的规划,以至于一些控制器过于臃肿,代码量很多都是超过了 1000 行,有的甚至超过了 1500 行,而且写的很乱。重构的目的,就是提高代码的可读性以及便于以后的维护,我这里按照 MVC 的架构模式,将 UI 部分进行抽离,将工具代码(比如计算球面两点之间的距离)进行封装,并放到了相关的工具类中,又对控制器中的冗余代码进行了整理,使得控制器中的代码减少至之前的三分之一以下。分享一张 cocoa 上的 MVC 架构图:

MVC 架构

2.3 代码还是 xib、 storyboard?

写 UI 界面用代码还是用 xib 一直是 iOS 界的争论,有的人倾向于使用代码,有的人倾向于使用 xib,巧神之前在博客中也讨论过这个问题,并给出了一些建议(个人比较赞同👍):

这里是巧神关于写 UI 用代码还是用 xib 的相关讨论: iOS 开发中的争议(二)

2.4 模块化设计

什么是模块化?比如我们刚开始码代码的时候,有一个经常用的方法(比如还是计算球面两点之间的距离),由于这个方法经常用,我们会把这段代码拿出来放到一个公共类里,以便实现代码的复用,这就是简单的模块化。关于模块化设计的原则,一位阿里大神的建议如下:

对模块化设计感兴趣的童鞋可以看下这篇文章,绝对干货!模块化与解耦

2.5 代码规范

关于代码规范,每个程序员遵守的代码规范多多少少都会有些不同(比如什么时候该空格,常量变量的命名方式等等),之前听一前辈说过,尽量遵守那些“约定俗成”的代码规范,另外在编码时,要保证自己的代码规范始终一致,别给人一种你写的代码是几个人共写的错觉。

代码规范方面,这里也推荐一篇不错的文章:iOS开发-代码细节优化(长期更新)

再安利一本书,《编写高质量 iOS 与 OS X 代码的 52 个有效方法》,这本书对编码时应注意的细节写的很全面,之前读过一遍,过几天会再读一遍,并记录。

上一篇 下一篇

猜你喜欢

热点阅读