历史好文章#1 复杂的前端项目

2022/03/10 04:59

今天想到一篇几年前看过的好文章,隐约记得几个关键词,用了很久才找到。所以打算用 #历史好文章 将历史好文章按主题重新整理。

最近在开发小宇宙Studio,对我来说是比较复杂的前端项目,这期就围绕复杂前端项目、编辑器项目来推荐吧。

《Designing very large (JavaScript) applications》《Designing Even Larger Applications》这两篇就是我想找到的文章,所以放在第一位。
作者在Google做了一个JavaScript框架,用在了Photots、搜索、Plus、Drive、Play等网站里。
我直接引用第一篇中译版(翻译质量相当高)的总结:

Malte 在文中主要讨论了两件事:
一是如何构建高度复杂的 web 应用,以确保不论开发人员多少、不论应用逻辑和 UI 多么繁重,用户在交互时首屏加载与渲染负担都能维持在较好的水平;
二是如何保证应用在整个生命周期的轻量运行,即加载当前不需要的 JS 代码。
整个演讲中,Malte 提到了三个概念,分别是懒惰装饰(lazy decoration),异步依赖注入(asynchronous dependency injection)和模块系统的反向依赖关系(reverse dependencies)。

这篇文章的结尾提到 “MAKE IT EASY TO DELETE CODE”,让我想起 Write code that is easy to delete, not easy to extend. (中译 《要写易删除,而不是易扩展的代码》

小宇宙Studio会将项目的状态实时同步到服务端,现在还没有多人协作功能。Figma的《Behind the feature: the hidden challenges of autosave》这篇文章介绍了在有多人协作功能且离线时自动保存是多么复杂。另外撤销和重做几乎是所有项目的必备功能,而obs-studio这个已有8年历史广泛使用的直播工具直到2021年才添加了此功能(以及对应的PR)。

《Maximally optimizing image loading for the web》 和第一篇文章是同一个作者。介绍了如何最大程度优化前端图片加载。写的非常细致。

关于多人协作和富文本编辑器可以看我这期Newsletter,介绍了Figma、ProseMirror等实现方式。


可以在这些地方找到我: