概述
Mantra 是一个Meteor 的应用架构。使用 Mantra,我们想要达成两个主要目标。
1. 高可维护性
可维护是大型团队协作成功的关键。我们可以通过对app的每个部分进行单元测试和遵循每件事的规范来维持可维护性。然后新人加入团队时就能更方便的上手了。
2. 前瞻性
JavaScript世界充满了选择。对于每个问题,我们将会有多个好方案。很难说哪一个是最佳方案或是哪些将在未来被改变。
Mantra依赖于一套将长久持续的核心原则,然后,我们让其他部分按照需求改变。
Mantra中包含些什么?
- 它有一个基于React的现代UI组件层。
- 它有一个在app中定义业务逻辑的地方。我们称它为actions。
- Mantra本身不提供状态管理,但是它允许你使用一系列的状态管理工具,包括Meteor/Tracker,Redux,Rx.js观测量,Promises等任何工具。
- 它通过创建容器(containers)来使状态(states)和动作(actions)集成到UI组件中去。
- 它允许你进行依赖注入。
- 它帮助你单元测试UI,动作和集成(容器)。
- 它有目录结构、文件命名和其他的规范。
Mantra不是什么?
- 它不是一个应用框架。一个应用框架会关注应用打包,网络传输,应用部署等等。Mantra基于Meteor这个应用框架。
- 它不是一个模板,尽管我们有一个目录结构。
- 它不是一个代码生成器。我们将会有一个代码生成工具,但它不是Mantra的核心。
Mantra是什么?
- 它是一整套规范帮你架构你的Meteor应用。
- 它同时包含了一系列辅助库帮助你在Meteor之上搭建Mantra。
为什么一份规范?
Mantra是一个应用架构。Mantra关系到许多人,包括应用开发者,工具生产者,教程作者和项目经理,所以有一个共同的标准非常重要。这份规范为此而生。
在阅读之前
这份规范叙述非常简明。当然,如果你具备以下领域的基础知识,你能够更顺畅的阅读它。
- ES2015
- React
- React Containers
- Meteor Basics (Pub/Sub, Tracker, ReactiveDict, etc.)
参考 Appendix A 来了解更多上述的知识。