问题标签 [theory]

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.

0 投票
18 回答
20352 浏览

您将如何从对象方法中访问对象属性?

从不是 getter/setter 方法的对象方法中访问对象属性的“纯粹”或“正确”方法是什么?

我知道从对象外部你应该使用 getter/setter,但从内部你会这样做:

爪哇:

PHP:

或者你会这样做:

爪哇:

PHP:

如果我的 Java 有点偏离,请原谅我,我已经一年没有用 Java 编程了......

编辑:

似乎人们假设我只是在谈论私有或受保护的变量/属性。当我学习 OO 时,我被教导要对每个单独的属性使用 getter/setter,即使它是公开的(实际上我被告知永远不要公开任何变量/属性)。所以,我可能是从一开始的错误假设开始的。似乎回答这个问题的人可能会说你应该拥有公共属性,而那些不需要 getter 和 setter,这与我所学的内容和我所说的内容背道而驰,尽管也许这需要讨论为好。不过,对于不同的问题,这可能是一个很好的话题……

0 投票
56 回答
734216 浏览

在 DB 中存储图像 - 是还是不是?

所以我正在使用一个将图像大量存储在数据库中的应用程序。您对此有何看法?我更倾向于将位置存储在文件系统中,而不是将其直接存储在数据库中。

你认为有什么优点/缺点?

0 投票
14 回答
243923 浏览

什么是图灵完备?

“图灵完备”的表达是什么意思?

你能给出一个简单的解释,而不涉及太多的理论细节吗?

0 投票
23 回答
340590 浏览

什么是 lambda(函数)?

对于没有计算机科学背景的人来说,计算机科学领域的 lambda 是什么?

0 投票
15 回答
99570 浏览

PHP中的接口有什么意义?

接口允许您创建定义实现它的类的方法的代码。但是,您不能向这些方法添加任何代码。

抽象类允许您做同样的事情,以及向方法添加代码。

现在如果你可以用抽象类实现同样的目标,为什么我们还需要接口的概念呢?

有人告诉我,它与从 C++ 到 Java 的 OO 理论有关,这是 PHP 的 OO 东西所基于的。这个概念在 Java 中有用但在 PHP 中没有用吗?这只是一种避免在抽象类中乱扔占位符的方法吗?我错过了什么吗?

0 投票
6 回答
745 浏览

典型问题列表

有没有人知道规范 CS 问题的良好参考?

我在想诸如“分类问题”、“装箱问题”、“劳苦推销员问题”之类的东西。

编辑:首选网站

0 投票
6 回答
44359 浏览

耦合和内聚

我试图将耦合和内聚的概念归结为一个简洁的定义。有人可以给我一个简短易懂的解释(比维基百科上的定义短这里这里)?他们如何互动?

谢谢。

有人有一个好的,简短的例子吗?

0 投票
7 回答
4996 浏览

什么是 DSL,我应该在哪里使用它?

我听到越来越多的关于领域特定语言被抛出以及它们如何改变你处理业务逻辑的方式,我也看过Ayende 的博客文章和东西,但我从来没有真正明白我为什么要接受我的业务远离我在提供程序中使用的方法和情况的逻辑。

如果你有一些使用这些东西的背景,你可以用真正的外行术语来表达:

  • 构建 DSL 究竟意味着什么?
  • 您使用什么语言?
  • 在哪里使用 DSL 有意义?
  • 使用 DSL 有什么好处?
0 投票
11 回答
14119 浏览

如何测试随机性(例如 - 洗牌)

首先,这个问题是从这个问题中删除的。我这样做是因为我认为这部分比一个较长问题的子部分更大。如有冒犯,请见谅。

假设您有一个生成随机性的算法。现在你如何测试它?或者更直接地说——假设你有一个洗牌的算法,你如何测试它是一个完全随机的算法?

为这个问题添加一些理论 - 一副纸牌可以在 52 中洗牌!(52阶乘)不同的方式。拿一副牌,用手洗牌,写下所有牌的顺序。你得到那个洗牌的概率是多少?答案:1 / 52!。

洗牌后,你依次得到每种花色的 A、K、Q、J ……的机会是多少?回答 1 / 52!

因此,只需洗牌一次并查看结果,您绝对不会获得任何关于洗牌算法随机性的信息。两次,你有更多的信息,三个甚至更多......

您将如何黑盒测试洗牌算法的随机性?

0 投票
6 回答
2166 浏览

证明多线程算法的正确性

多线程算法特别难以设计/调试/证明。Dekker 算法是一个很好的例子,说明了设计一个正确的同步算法是多么困难。Tanenbaum 的现代操作系统在其 IPC 部分中充满了示例。有没有人对此有很好的参考(书籍,文章)?谢谢!