最近在阅读广发证券出品的《揭秘Angular2》书籍,里面“单元测试”章节提到:
测试代码和被测代码是放在同个层级目录中,还是放在源代码根目录所创建的一个独立的test目录中,读者可以根据项目代码的组织结构自行确定。
由此,我特意思考了一番:
1. 就拿单元测试为例,假如要写detail.component.ts的单元测试例子,一般就在该文件的同一个目录中新建detail.component.spec.ts来写。
2. 如果要定义里面使用到的数据类型,则定义detail.d.ts文件。
这里乍一看,没有问题。但根据我长久的大型项目开发经验来看,第2点的数据类型这里,有问题。如果写类型文件,都放在各自组件内的话,可能会出现重复编写的情况,因为有些数据是公用的,但多人开发的话,容易出现各自定义其实是相同的数据类型的情况。
所以,对于这种需要公用的数据/方法/配置,则最好在根目录上设立统一的文件夹,不管哪一个组件需要编写或者调用,都从统一的文件夹新建/引用。而不是写在组件内部里。
而对于第1点单元测试案例,这里不涉及公用,就算写重复也问题不大,所以跟着组件同层级目录放置即可。
综上,以下列出一些常见的建议放在根目录src的单独功能文件夹:
app 开发的系统前端代码
config 管理系统全部配置
text 管理系统全部文本、话术
typings 管理系统全部类型文件
utils 管理技术工具
libs 管理第三方库工具
提示:建了单独的功能文件夹后,不要直接在该文件夹下直接新建文件,不然后期会非常多文件。理应尽量拆分小单独文件,并归入相应的分类中。比如把业务和技术的分开,分别新建busin和tech文件夹,然后再放置文件。一般建议不超过3层目录。