为什么 Solid.js 源代码中的注释很少?

问题描述 投票:0回答:1

我正在阅读 Solidjs 的源代码,但我发现代码中的注释很少。 Solid.js 比 React 简单很多,但是很多注释可以从 React 的代码中找到。我的意思是为什么开发人员要为关键代码块写一些注释?对我来说真的很难理解一些代码。

即以下代码:

let Listener: Computation<any> | null = null;
export let Transition: TransitionState | null = null;
let Scheduler: ((fn: () => void) => any) | null = null;

很难学习代码背后的思想。也许在某个地方可以了解开发人员的灵感?如果有请帮我介绍一下

coding-style solid-js
1个回答
0
投票

缺少注释并不一定意味着缺少文档,但你说对了一部分,因为内部 API 没有足够的文档记录。我相信有几个因素:

  1. 核心团队很小,大部分代码由其创建者 Ryan Carniato 编写,并由他维护。

  2. 没有 React 代码那么多的优化技巧,因为 Solid 足够快。因此,没有极端情况,代码足够干净,可以通读。

  3. 年轻且不断发展的项目。 API 稳定但 Solid 并未广泛用于生产应用程序。有模式和用例出现。当项目成熟时,它将被重写,并希望它能被更好地记录下来。

  4. 关于其核心逻辑和设计决策,有详细的文章和屏幕截图。

同样,暴露的 API 有很好的文档记录,并且有足够多的示例。内部 API 非常小且干净,足以阅读。

现在,解释问题中的代码片段:

代码属于信号的内部API。

Listener
用于在处理某些代码时存储侦听器,也就是效果。

Transitions
也是用于异步一致性的效果。它们用于延迟状态更新,直到转换完成。它是批量更新的一种形式,但与异步代码相关。

您可以阅读有关异步一致性的更多信息:https://dev.to/this-is-learning/why-all-the-suspense-understanding-async-consistency-in-javascript-frameworks-3kdp

Scheduler
用于安排 UI 更新。在常规的 pub-sub 模型中,订阅者被回调并且事件链立即运行且不受干扰。但是,如果您有很多移动件,则这不是最佳选择。 Scheduler 允许 Solid 运行时在运行效果时切换任务。

© www.soinside.com 2019 - 2024. All rights reserved.