每次阅读到这句话时总能想到我们阿里巴巴的使命“让天下没有难做的生意”,而“让天下没有难用的Node.js”我猜这应该就是阿里的前端们,对Node.js大规模应用的又一个使命了吧。
最近一直在用eggjs来开发后端,不过这倒不是公司的项目,而是自己利用业余时间捣鼓的一个项目。开发进度比较顺利,各项服务都已经部署在了阿里云的机器上,配合着阿里云提供的Node.js性能监控平台,对于这个应用,已经很足够。(就是不知道将来监控平台会不会收费)
在后端“企业级Web基础框架”的出现,其实是有一定历史意义的,Node.js这个平台出现之后,从Express到Koa,其实都主打轻量,倒也和Node.js这个平台比较贴切。但成熟的后端服务,一定不是说轻量就能胜任的,这里面包含着运维,安全,监控,服务,RPC等等,甚至还有一定的开发书写规范。对于以往的开发经历来说,同样的一个Koa会有很多不同的写法,比如:
代码语言:javascript复制router.get('/xxx', function (){})
router.get('/xxx', () => {})
这就比较坑了,如果不同的童鞋来维护这个,心里一定承受了“一万点伤害”。Java能运用的那么成熟,除了生态之外,还有就是一些书写的约束,最佳实践在社区中跟随着主流Web基础框架的实践一致。
我想,在业界应该没有哪家公司比阿里还多的大规模应用Node.js了吧。于是,eggjs被提炼了出来,这绝对是一个很好的事情,而且完全不用担心这是一个KPI项目,它本身就是基于Koa的,并且在设计上也不是为阿里的电商准备的,它的设计机制,在遵循一套统一的机制之外,总算是找到了生态与差异的平衡点,除了中间件,还有插件,每一层的分离都能让你很快的保持专注,并且它是约定优于配置的。想想吧,如果我们是一个团队,如果没有统一的约定和共识,在沟通协作上是会多么的困难。我觉得eggjs最大的贡献,就是贡献了阿里的运用经验,包括他们的设计思想,他们的安全考虑,他们的性能平衡点。其实,如果你不用,不妨看看他们的文档,从中也能学习到很多有趣的事情。
可惜的是,我好像错过了这样的一次机会,没有参与eggjs的开发,反而当时选择了继续在客户端领域深入。因为那一年(2014年),移动端刚刚是爆发的时候。虽然后期有幸和Weex团队接触很深,也在钉钉上完成了Weex生态应用的一些基础设施,但是很不幸,这是一个做失败的项目,没有起到很好的正面作用。目前来看移动端的下降幅度还是蛮大的,很多移动端技术公众号要么停更,要么就转行了,包括前面一段时间的移动开发前线和前端之颠合并了。
言归正传,今天我给大家推荐的就是eggjs,做为一个后端工程师,我觉得这是一个可以学习借鉴的基础框架。我们不可能写一辈子的Node.js,不过如果你能很清楚的知道这些基础框架的特点,在处理业务的过程中,就能很好的去评估,选择合适的技术。该用java的时候用java,当用Node.js的时候也别客气。