2009-09-14 276 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. 這個建議有點荒謬嗎?