前端的爆发,说来也就是最近 3、4 年的事情,其中 Node.js 给前端如此繁荣的环境提供了很大的助力。Node.js 让更多人看到了前端的潜力,从服务器端开发,到各种脚手架、开发工具,前端开始沉浸在造轮子的世界里无法自拔。组件化后,比如 SSR、PWA 等辅助前端开发的快速开发实践你几乎躲不过去,再到 API 中间层、代理层到专业的后端开发都有非常成熟的经验。
引用阿里巴巴前端技术专家桑世龙(狼叔)在 GMTC 全球大前端技术大会上面的一段话可以很好的概述 Node.js 对于前端的意义:”Node.js 在大前端布局里意义重大,除了基本构建和 Web 服务外,这里我还想讲两点。
首先它打破了原有的前端边界,之前应用开发只分前端和 API 开发。但通过引入 Node.js 做 BFF 这样的 API proxy 中间层,使得 API 开发也成了前端的工作范围,让后端同学专注于开发 RPC 服务,很明显这样明确的分工是极好的。
其次,在前端开发过程中,有很多问题不依赖服务器端是做不到的,比如场景的性能优化,在使用 React 后,导致 bundle 过大,首屏渲染时间过长,而且存在 SEO 问题,这时候使用 Node.js 做 SSR 就是非常好的。
当然,前端开发 Node.js 还是存在一些成本,要了解运维等,会略微复杂一些,不过也有解决方案,比如 Servlerless 就可以降级运维成本,又能完成前端开发。直白点讲,在已有 Node.js 拓展的边界内,降级运维成本,提高开发的灵活性,这一定会是一个大趋势。“
这次 GMTC 北京 2019 上,狼叔将会担任 Node 技术专场的出品人,来现场跟大家聊一聊 Node.js 对于前端技术发展的意义和未来的技术趋势。下面是本专题下的具体议题内容介绍:
淘宝从 2017 年之前就开始探索 TypeScript 的落地方式,随着时间的推移已经将新的模块和框架全部迁移到 TypeScript 体系,在 2019 年,TypeScript 应用已经遍地开花,提前完成了非常不错的布局。
本次分享主要介绍淘宝最近开源的 Midway 框架在新的场景、新的体系下如何和现有的 Egg 体系保持良好的兼容性,同时又能在 TypeScript 的使用中有着独特的体验,通过针对不同场景的情况,我们引入相同的解决方案,为未来打下了夯实的基础。
1、使用 TypeScript
(1)规模化编程和全栈带来的挑战
(2)面向接口编程
(3)新特性,装饰器的使用
2、基于 Egg 创造性 Web 框架 Midway
(1) 从 Egg 开始
(2) 引入 IoC
(3) 和框架解耦
(4) 和目录结构解耦
(5) 引入自定义装饰器
(6) 实践讲解
3、多场景设计实践
(1) 跨场景的实现
(2) FaaS 场景的设计和代码迁移
(3) 跨其他场景的解决方案
当前 Node.js 的场景越来越多,很多代码都需要跨不同场景进行共享和迁移,在这些过程中,如果代码能够尽可能少的变化,势必会减少很多工作量和重构量,也使得在业务迁移过程中能够更加专注业务本身,而不是新框架的使用方式。
Node.js 近几年在服务端开发的比重越来越大,各大公司或多或少都选用它作为构建业务链路中不可缺少的一环。但 Node.js 本身极度灵活、轻量的特性,让它对 DevOps 上并不是那么的友好,一直被业界诟病为前端工程师的“玩具”。这些问题对于构建高可用服务非常重要。
腾讯云云开发团队从业务最初启动时,就选用了 Node.js 作为接入层的运行时环境,从业务上线到现在每天数亿级体量的云服务调用,在这个发展过程中,DevOps 也从刀耕火种的原始阶段,逐渐构建了一套比较完善、严谨的流程。本次分享主要介绍 Node.js 在云开发团队业务架构中的定位,如何为 Node.js 设计一套稳定可靠的 DevOps 流程,在这个流程中会遇到哪些坑,如何在业务快速迭代的同时,保证服务的高度可用性。
1、Node.js in CloudBase
(1)Node.js 在云开发团队的发展历程
(2)Node.js 在业务架构中的定位
2、渐进式迁移到静态语言
(1)TypeScript 的语言优势
(2)TS 在实际业务中的最佳实践
3、为项目编写高质量的测试
(1)测试的基础知识
(2)单元测试
(3)集成测试
(4)端到端测试
4、持续集成
(1)持续集成的基础知识
(2)Git Flow + Node.js 最佳实践
(3)如何使用 CI 系统科学、自动地测试代码
(4)发布流程与发布策略
5、日志、监控与容灾
(1)日志规范与日志系统
(2)如何通过监控告警快速定位问题
(3)容灾:主备、异地多集群
了解为 Node.js 搭建 DevOps 流程中的技术选型、演化以及经验
了解业界 DevOps 的最新理念和规范
网易严选作为原创生活类自营电商品牌,其供应链、采购、财务、数据等,具有业务变更频繁、流程复杂性高、跨系统协作多的现状,使得业务系统前端开发在开发和维护中变得越来越困难。因此,构建一个架构设计优良、功能全面、质量稳定的 Node 应用框架显得尤为重要。
我们基于 TypeScript 设计和开发了严选 Node 框架,抽象了应用生命周期管理,完成了 Node 生态建设,建立了与业务系统和技术中台的对接规范。在整个框架的开发和落地过程中,我们还实践了 Serverless 场景的应用,探索了 Service Mesh 在 Node 应用中的价值,希望能给大家带来一些思想的碰撞。
1、Node 应用场景
(1)我们的 Node 应用场景
(2)我们需要什么样的框架
2、自研框架的介绍
(1)框架设计思想
(2)框架功能介绍
(3)框架生态建设
(4)框架质量保障
3、Serverless 实践介绍
(1)Serverless 原因
(2)方案选型
(3)Knative 应用、扩展开发
(4)应用场景
4、Service Mesh 在 Node 应用中的价值
(1)Service Mesh 介绍
(2)Istio 带来的价值
完整了解企业级 Node 框架开发过程,掌握框架设计思想
了解 Serverless、Service Mesh 对 Node 应用的价值,拓展 Node 应用场景
除了上述议题之外,在 GMTC 全球大前端技术大会上还有关于前端框架、工程化、性能优化、跨平台、小程序、Flutter、移动 AI、前端团队管理等内容的 70+ 干货技术案例分享。
目前大会 9 折报名倒计时 9 天,欢迎联系票务小姐姐:18514549229(同微信),点击“阅读原文”了解更多精彩,赶快来现场与来自 Google、Twitter、BAT、字节跳动等大厂的技术负责人面对面交流吧。
1、头条易读遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2、本文内容来自“InfoQ”微信公众号,文章版权归InfoQ公众号所有。