本文章是由機器翻譯。

程式設計師雜談

擷取重要的商業邏輯

Ted Neward

 

Ted Neward考慮到這是四月份,該雜誌在你家門口到達 (或郵箱或電子郵件收件匣或......不論) 上或周圍 4 月 1 日,在某處,說日期通常稱為美國和其他西方國家在"愚人節",它似乎是適當做列在其中,我們可以捕獲重要業務邏輯的語言。(請注意首都那裡 ; 這就是崇拜的如何的商界人士始終指任何可笑的新功能,他們想要的因此它才適當我們提及它與相同程度和應有的尊重。它是重要的是要注意到它最重要的是當我們捕獲說重要的業務邏輯,我們這樣做,有這種嚴肅和誠懇的態度 ; 這意味著這樣做的企業擁有者和客戶代表 (和大部分的市場行銷部) 可以理解的語言。

也是如此嚴重和真誠的風範我向你介紹在.NET 程式設計工具箱中重要的語言:LOLCODE。

LOLCODE

長久以來科學家和狗主人都貓真的不能溝通業主的意見,雖然認識養貓的人已有多年,他們很好溝通 — — 只是問其貓剛剛告訴他,儘管事實上是 5 上午,正是時候,貓美聯儲的任何貓的 co-residing 人。(對於新手來說,這類活動通常涉及到耳邊大聲叫,頭煙蒂鼻子、 無辜的運算式,以及偶爾很輕微彎曲貓的爪到人類身體敏感部件)。

然而,自從貓發現機械滑鼠,靜悄悄的革命一直在通過互聯網:貓也穩步提高通信的張貼圖片本身帶有標題寫什麼許多人類學家和歷史學家們在他們能力 (所有的人都是愛貓 — — 熱愛狗的人類學家和歷史學家曾經"不可用",對此發表評論) 同意基本構建塊的所有人類的語言。這種基本的語言有時指尚未完全由人類按名稱"LOLspeak"。(它的例子可以發現在你的 Facebook 和 twitter 的消息來源,所以不要假裝你不知道我所指)。

幸運的是,熟悉.NET 平臺的善意貓擁有工程師們已經將這種語言擴展到.NET 平臺 ; 兩個這種努力,事實上,在的地方,但遺憾的是只有一個已存活到今天。首先是基於動態語言運行時 (DLR) 上從馬丁馬利和John林回在 DLR 是新 (2007 年),但它似乎已經消失時,才執行。二是圍繞同一時限內,但編譯成.NET 程式集的代碼而不是解釋源直接從專案。該專案位於 bit.ly/AJeM 和開放源碼是容易通過顛覆通過一個"svn 檢出 HTTP://lolcode-dot-net.googlecode.com/svn/trunk/"命令在您的本地命令列視窗。一旦生成,我們可以開始探索這種令人驚異和功能強大的語言。

LOLCODE 語言的完整詳細資訊,簽出 LOLCODE Web 網站 lolcode.com,並在特定的簽出 LOLCODE 語言規範,這些都是歐洲貓程式師協會 (ECPA) 標準,在 lolcode.com/specs/1.2。LOLCODE.NET 實現大部分 (如果不是全部) LOLCODE 1.2,這是最新的 LOLCODE 標準。

當然,任何人都寫過任何新的語言的第一個程式必須為該語言版本的"Hello World,"和我們深入研究 LOLCODE 會有什麼不同:

HAI
  BTW Greet the people
  VISIBLE "Hello, world!"
KTHXBYE

每個 LOLCODE 程式開頭的傳統的問候語,"海",終止與傳統閉幕,"KTHXBYE"。隨著 LOLCODE 中的所有關鍵字,這些是區分大小寫,必須鍵入全部大寫。 "可見",正如可能推斷,要寫入標準輸出流的命令和"BTW"是單行注釋。 (多行注釋打開帶有"OBTW"和"TLDR"結尾)。

使用"lolc"編譯器生成從 LOLCODE.NET 源樹給了我們傳統的.NET 程式集,原始檔案的名字命名 (在傳統時尚的.NET 編譯器),所以如果在前面的代碼存儲在"hello.lol,"然後"hello.exe"包含中間語言 (IL)。

我有紗

LOLCODE 認識到在世界上有只有四種類型:字串 (紗)、 數位 (NUMBR)、 布林值 (TROOF) 和陣列 (BUKKIT),但因為貓也永遠不會直到最後可能的時刻做出任何承諾,變數聲明中 (使用"我 HAS A"語法) LOLCODE 是非類型化之前的值賦給它。 更重要的是,因為一隻貓將永遠不會追究決定甚至一旦作出決定,LOLCODE 中的變數是靈活類型的意味著一個變數可以容納任何值,更改其作為必要以反映新的值的類型:

I HAS A COOLVAR ITZ THREE
LOL COOLVAR R 3

第一行代碼聲明一個名為"COOLVAR"變數,並將其分配的字串 (紗) 值三。 第二行代碼將該同一變數設置為 NUMBR 類型的值 3。 任何未初始化的變數包含 null 值,"小白"。

關鍵字一樣,變數是區分大小寫,並可以使用大小寫混合的雖然地道 LOLCODE 表明所有首都為清楚起見。 像 C# 中,變數名必須以字母開頭,但然後可以包含字母、 數位或底線。

從主控台讀取是完成使用"GIMMEH"命令,以便迎接使用者、 問他的名字,並列印它回他的第二個程式如下所示:

HAI
  I HAS A NAME ITZ "Ted"
  VISIBLE "d00d type in ur name"
  GIMMEH NAME
  VISIBLE "d00d ur name is " NAME
KTHXBYE

在主控台中的 l33tspeak 不需要的語言的一部分,而認為是慣用法上正確和很好的形式。

流量控制

If/then 構造創建的虛假分支的"伊斯蘭會議組織"的結束標誌的表達,運算式之後,使用"YA RLY"來定義真理分支的表達與"無圍"配售"O RLY?"if/then 構造完全。 如果這是美觀多個語句可以是以逗號分隔的單個行上。 如果有兩個以上可能分支 (其他的、 少的動物醫院友好的語言叫"else if"),然後這是鑒於由"他和"之間的"YA RLY"和"無圍"塊定義的塊。 比較操作完全列出 LOLCODE 1.2 規範,但"殼牌推出"(平等) 和"DIFFRINT"(不平等) 經營者很可能是最常用的比較,是真正的大多數現代程式設計語言。 對於布林操作,"兩個 <x> <y>"給我們邏輯-和"要麼 <x> [] <y>"給我們邏輯 OR 和"贏得的 <x> [] <y>"給我們邏輯異或。

迴圈被指使用"IM 中 YR <label>"關鍵字來迴圈結構的開始和結尾的"IM OUTTA YR <label>"構造 ; 無條件終止迴圈構造的開始時,發出的"TIL"或"WILE"運算式中,該迴圈將運行無限直至終止由"走開"運算式"IM 出 YR"關鍵字後立即返回控制。

所有這一切都放在一起,例如,您有以下程式:

HAI
  I HAS A NAME ITZ ""
  IM IN YR LOOP
    VISIBLE "Gimmeh ur name or 'gtfo' to GTFO"
    GIMMEH NAME
    SAEM NAME AN "gtfo", O RLY?
YA RLY, VISIBLE "L8r!", GTFO
      NO WAI, VISIBLE "Yo " NAME
    OIC
  IM OUTTA YR LOOP
KTHXBYE

請注意迴圈"迴圈"是一個無限迴圈,沒有終止條件與使用"走開"中的"雅 RLY"分支"殼牌推出...... O RLY?"有條件要終止程式,在事件中的使用者類型"走開"作為輸入。

如何 DUZ 我......

良好的程式設計實踐要求代碼被分離成容易消耗單位,和 LOLCODE 不會的嚴重的業務準備語言,它是不具備類似的功能。 通過使用"如何 DUZ 我"和"如果 U 說那麼"關鍵字對,您可以定義可以調用來進行操作的函數:

HAI
  HOW DUZ I GREET
    I HAS A NAME ITZ "Ted"
    VISIBLE "d00d type in ur name"
    GIMMEH NAME
    VISIBLE "d00d ur name is " NAME
  IF U SAY SO
  GREET
KTHXBYE

這將定義一個函數,"要事",然後使用從主程式迎接使用者並回顯他的名字。 "年"的名稱對提供給函數的參數。

我可以 HAZ 圖書館嗎?

LOLCODE 真正的優勢當然,在編寫程式的枯燥和乏味部分不是 (真貓不肯屈尊到枯燥而乏味的課程) ; 相反,LOLCODE 的真正優勢在於捕捉重要的業務邏輯和揭露它通過 Web 服務或Windows Presentation Foundation(WPF) GUI 或東西。 出於此原因,LOLCODE 編譯器還支援無處不在"/ 目標: 庫"選項可產生標準的.NET 庫集 — — 這樣做,但是,仍然會產生".exe"-尾碼大會,與一個 Main 方法,目前在程式中,即使主要只是不執行任何操作。 這是實際上相當符合其他假定檔的頂部是作為一個整體 ; 程式的進入點的現代語言 LOLCODE 只正在始終提供主要的額外的步驟,因為一個 (即使是空的) 始終是本。

是否編譯為一個庫或可執行檔,LOLCODE 總是環繞所生成的代碼到一個類名為"計畫"。沒有命名空間的功能 — — 不自重的動物醫院絕不會接受某一姓名,要麼。

即將成為要徑任務的最佳實踐

雖然 LOLCODE 是強大的不幸的是它接受了尚未達到點許多商務分析師和客戶代表瞭解表示業務邏輯中它的好處。 幸運的是,正在開放原始碼,對語言的擴展很容易,和這種語言預計 2014 年成為行業標準的任務關鍵型最佳實踐。 為獲得最佳結果,鼓勵動手編碼會話中展示的 LOLCODE 電源,最好是在沒有預警或進展高層會晤注意的建築師。 編碼愉快 !

Ted Neward 完全使所有此向上,除了有關 LOLCODE 語言的部分 — — 所有這一切都是千真萬確。他已經寫一百多篇,並編著或合著十幾本書,其中包括"專業 F # 2.0"(Wrox,2010年),但沒有作為像這篇文章是一個笑話。他是 F # MVP,在世界各地的會議上講話。他已被勸諭由律師不發佈任何手段達成他,以避免建築師們遵循的諮詢意見,這最後一位憤怒的信件,但本專欄的讀者已經將知道如何與他聯繫。

感謝以下技術專家對本文的審閱 Neward 家庭中:滑板車、 陰影、 公主和先生。 絨毛絨毛