问题标签 [terminology]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - 伪造,嘲笑和存根之间有什么区别?
我知道我如何使用这些术语,但我想知道是否有公认的faking、mocking和stubbing定义用于单元测试?你如何为你的测试定义这些?描述您可能使用每种情况的情况。
以下是我如何使用它们:
Fake:实现了接口但包含固定数据且没有逻辑的类。根据实现简单地返回“好”或“坏”数据。
Mock:一个实现接口并允许动态设置值以返回/异常以从特定方法抛出的能力并提供检查特定方法是否已调用/未调用的能力的类。
Stub:类似于模拟类,只是它不提供验证方法是否已被调用/未调用的能力。
模拟和存根可以手动生成或由模拟框架生成。假类是手工生成的。我主要使用模拟来验证我的类和依赖类之间的交互。一旦我验证了交互并通过我的代码测试备用路径,我就会使用存根。我主要使用假类来抽象出数据依赖关系,或者当模拟/存根太繁琐而无法每次设置时。
architecture - 什么是领域逻辑?
什么是领域逻辑?域逻辑的维基百科页面重定向到业务逻辑。它们是同一件事吗?如果不是,它们有何不同?
refactoring - 响应、结果、回复,哪个最好?
我正在重构一些客户端-服务器代码,它使用术语响应、结果和回复来表示同一件事(来自服务器的答案)。虽然它并不那么重要,但在编写新代码时很难猜测使用哪个词,所以我想将这三个术语统一为一个并进行适当的重构,但我不确定哪个词是“最好”,如果有这样的事情。
有什么基于优先级和标准来命名这个案例的建议吗?
language-agnostic - 为什么我有时会听到“词法变量”这个词?
我已经多次看到术语“词法变量”,主要是在闭包的上下文中。Paul Graham 在他关于 Lisp 的书中使用这个术语来指代使用 let 表达式定义的变量。
我知道词法作用域是静态作用域的另一个名称。词法变量只是在程序单元的引用环境中可见的变量吗?
我希望在这个假期用这个词给我的朋友和家人留下深刻的印象,有人可以帮帮我吗?
localization - 用于语言和文化感知软件的术语
我一直认为术语“国际化”和“本地化”(以及它们有趣的缩写 i18n 和 l10n)被普遍接受并用于谈论了解语言和文化差异的软件。但我最近阅读了一个关于这些主题的问题,其中提到了所谓的“全球化”,并且也被标记为这样。
因为在我想知道是否真的被其他人使用以及它与我认为已经建立和众所周知的术语相比之前我没有听说过这个术语,所以我去了标签页面并检查了不同的术语:
- 全球化(z|s)化:37 个问题
- 国际i(z|s)ation|i18n:122 个问题
- locali(z|s)ation|l10n:97 个问题
所以这似乎是一个不常见的术语。我发现它也令人困惑,因为它以某种方式混合了 i18n 和 l10n 这两个术语(至少对我而言,“全球化”让我想到了像attac这样的组织:)。据我所知,该术语源自 .net/Microsoft 术语。
所以我的问题是:你使用/喜欢哪些术语,你与这些术语有什么联系?此外,为什么微软选择使用不同的术语,甚至对于不熟悉它的人来说具有完全不同的含义?
ruby - Ruby 中的“猴子补丁”到底是什么意思?
根据维基百科,猴子补丁是:
一种在不改变原始源代码的情况下扩展或修改动态语言的运行时代码的方法 [...]。
同一条目中的以下语句使我感到困惑:
在 Ruby 中,monkey patch 一词被误解为对类的任何动态修改,并且通常用作在运行时动态修改任何类的同义词。
我想知道Ruby 中猴子补丁的确切含义。它是在做类似以下的事情,还是做其他事情?
user-interface - UI 术语:登录与登录
我正在制作一个应用程序,但无法决定是使用术语Login/out还是Logon/off。这两者之间有更正确的选择吗?我应该完全使用其他东西吗(比如“登录/注销”)。
在可用性方面,只要我保持一致,我选择哪个术语可能并不重要,但我确实想知道这些术语的起源——以及一个或另一个是否更符合语法意义。我也非常关心我正在创建的应用程序,并希望花时间研究其用户体验的各个方面。
security - To what does "zero day" refer?
Does "zero-day" or "0-day" (in context of software vulnerabilities and exploits) refer to the software release, or a particular type of exploit?
[I did not find an answer to this on SO. Though it is answered elsewhere on the Internet, my understanding of SO is that it's okay to ask/answer basic questions]
oop - 多态性 - 仅用两句话定义
我看过其他定义和解释,但没有一个能让我满意。我想看看是否有人可以在不使用任何代码或示例的情况下最多用两句话定义多态性。我不想听到“所以你有一个人/汽车/开罐器......”或者这个词是如何派生的(没有人对你知道 poly 和 morph 的含义印象深刻)。如果您非常了解什么是多态性并且对英语有很好的掌握,那么您应该能够用简短但密集的定义来回答这个问题。如果您的定义准确地定义了多态性,但过于密集以至于需要进行几次阅读,那么这正是我正在寻找的。
为什么只有两句话?因为定义简短而明智。解释很长,包含示例和代码。在此处查找解释(这些页面上的答案对我的问题不满意):
我为什么要问这个问题?因为我被问到同样的问题,我发现我无法给出一个令人满意的定义(按照我的标准,这是相当高的)。我想看看这个网站上是否有任何伟大的头脑可以做到这一点。
如果你真的不能做到两句话的要求(这是一个很难定义的主题),那么你再过去就可以了。这个想法是有一个定义,它实际上定义了多态性是什么,而不是解释它的作用或如何使用它(得到区别?)。
ide - 当您在名称后添加点时,向您显示成员的 IDE 弹出窗口的一般术语是什么?
我正在写一篇学术论文,我需要参考大多数面向 OO 语言的 IDE 中存在的功能,您可以在源代码中键入对象名称,添加点,然后会弹出一些内容并让您选择成员。
我正在寻找一个通用的(不是 IDE 特定的术语,尽管我也有兴趣了解这些),它专门指此功能和弹出窗口,而不是所有支持功能(例如,“内容辅助”或类似的东西) . 该术语应与大多数 IDE 中的成员列表或大纲视图区分开来。
我的论文涉及 Eclipse 和 Java,但我想知道是否有一个被广泛接受的术语。