奇舞推荐
Web 多线程开发利器 Comlink 的剖析与思考
Comlink 是一个很棒的项目,它可以帮助你轻松使用 Web Worker,让你无痛开发多线程的页面。本文,从 JS 的多线程实现开始讲起,又剖析了 Comlink 的源码,一起来看看吧。
性能优化,有时候是件体力活
性能优化是一个老生常谈的话题,先辈们常说不要过早进行性能优化,但对于性能决定了几乎一切的 IDE 产品来说,何时进行性能优化都不嫌早,除非我们当它 (性能问题) 不存在,直到你的用户卡到受不了并表示我忍你们很久了。在对我们自研的 IDE 用户做了第一次问卷调查后,我们得出了一个初步结论,就是卡,这个卡主要体现在打开慢、补全慢、界面卡顿等等。前几篇文章中逐步对启动做了一定程度的优化 (并且还在持续中),对于代码补全,我们基于 LSP 的机制进行了体积压缩等优化。而对于界面渲染性能实际上并没有进行过针对性的优化,主要原因是对于一款 IDE 来说,视图太过于复杂,以至于谈到性能优化,一时间似乎无处下手。
深入探究:null 和 undefined 究竟有何区别?
总的来说 null 和 undefined 都代表空,主要区别在于 undefined 表示尚未初始化的变量的值,而 null 表示该变量有意缺少对象指向。
拓展边界
所谓“现代 Web 开发”,都是些什么妖魔鬼怪?
这是一篇充满愤怒的博客。作者是一位出生于 70 年代的“技术愤青”unixsheikh,他用“激进”的方式抛出了一个观点:“Web 开发人员应该花费更多时间来进行优化”。 他提到: “2022 年已经到来,我们是时候反思 Web 开发中的种种过时软件、炒作歪曲和荒谬趋势了。把握这一年,我们也该重新专注于性能与技术运用,把手段和目的重新统一起来。当然,我不是劝大家用汇编或者 C 语言搞 Web 开发,但关于 JavaScript、Ruby on Rails、Python、Django 以及 PHP 框架的疯狂观点也该消停一下了。”
下载量和 Vue 一样大的开源软件被作者恶意破坏,数千款应用受到牵连
流行开源包“colors”与“faker”的用户们最近刚刚遭遇一场意外,毫无征兆的破坏导致应用程序在使用这些包后开始输出无法理解的乱码数据。这背后的原因竟然是开源软件包的作者 Marak Squires 故意引入了一个无限循环,让数千个依赖于“colors”与“faker”包的应用程序全面失控。
技术实践
不优雅的 React Hooks
时至 2021 年年底,React Hooks 已在 React 生态中大放异彩,席卷了几乎所有的 React 应用。而其又与 Function Component 以及 Fiber 架构几近天作之合,在当下,我们好像毫无拒绝它的道理。 但本文作者提出了不同的观点,聊了聊为何 React Hooks 让他又爱又恨。
继往开来的 sass 3 代编译器:ruby sass、node-sass、dart-sass
为了简化样式的描述,浏览器设计了 css 作为 DSL (领域特定语言)。css 写起来简单,但在很多方面都不太方便,比如不支持嵌套,代码比较冗余;不支持继承和混合,代码不好复用等。 为了给 css 扩展代码组织和动态计算的能力,社区出现了一些编译为 css 的预处理语言,比如 sass、less、stylus 等。 此外,还有 postcss 这种后处理器,它是从 css 编译到 css,编译的过程中做各种分析和转换。 less、stylus 的编译器都是 js 写的,而 sass 就比较特殊了,3 代编译器都不是 js 写的。 今天,我们就来聊下 sass 的历史:sass 的 3 代编译器。