龙空技术网

突破极限:入职短短两月,将十个月工程推倒重来,引领项目脱胎换骨!

CSDN 164

前言:

此时兄弟们对“nginx部署angular”大致比较关心,同学们都想要了解一些“nginx部署angular”的相关知识。那么小编也在网络上汇集了一些有关“nginx部署angular””的相关内容,希望各位老铁们能喜欢,看官们一起来学习一下吧!

【CSDN 编者按】这篇文章详细的描述了作者接手一个逾期5个月的电子商务平台后推倒重建的经历,从最开始选择的AngularJS,转向Angular 2后也遇到技术难题最终选择使用React重新构建并在7周内交付了性能优异的网站。这一决定打破了传统规则,并且强调了特定情境下做出决策的重要性,以及项目管理中团队士气的平衡。

原文链接:

未经允许,禁止转载!

作者 | Dan Cowell 译者|Ric Guan责编 | 屠敏
出品 | CSDN(ID:CSDNnews)

我们重写公司电子商务网站的目标只有一个:利用 SSR 服务器端渲染技术提供极快的性能。

在此之前,网站运行状况良好的时候,JavaScript 包大小为 168MB。在一台顶级 MacBook Pro 上,开发环境需要 3 分钟才能有响应。工程师们经常来上班,输入 npm run dev,然后去喝杯咖啡,而这些机器的风扇却始终无法满足我们庞大的项目对他们的要求。

到底是哪里出了问题?

背景介绍

公司的第一个网站是一个使用 AngularJS 开发的单页面应用程序。AngularJS 不支持服务器端渲染,因此网站在首次加载时渲染速度较慢,但在下载所有内容后速度很快。

对于 Web 而言,响应的毫秒至关重要,对于电子商务来说更是如此。所以我们需要缩短首次渲染的时间。

Angular 2 进入了团队的视线,虽然它与 AngularJS 大不相同,但似乎是新网站开发的合理基础。甚至还有一个试验性的服务器端渲染功能正在积极开发中!在准备交付,这项功能肯定已经准备就绪了!

团队在构建网站时,定期将实验分支中的最新变更合并到代码库中,并处理可能出现的任何 Bug。

我是在网站功能完成前两周加入团队的。虽然最后期限早过了,但大部分页面已经完成,关键功能也都正常运行。我的工作就是完成并交付项目。

然而,唯一缺少的功能就是完整的 SSR (Server-Side Rendering)的全面支持。SSR 可以工作,但并不能摇树优化(tree- shaking)去除死代码,而且 AOT Complier(Angular 构建管道中的关键步骤)会产生巨大的包。

我们花了三周时间从积压的工作中挑选出 "必备功能",其中包括令人印象深刻的 nginx 图像缓存(这是另一个故事了)。我们每天都会检查 Angular 储存库,希望关键的修复能够落实。

我们用完了所有的 "必备功能",又花了两周时间在 Angular 团队的 SSR 分支上进行黑客攻击,但庞大、陌生的代码库和难以克服的错误让我们陷入了一场艰苦的战斗。这个项目属于探索性质的开发,而实验性质就意味着文档的匮乏。

我们耗费了大量时间,却一无所获,但在离终点如此之近的时候放弃,又觉得是一种浪费!

经过一周的时间,我们没有取得任何实质意义的进展,上游也没有采取任何行动,我一筹莫展。管理层给我的压力越来越大,我们的竞争对手当然不会等着我们迎头赶上,而企业又需要这个项目。

我们没有明确的产品交付途径,但我们有能力重新开始吗?

标签: #nginx部署angular #nginx部署angularjs #macbooknginxphp环境