2009-09-14 109 views
1

我已阅读软件设计中的Zero One Infinity rule固定长度整数数据类型

为什么叫做这个?基于软件和工程师的实际行为,这不是更好的称之为零二十亿一百四十八百万四百三十六百四十八规则,或者也许是零四十亿两百九十四万九百九十六七千二百九十六规则?

+0

百科:http://en.wikipedia.org/wiki/Zero_One_Infinity – 2009-09-14 10:35:09

+0

@Workshop亚历克斯 - 在:) – 2009-09-14 10:35:56

+0

好主意笑编辑! – JohnM 2009-09-14 10:37:20

回答

0

规则的要点是不应该有“幻数”的上限。然而,实际上很难实现这一点,因为实施的一些限制如整数的宽度和类似的东西。关键是当你从N位整数移动到N + K位整数时,软件设计应该自然处理 - 你不应该因为这种改变而重新设计所有的东西。整数表示限制在这里不应该是“幻数”。

+0

我同意他们不应该是魔术数字:问题是,他们为什么?如果几十年前的Lisp可以将本质作为本地数字处理,那我们有什么抱歉的借口? – 2009-09-14 10:51:15

+0

顺便说一下,我自己使用魔法数字,因为我只是想完成工作而不想一般情况下的一切。在我最近制作的一个高档图书馆中,基数1000是一个神奇的数字,为了让自己(和其他人)掌握它,我给出了诸如chilAdd,chilSub等的函数名,其中“chil”是chiliadic的简写。 – 2009-09-14 10:53:20

0

因为这只是建议人为地限制一个实体的实例数量是愚蠢的。人们可以很容易地证明确保某物存在零(即黄色大象)。人们也可以证明只有一件事(即一位妻子或丈夫)是合理的。然而,过了这个限制,就更难说“我们只允许5 Foos” - 限制往往(但并非总是),相对随意 - 有人总是想要6或15等。

因为这只是为人类设计的经验法则,无限的上限被解释为“尽可能多的”。将它固定在一个给定的数字上就会破坏规则的重点。

+0

那么,为什么“我们只允许32位”(对于一个整数)呢? – 2009-09-14 10:45:24

+0

我们不 - 这是一个实施选择。许多语言/框架都有任意的精度整数 – 2009-09-14 11:16:50

0
  1. 该建议会根据您的产品的实施细节更改规则名称。
  2. 该建议使规则名称难以实施。
  3. 这个建议有点荒谬吗?