Rebol 程式設計/設計指南/簡約至上
外觀
< Rebol 程式設計 | 設計指南
沒錯,要簡潔,但不要簡單。
大多數初學者指令碼過於複雜。
編寫簡潔優雅的程式碼更難。
- 努力保持程式碼簡潔。
- 將每個指令碼視為未完成的,直到您刪除所有不必要的程式碼和資料。
小型、簡潔的指令碼更易於閱讀和維護。
“設計師知道他達到完美並非是當他不再能新增任何東西時,而是當他不再能去除任何東西時。” - 安託萬·德·聖-埃克蘇佩裡
例如,要返回一個月中的天數,您可以編寫類似以下內容
data-block: [
"January" 31 "February" 28 "March" 31
"April" 30 "May" 31 "June" 30
"July" 31 "August" 31 "September" 30
"October" 31 "November" 30 "December" 31
]
month: {June}
print first skip find data-block month 1
它可以工作...... 但對於它提供的功能來說有點長了。
- 您不需要將月份作為字串儲存
- 資料塊不是一個非常描述性的名稱。也許days-in-month會更好
- Rebol 的路徑符號使您能夠直接導航到答案,因此您不需要使用find並擔心在找到所需值後您在序列中的位置
- 您不需要定義像 'month' 這樣的變數來儲存可以直接訪問的值
這應該更容易理解和維護
days-in-month: [ January 31 February 28 March 31 April 30 May 31 June 30 July 31 August 31 September 30 October 31 November 30 December 31 ] print days-in-month/June
或者我們不需要為月份塊定義一個變數
print select [ January 31 February 28 March 31 April 30 May 31 June 30 July 31 August 31 September 30 October 31 November 30 December 31 ] 'June
現在您可能會決定將其製作成一個函式,以便可以重複使用它,或者您可能有一種強烈的預感,因為您需要這個函式,所以其他人已經寫過它了。
如果您決定將其製作成一個函式,您現在就可以新增閏年判斷。