架构之始—项目文件和文件夹管理

接手过前任代码的老鸟们都知道,很轻松随意(这里不说快速,毕竟Xcode有这功能)的找到文件或者对应的文件夹,并不容易,问题有以下几点:

1.语言不过关:英语水平不行,汉语词义博大精深;

2.一千个人就有一千个哈姆雷特—类文件和文件夹的命名;

3.一千个人就有一千个哈姆雷特—类文件内部函数和成员变量命名;

4.各种模式乱用,比方单例的泛滥使用,数据保存的不巧当用(东边一个Yes,西边改一个No,没有合理的数据管理等);

5.最重要的是项目类文件的层级关系不明等!

第五个原因乃促使我想分分钟重构项目文件和文件夹管理方面的最有利行动的原因,还有一个原因在于此代码经过了N(话说4)任不同程度水平的人手处理!

于是,在老大的批准与支持下,开始了本篇的文件与文件夹管理之路,感觉算不上架构吧,但也请你不要小瞧哦!

一.快速移动文件夹:

1.点击要移动到的目标文件夹,右键show in Finder 找到本地的位置,在本地创建新的文件夹;

2.之后直接拖拽当前要移动的文件到刚创建的文件夹,同时删除本地移动后变红的文件;

3.当创建的文件夹模块移动完毕之后,先找到如图所示位置:

快速搜索要删除的文件有没有删除干净!

输入刚刚移动过的文件,如果有存在,立刻删除,(一般看一个文件,示例下就行了);

4.拖拽新创建的文件夹到工程中,同样走到上面的地方,逐个输入新创建文件夹中的.m文件,并Add进去

5.cmd +shift+k 清理一下, 之后cmd +b 编译通过OK!

二.快速移动第三方SDK:

1.卸载,删除原有SDK,恢复项目到没有集成对应SDK前的状态;

如下图三个地方逐一查看是否引用原路径问题:

查看引用SDK的路径是否已删除!

删除 library的原路径,删除SDK,全局看是否还有以及SDK对应的文件及文件夹。

2.重新拖入,集成SDK;

注意,一定要先把文件移动到磁盘所在位置,再向工程中拖拽不然文件还是不在你想要的磁盘,引用还是会出错。

3.有时候项目中会含有.a的静态库,第一次可以通过下图所示方式添加:

第一次添加SDK的库

但若是删除SDK后,.a库会立刻消失,符合您的要求,但再次集成会发现无法通过上面add方式去添加,因为就没有.a的文件可展示,如下:

再次添加SDk的库发现找不到对应的库

不过,试试Add Other之后会发现原来它在这里,如下:

另一种方式添加SDK的库

选中要添加的静态库,之后再点下Open ,自己看效果,就不展示了,会发现,静态库竟然添加上去了!

这个是我移动SDK过程中遇到的坑,不过当坑爬过了,就是短暂的嘚瑟,比方像我现在教你爬坑经验;但也可能会有更大的坑在等着我呢?

三.几个注意点汇总

1.多多cmd +shift+K ,甚至重启,甚至删除缓存,如下为缓存的目录:

Xcode编译项目缓存垃圾的目录:

~/Library/Developer/Xcode/DerivedData

2.尽量移动若干,比方某模块,一般最多5个类文件,就执行一下上面的步骤,以防全部移动到合适的位置之后有遗忘文件未添加的地方。

3.最重要的小技巧:

在移动或者删除文件或者第三方SDK之前,做个备份,最简单的,像上面的FrameWork,Header,Library Search Paths(常见的问题就在这里)等不知道应该加路径,加路径到什么位置时合适,

比方我支付__支付宝App支付接入流程中的下面这个编译错误,当年也是神坑也!

支付宝SDK集成的合适路径

那么就把自己删除之后编译失败文件路径与原来编译成功的原项目比对,查出不足点,这也是为何建议您把对应的SDK的文件路径给复制粘贴保存下来,因为手敲免不了会出错!

四.背景成果与经验分享:

1.关于第三方库(特别是拥有各种.a文件,.bundle文件)的位置一定是放在相对比较集中的比方常见的Vendor,Kit等文件夹下集中管理,如果有超过一半以上(含有.a等静态库的)的不在一起,我想,如果您和我一样有强迫症的话,非要让他们放到一起才开心,那么我的建议就是重新写个项目,重新集成对应的第三方库和拖拽文件,因为这样找的话太麻烦了,当然如果哪位大神有自己的快速解决办法,请留言,不胜受恩感激!

2.当我把我的成果架构,即先按模块分,之后再根据情况,业务量少的采取MVC架构子模块,业务量多的采取MVVM架构子模块,去向老大报告这2天的战果的时候!

老大的说法是这样的,必须继续细分,原因如产品经理会把比方目前的五大模块,可能某2个模块在一段时间合并或者再放到另一个模块下面作为其子模块,您有如何做呢?

哦,这个时候,我突然想到当年我为何对一些架构模式。如:组件化架构的理解感觉多此一举,其实站在现在的立场,我知道,组件化架构之路我必须去做!

好了,废话不多说,研究我项目的组件化架构之路喽!

推荐阅读更多精彩内容