Meteor非常出色,它开辟了实时Web开发的新时代!但是三年过去了,它也上了年纪。Meatier这个项目旨在实现同Meteor完全一样的功能,但并不采用单一而庞大的结构。本文翻译自meatier项目的README。
它牺牲了一些简洁性换取了巨大的灵活性。
下面是我对Meteor的主要抱怨:
以下则是Meatier的技术栈选择:
问题 | Meteor解决方案 | 我的解决方案 | 结果 |
---|---|---|---|
数据库 | MongoDB | RethinkDB | 内置响应性,你也可以使用任何你想用的数据库 |
数据库模式 | Simple Schema | GraphQL | 时髦的 webapp 都得有 GraphQL! |
客户端验证 | Simple Schema | Joi | 清晰的API,尽管这个包挺大 |
数据库钩子 | Collections2 | GraphQL | GraphQL 对于小应用来说太重了 (但是内容丰富) |
表单 | AutoForm | redux-form | 非常棒的状态跟踪,与 react 完美结合 |
客户端缓存 | Minimongo | redux | 加分项,日志,时光旅行,撤销功能 |
Socket 服务器 | DDP-server | socketcluster | 扩展简单,发布订阅,认证,中间件 |
认证 | Meteor accounts | JWTs | JWTs 也能提供认证服务 |
认证传输 | DDP | GraphQL (via HTTP) | 只有必要时才使用sockets |
前端 | Blaze | React | 虚拟DOM,服务端渲染,异步路由等等 |
构建系统 | meteor | webpack | Meteor中Webpack的使用非常有限 |
CSS | 魔术般地打包和提供 | css-modules | 组件范围的css,能内嵌或在文件中使用变量 |
Optimistic UI | 延时补偿 | redux-optimistic-ui | 由你来编写 |
Testing | Velocity (或者完全没有) | AVA | 非常棒的es2016并发测试 |
Linting | 自行选择 | xo | 不用管理.xxx配置文件,能修复错误 |
Routing | FlowRouter | redux-simple-router | 状态路由,react-router SSR,异步路由 |
Server | Node 0.10.41 | Node 5 | 更快,持久维护,更精简 |