问题标签 [design-decisions]

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 投票
2 回答
1787 浏览

python - numpy.split 返回列表而不是数组的基本原理?

我很惊讶会numpy.split产生 alist而不是array. 我会认为返回一个 会更好array,因为numpy已经投入了大量工作来使数组比列表更有用。任何人都可以证明numpy返回 alist而不是 a 是合理的array吗?为什么这对 numpy 开发人员来说是一个更好的编程决策?

0 投票
4 回答
203 浏览

java - 设计决策 - Math.java 中单独的 RandomNumberGeneratorHolder 类的用途/优势是什么?

所以我浏览了Math.java源代码,我发现创建了一个持有者类来保存randomNumberGenerator静态变量。这是相关的代码。

IMO,我们可以简单地在类本身中声明randomNumberGeneratoras 。private static finalMath

我的问题是,为此创建一个单独的持有者类有什么好处吗?或者这只是个人喜好。

0 投票
3 回答
83 浏览

java - 为什么选择ConcurrentModificationException的设计标准只是结构修改

我确实明白,只要在创建迭代器后对基础集合进行结构修改,就会引发 ConcurrentModificationExcpetion。这似乎是一个设计决定。

我想知道为什么 CME 不考虑通过 set() 方法进行更新?最终,集合正在更新,如果创建了迭代器,遍历仍然可能导致结果不一致。

0 投票
1 回答
560 浏览

c++ - 为什么 x86-64 使用 IA-64 C++ ABI?

x86-64 psABI

9.1 C++

对于 C++ ABI,我们将使用 IA-64 C++ ABI 并适当地实例化它。该 ABI 的当前草案可在以下位置获得:

http://mentorembedded.github.io/cxx-abi/

为什么不设计自己的 ABI?

0 投票
1 回答
68 浏览

java - java - 除了switch case和if/else之外,如何在java中实现许多条件?

需要实现一个要求,如果使用 switch case 或很多 if/else 实现,代码流将根据很多情况来决定!

要实现的示例代码:

除了 if/else 语句或 switch 案例之外,还有更好的方法来编写此类案例吗?

类似于工作流引擎的内部实现的东西,jBPM但我实际上不能包含工作流引擎,因为它使应用程序变得繁重!

任何建议表示赞赏!

0 投票
4 回答
459 浏览

c++ - 如果堆栈在数字较低的地址处增长,为什么指针比较会反转呢?

由于堆栈向下增长,即朝着数字较小的内存地址增长,为什么这样做&i < &j是正确的。如果我错了,请纠正我,但我想这是 C 创建者的设计决定(C++ 维护)。但我想知道为什么。

同样奇怪的是,堆分配的对象pin位于数值上比堆栈变量更高的内存地址,这也与堆位于数值上小于堆栈的内存地址(并且向上增加)的事实相矛盾。

到目前为止我是对的吗?如果是这样,为什么 C 设计人员会扭转这种情况,即数字较小的内存地址看起来更高(至少在您比较指针或通过 addressof 运算符时&)。这样做只是为了“让事情顺利进行”吗?

0 投票
2 回答
72 浏览

python - 在基于文本的冒险中尝试选择种族时,为什么我的角色表不能与 input() 一起使用?python3.x

所以这只是我知道我将会遇到的一长串问题的开始。在这个基于文本的冒险中,我希望最终有谜题和多个分支路径,你最终可以加入的派系,影响情况道德的选择对话(如质量效应或科托尔,但是..基于文本的)等等,等等.,但我觉得早期设置对于这次学习之旅非常重要。我还希望最终将其转换为 PYQT5,并可能最终在我为我的投资组合构建的网站上使用 UI 托管它。我只是想把它排除在外,以防你经常在这里看到我。如果您愿意,请私信我(因为我绝对可以使用守护神的帮助!)。

好的,所以手头的问题是:

我有一个种族列表可供选择:

我希望它要求玩家“选择比赛”。在玩家输入他们想玩的内容后,它会询问“你确定吗?” |这就是我卡住的地方| 如果玩家说“是”,它会结束程序,我可以尝试继续构建这个应用程序。如果玩家输入“否”,它不会返回到原始问题并允许他们再次回答。

所以,我尝试过的东西被定义为不同的方法:

我认为我糟糕的代码尝试就我一直在尝试的东西而言不言自明。

期望的结果示例:

我尝试了几种不同的方法来获得所需的结果,但它们似乎不起作用。我应该建立一个有限状态机吗?我该怎么做?长寿和使代码模块化以供将来更新的最佳方法是什么?

0 投票
1 回答
68 浏览

c++ - 如何避免在数据结构中包含作为字段存储的类?

假设我有一个Squad带有Units 动态数组的类。我正在寻找一种方法来避免将#include“Unit.h”插入“Squad.h”和后者的用户。全球的想法是避免#includes 导致其他人 - 这是一件非常烦人的事情。

我找到了一个像这样的简单解决方案:

(将前向声明Unit的 s 放在std::vector里面Squad会失败,因为它需要自己Squad的用户#include Unit,否则vector无法分配。)

问题一:这种做法可以接受吗?当然,我不会std::vector每次都重写(和其他人)的胆量,但是使用.cpp 中的template<typename T> T* reallocate(T*, size_t current, size_t needed)for later s 之类的算法制作标题似乎是可以忍受的。#include

问题二:有更好的解决方案吗?我知道 pimpl 习惯用法,但不喜欢频繁的小堆分配。

顺便说一句,当我需要像 std::unordered_map 这样更复杂的数据结构时,我该怎么办?更换一个数组并不难,但也有像这样的“更糟糕”的情况。

0 投票
0 回答
495 浏览

c++ - 我应该使用 std::optional 还是继承添加可选的类成员?

我有class Item,本身没有兴趣。但是,我需要一些Item像衣服或武器这样的装备,它们需要额外存储一个enum class Limb代表身体部位的物体,可以装备它们。此外,普通Item的 s 必须与 "gear" 一起放置Item在单个 STL 容器中,并且可能稍后取出,可能作为 "gear" Item。我在这里看到两个选项:继承

或者std::optional

我喜欢第一个用于可扩展性和编译时类型检查的函数,当一个函数需要Gear(不仅仅是一个Item)而不是assert(item.is_gear())它内部的运行时。

第二个在速度方面似乎更好(即使没有预期的性能问题,我也喜欢关心它)和设计自然性:我不需要了解任何其他classes 和工程时的特殊用例Item(例如,像在第一个变体中那样制作它的析构函数virtual会破坏它)这看起来像是干净和无辜的设计。

哪个决定会更好,为什么?还是有更好的解决方案?

0 投票
1 回答
50 浏览

c++ - 函数如何要求其调用者类调用其方法之一?

我处于这样的情况:

我想Callee::request()请求调用其中一个Caller::invoke()成员函数,具体取决于上下文,可以在 inCallee::request()或 in 中计算Caller::call()

哪些解决方案会很优雅?我不想要(从最重要到最不重要):

  • Callee了解 的定义Caller
  • 使用模板;
  • Callee了解声明Caller
  • Callerinvoke()自行选择;

如果Callee::request()Caller.