React 的`scryRenderedDOMComponentsWithClass`方法名从何而来?
问题:React 的scryRenderedDOMComponentsWithClass方法名从何而来?
在测试 React 组件时,我正在阅读文档并找到scryRenderedDOMComponentsWithClass。我无法理解这个组件的功能,因为它无法发音,所以我不明白它的命名如何映射到它正在做什么的心理模型。 (有很多相关的名字,比如scryRenderedDOMComponentsWithTag。)
这个方法名的scry部分指的是什么?害怕?疾走?这个名字试图说明什么概念?
解答
简答
在这种情况下,“Scry”只是意味着“找到所有”。参见对ReactTestUtils.scryRenderedComponentsWithClass的评论。这是一个单词,不是缩写,它的发音像“cry”,但开头有一个“s”。
更长(和更书呆子)的答案
在同一个文件的其他地方,您会看到对DOM.scry的引用:
/**
* Todo: Support the entire DOM.scry query syntax. For now, these simple
* utilities will suffice for testing purposes.
* @lends ReactTestUtils
*/
zpao 在中解释了对 GitHub 问题的评论:
这是对内部 Facebook 模块的引用。它基本上是
querySelectorAll,具有处理旧浏览器和特殊情况的后备行为。它非常不起眼,实际上在这里翻译得不是很好(除了可能是scryRenderedDOMComponentsWithQSA或其他东西,但是嗯)。我们正在努力以其他方式改进测试,所以我认为我们现在没有真正想做的事情。
jimfb 在另一个 GitHub 问题中更进一步,解释说这个名字是对龙与地下城的引用:
过去,我们团队中有一群 D&D 粉丝。
供参考:
http://www.dandwiki.com/wiki/SRD:Scrying
http://www.dandwiki.com/wiki/SRD3e:Scry_Skill
https://en.wikipedia.org/wiki/Scrying
从历史上看,我们使用 scry 来指示一个帮助器,它可以找到一组结果。随着框架的成熟,我们应该开始根据函数的实际作用来选择函数名称,而不是那些对典型开发人员来说意义不大的幻想词。
虽然我同意这个词对大多数人来说意义不大,但值得注意的是“scry”是一个真正的英文单词:
占卜
[斯克拉希]
动词(不带宾语使用),scryed,scrying。
- 使用占卜来发现隐藏的知识或未来的事件,尤其是通过水晶球。
有趣的是,根据谷歌 Ngram Viewer](https://books.google.com/ngrams/graph?content=scry&year_start=1700&year_end=2008&corpus=15&smoothing=3&share=&direct_url=t1%3B%2Cscry%3B%2Cc0)中的[数据,这个词似乎在 19 世纪初期就不再正常使用,然后直到 1980 年代才变得默默无闻,大概是在 D&D 流行之后:

所以我不能说我反对 jimfb 将其称为“幻想词”,尤其是考虑到当我听到它时我的想象会产生什么样的意象。
更多推荐
所有评论(0)