跳轉到內容

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

現在您可能會決定將其製作成一個函式,以便可以重複使用它,或者您可能有一種強烈的預感,因為您需要這個函式,所以其他人已經寫過它了。

如果您決定將其製作成一個函式,您現在就可以新增閏年判斷。

華夏公益教科書