秒速赛车技巧-秒速赛车规律_官网-秒速赛车走势图
当前位置:主页 > 秒速赛车技巧 > 正文

秒速赛车害了多少人专访死马:为什么说Eggjs是企

  我们的工具在小组内已变得非常流行,特别是使用ComponentKit的工程师。在大型应用中,这使得工程师查看修改结果的速度提升了20倍。高性能、与现有开发工具和框架的紧密结合已经让原生代码的加载成了在Instagram和Facebook的iOS工程师平时工作流程中的重要一环。

  自从 Node.js 问世以来,阿里就是国内跟进 Node.js 最激进的公司之一。阿里不仅在公司内大范围使用 Node.js 用作服务端开发,2016 年还将他们使用 Node 做 Web 开发的经验沉淀下来,推出 Egg.js 开源项目,号称为企业级框架和应用而生。企业级开发对于框架有着诸多要求,那么 Egg.js 又是怎么满足这些要求的?

  在 7 月 6 日的ArchSummit 架构师峰会深圳站上,Egg.js 的主要开发者不四(网名死马)将给参会者带来《企业级 Node.js Web 框架研发与落地》的分享,借此机会,我们对他进行采访,询问了他对这个问题的看法。

  死马:阿里和蚂蚁内部在开源的 Egg.js 基础上封装了一个内部的框架,不同的子公司在此内部框架的基础上二次封装符合自身业务的框架。内部已经有超过 20 个 Egg.js 的上层框架,服务于十多个子公司,包括蚂蚁、天猫、阿里游戏、河马、阿里云等。线上运行了数百个基于 Egg.js 的应用。

  死马:Egg.js 最开始脱胎于蚂蚁金服的内部 Node.js 框架 Chair,为了更好的服务于蚂蚁和阿里全集团的业务线,双方合作将 Chair 底层的核心抽离出来后开源,所以它是阿里和蚂蚁以虚拟工作组的方式合作推出的。

  而到现在,Egg.js 已经是一个很成熟的开源项目了,不仅仅有来自阿里和蚂蚁内部的开发者,还有许多的外部开发者一起帮忙维护。可以看到 Egg.js 主仓库已经有超过 100 个贡献者了。整个的协作流程以异步交流为主,秒速赛车害了多少人所有的大的新功能都会在 Github 上开 issue 进行讨论,而代码变更都会由多方 review 后再合并。

  死马:不能说 node 在做企业级 Web 开发时有缺陷,而是没有规范。企业项目和个人项目有许多不同之处: 参与的人员会很多,项目的维护者也经常变更有非常多内部系统需要对接,特别像阿里、蚂蚁这个规模的公司,内部都维护了许多自己的中间件服务和定制化的 RPC 通信框架对稳定性、性能、Bug 追踪等方面的要求会更高Egg.js 为了解决这个问题,主要是从定制规范和给团队架构师更大的灵活性两方面入手,同时也从我们内部的日常开发中提取了许多经验集成到框架中。

  死马:Egg.js 最近发布了 2.0,而其实我们内部还有大量的应用都还是运行在 1.0 的版本上的,因此我们仍然会同时维护 1.0 和 2.0 两个版本。后续的计划中,我们起码会保证最近两个大版本的维护。

  死马:随着 yarn 的诞生和 npm 5 的跟进,其实整个 js 社区对待依赖这件事情的看法都在慢慢在向着锁版本倾斜的。但是锁版本在我们看来是一个治标不治本的方案,虽然看起来更稳定,但是业务繁忙起来没有人会愿意去升级依赖,导致一段时间后应用的依赖无法升级,许多新特性和隐藏的 Bug 无法被修复。

  而在阿里和蚂蚁内部的 Node 实践方式来看,绝大多数复杂的功能都是由底层框架提供的,底层框架经常会有大量的新特性引入和 Bug 修复,特别是一些安全性问题非常紧急,一旦版本被应用开发者锁定,就会导致线上服务出现安全风险。所以阿里和蚂蚁内部的实践是遵循 Semver 风格的依赖引用,不锁定版本。

  死马:Egg.js 本身不会使用 TypeScript 重写,对于框架本身而言,JS 的灵活性可以让它更容易实现一些特性,同时它也并没有那么复杂的业务逻辑,TypeScript 并无法给框架研发带来更多的帮助。

  死马:Egg.js 暂时并没有考虑商业化的问题,毕竟框架的维护成员仍然要花大量精力在公司业务上。当然这也不意味着 Egg.js 维护力度会下降,它是阿里和蚂蚁内部数百个应用的基石。

  死马:Egg.js 的核心其实是很精简的,而且由于其直接服务于内部应用,所以对它的兼容性要求是非常高的,从 Egg.js 开源以来,只发布了两个大版本,Egg.js 1 基于 Koa 1,底层使用 co 来解决异步问题,Egg.js 2 基于 Koa 2,底层切换到 Async Await,即便是这种升级,应用层也是可以无感知直接切换的。

  死马:首先,Egg.js 的核心维护者都是 node 社区的重度用户,除非这群人都不再当程序员,否则都会投入精力在其中继续维护它。其次,阿里和蚂蚁内部有数百个应用依赖于 Egg.js,从公司层面上来说也是愿意持续投入人力来维护它。现在 Egg.js 的运作也是完全社区化方式,讨论和代码变更都是基于 Github,有超过 100 位来自社区的贡献者,活跃度还是很高的。

版权保护: 本文由 主页 原创,转载请保留链接: http://www.ecentiv.com//html/333.html