现代前端开发技术栈

2022-12-08 0 851

(点选下方社会公众号,可加速高度关注)

英语:OWEN BUCKLEY    原文:科刺剑译者

www.zcfy.cc/article/a-modern-day-front-end-development-stack-3664.html

但如好该文征稿,请点选 → 这里如是说详细情况

现代前端开发技术栈

这首诗Sonbhadra如是说往后一两年 JavaScript 合作开发各方面的颠覆性产业发展。

前段时间一两年,应用领域合作开发的认识论发生了巨大变动的变动。随着微服务工程项目构架、云计算、白眉林应用领域和积极响应式结构设计的蓬勃产业发展和产业发展,在确保工程项目合作工程进度、使用者新体验和应用领域操控性的同时,合作开发人员需要做大批的重大决策。现如今,对于前端合作开发和 JavaScript 亦然。

为了协助我们跟得上节拍,他们先来单纯如是说下前段时间一两年 JavaScript 合作开发各方面的颠覆性产业发展。接着,他们会如是说下前端合作开发街道社区所遭遇的一些考验和发展机遇。

JavaScript 的巴洛克

2009 年 NodeJS 陨落时,它已经更为重要是可以在配置文件中运转或在 server 端运转的 JavaScript 了。NodeJS 紧紧围绕着亟需化解的软件合作开发各方面的难题作出了颠覆性重大贡献:特别针对于前端合作开发人员的成形平衡的生态系。便是虽然 Node 和它预设的包配置文件 npm 的存在,在应用领域合作开发和应用领域构筑各方面,JavaScript 蓬勃产业发展了这场巴洛克。生态系经济繁荣起来了,但是虽然彼时 Nodejs 还很年青,所以时常会出难题。

让人欣喜的是,往后一两年标识符商业模式和标识符规范化达到了颠峰。2015 年,JavaScript 街道社区缔造了 ES2015 的正式发布,生态系再一场井喷式经济繁荣。上面的叙述实际上展现了 JavaScript 生态系中最流行的一部分。

现代前端开发技术栈

2017 年 JavaScript 生态系一览

在 Kenzan,他们在多种平台上——从浏览器到机顶盒——使用 JavaScript 合作开发了十多年。他们目睹了前端生态系的成长、产业发展,拥抱街道社区所付出的所有积极的努力。从 Grunt™ 到 Gulp,从 jQuery® 到 AngularJS,从复制脚本到使用 Bower 来管理前端依赖,这些他们都经历过了。

JavaScript 日渐成形,他们的合作开发流程也是如此。在为客户端合作开发结构设计优雅、操控性平衡、成形的软件应用领域时,他们意识到健壮的本地合作开发工作流和控制技术栈是他们成功的基石。在合作开发过程中对可靠性、成形性和高效性的追求让他们感受到整个合作开发环境更为重要是一套工具的堆积,相反,好的合作开发环境有助于最终产品的成功。

考验和发展机遇

伴随着如此多的选择、如此经济繁荣的生态系,街道社区将何去何从?尽管有选择是件好事情,但是对于街道社区来说,确定从何开始、需要什么和为什么需要是有些困难的。随着使用者期望的增长,应用领域程序应该如何运转和表现(加载速度更快,运转更顺畅,积极响应式,可以和原生应用领域媲美等等),在合作开发团队的生产力需求和该工程项目能够在预期市场上推出并取得成功之间求取平衡,变得越来越具有挑战性。特别针对于此,甚至有一个名为分析导致瘫痪(analysis paralysis)的术语:虽然过于思考和不必要地使难题复杂化使得做重大决策变成了一个难题。

在工程合作开发周期,一味追求最新的工具和控制技术会制约合作开发速度,阻碍重大里程碑的实现,带来推迟上市和客户流失的风险。在一定程度上,一个团队需要明确自己的难题和需求,接着从可选的方案中作出重大决策,认清利弊,这样才可以更好地预测产品的长期可行性和可维护性。

在 Kenzan,他们的经验使他们能够定义和整合一些关键的概念和理论,以确保他们的重大决策有助于化解他们在合作开发前端软件时所预料到的考验:

利用 JavaScript 语言提供的最新功能来支持更优雅、一致和可维护的代码(比如import/export (modules)、class 和 async/await)。

提供一个平衡成形的、低到无需维护的(即,合作开发人员不需要安装或维护全局的合作开发依赖,且具有直观的工作流/任务流)本地合作开发环境。

利用包配置文件来管理前端构筑依赖。

部署优化过的、基于功能特性的 bundles(已经打包了HTML、CSS和JS),为使用者提供更智能、更加速的分发和下载。结合 HTTP/2,可以获得小投入大产出的效果,可以大大提高使用者新体验和产品操控性。

新的控制技术栈

在这篇系列里,他们的高度关注点是前端合作开发控制技术栈的三个部分。对于每个部分,他们将如是说下他们认为能够为当代 JavaScript 应用领域程序合作开发的可靠性、高效性和可维护性提供最佳平衡的工具。

包配置文件:Yarn

如何以可靠和持续重现的方式管理和安装外部 vendor 或内部包的考验,对于合作开发人员的工作流来说是至关重要的。同时,维护 CI/CD(持续集成/持续交付)也是至关重要的。但是,你选择哪个包配置文件来评估上述所有的功能呢?npm?jspm?Bower?CDN?或者说你只是从网上复制粘贴,接着提交到版本控制器上?

他们的第一首诗Sonbhadra单纯地如是说下 Yarn,如是说下它是如何专注于速度和提供平衡的构筑流程的。Yarn 确保这次安装的依赖的版本和下次安装的依赖的版本是完全一致的。确保整个过程平滑、可靠、分布式和规模化是必需的,因为任何停顿都会影响到开发者编程或部署应用领域的节拍。Yarn 旨在通过为 npm cli 提供加速可靠的替代方案来化解这些难题、管理依赖,但是依然继续使用 npm registry 来安装公共 Node 包。而且,Yarn 是由 Facebook 来维护的,他们在合作开发这个工具的时候是有所规划的。

应用领域打包:webpack

他们构筑的前端应用领域程序,通常是由 HTML、CSS 和 JS 以及图像和字体等二进制格式组成的,可能难以维护,甚至会更具考验性。那么,如何将一个标识符库转换为一个优化过的、可部署的工程项目?Gulp?Grunt?Browerify?Rollup?Systemjs?这些东西都各有优缺点,但是他们需要确保他们的选择能够实现他们上述讨论过的那些原则。

Webpack 是一个专门将 web 应用领域打包构筑为一个优化过的载体传递给使用者而打造的一款构筑工具,web 应用领域可能会包含 HTML、CSS、JS、图片、字体等等。如果他们想使用最新的语言特性,比如 import/export 和 class,来使他们的标识符更整洁,让工具来打包标识符,使其对浏览器和使用者都进行优化,那么 Webpack 可以做到这些,而且还可以做的更多!

语言规范化:TypeScript

编写整洁的标识符从盘古开天辟地时起就是一个巨大的考验。JavaScript 是一种动态、弱类型语言,为合作开发人员提供了应用领域于各种结构设计商业模式和规范化的媒介。现在,通过最新的 JavaScript 规范化,他们可以看到编程街道社区更加坚实的商业模式。支持使用 import/export 和 class 等功能给 JavaScript 应用领域程序合作开发带来了一个基本的范式转变,并可以确保标识符更容易编写、阅读和维护。但是,编程语言中仍然存在着缺陷,通常随着应用领域程序的增长应用领域程序本身也开始受到影响:源标识符的可维护性和完整性以及系统的可预测性(运转时的应用领域程序状态)。

TypeScript 是 JavaScript 的一个超集,增加了类型安全、访问修饰符(私有的和公共的)和下一版 JavaScript 的新特性。强类型语言的安全性有助于标识符在应用领域到浏览器中之前通过编译器来验证标识符,促进并强化构架结构设计商业模式,这有助于缩短合作开发人员的合作开发周期,同时也可以进行自我记录。这是特别有利的,因为随着应用领域程序的增长、标识符在标识符库中发生变动,TypeScript 有助于保持回归检测,同时增加标识符库的清晰度和置信度。同时,IDE 集成也是一个巨大的胜利。

如何选择前端框架?

你可能也发现了,目前为止他们都在回避推荐前端框架或库,比如 Angular 或 React。那么,现在他们该聊聊了。

不同的应用领域需要基于合作开发团队经验、规模、团队偏好以及对于积极响应式编程或函数式编程等概念的熟悉程度等因素来选择不同的合作开发方式。在 Kenzan,他们坚信,无论是 Angular2 还是 React,评估和选择任何与 ES2015/TypeScript 兼容的库或框架,都应该基于彼时的合作开发场景下特定的特征来定夺。

如果他们重新审视早期的工程项目,他们就会看到一套新的在前端框架选择各方面提供了极大灵活性的控制技术栈。

现代前端开发技术栈

在前端框架选择各方面提供了极大灵活性的当代合作开发控制技术栈

在上面的“视图”层之下有一个共同的节点,他们可以通过包含一些关键原则的工具来进行构筑应用领域。在 Kenzan,他们认为这个控制技术栈给使用者需求和合作开发人员新体验都提供了一个选择空间。这样的结果可以使任何团队、任何应用领域(大型应用领域或者小型应用领域)都受益匪浅。请牢记,这里如是说的工具是用于特定类型的工程项目合作开发的(前端 UI 应用领域程序),并不是一个可以应用领域到所有应用领域的一刀切方案。权衡能力、判断力和团队需求应该是重大决策的重要因素。

接下来要做的

到目前为止,他们回顾了往后一两年 JavaScript 复兴如何导致了加速成形的 JavaScript 生态系的形成。他们制定了核心理念,协助他们应对前端软件合作开发时遇到的考验和发展机遇。他们概述了当代前端合作开发控制技术栈的三个主要组成部分。在本系列的剩余章节中,他们Sonbhadra深入如是说每个部分。他们希望,最终你将能够更好地评估你的前端应用领域程序所需要的基础构架。

他们也希望你能够以一套核心原则、范式和理念为指导,认识到他们所提供的工具的价值。这个系列无疑已经将他们自己的合作开发经验和合作开发流程都暴露到了众目睽睽之下,并且在提及前端工具的时候也巩固了他们的理念。希望你能够喜欢他们分享的这些东西,他们也随时欢迎你的任何想法、难题或反馈。

接下来在他们的博客系列中,他们Sonbhadra使用 Yarn 来近距离观察他们前端包管理的第一个核心组件。

觉得本文对你有协助?请分享给更多人

高度关注「前端大全」,提升前端技能

现代前端开发技术栈

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务