孜孜不倦的程序员

捕获重要的业务逻辑

Ted Neward

 

Ted Neward考虑到这是四月份,该杂志在你家门口到达 (或邮箱或电子邮件收件箱或......不论) 上或周围 4 月 1 日,在某处,说日期通常称为美国和其他西方国家在"愚人节",它似乎是适当做列在其中,我们可以捕获重要业务逻辑的语言。(请注意首都那里 ; 这就是崇拜的如何的商界人士始终指任何可笑的新功能,他们想要的因此它才适当我们提及它与相同程度和应有的尊重。它是重要的是要注意到它最重要的是当我们捕获说重要的业务逻辑,我们这样做,有这种严肃和诚恳的态度 ; 这意味着这样做的企业所有者和客户代表 (和大部分的市场营销部) 可以理解的语言。

也是如此严重和真诚的风范我向你介绍在.NET 编程工具箱中重要的语言:LOLCODE。

LOLCODE

长久以来科学家和狗主人都猫真的不能沟通业主的意见,虽然认识养猫的人已有多年,他们很好沟通 — — 只是问其猫刚刚告诉他,尽管事实上是5 上午,正是时候,猫美联储的任何猫的 co-residing 人。(对于新手来说,这类活动通常涉及到耳边大声叫,头烟蒂鼻子、 无辜的表达式,以及偶尔很轻微弯曲猫的爪到人类身体敏感部件)。

然而,自从猫发现机械鼠标,静悄悄的革命一直在通过互联网:猫也稳步提高通信的张贴图片本身带有标题写什么许多人类学家和历史学家们在他们能力 (所有的人都是爱猫 — — 热爱狗的人类学家和历史学家曾经"不可用",对此发表评论) 同意基本构建块的所有人类的语言。这种基本的语言有时指尚未完全由人类按名称"LOLspeak"。(它的例子可以发现在你的 Facebook 和 twitter 的消息来源,所以不要假装你不知道我所指)。

幸运的是,熟悉.NET 平台的善意猫拥有工程师们已经将这种语言扩展到.NET 平台 ; 两个这种努力,事实上,在的地方,但遗憾的是只有一个已存活到今天。首先是基于动态语言运行时 (DLR) 上从马丁马利和约翰 · 林回在 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 的演示文稿基础 (WPF) GUI 或东西。 出于此原因,LOLCODE 编译器还支持无处不在"/ 目标: 库"选项可产生标准的.NET 库集 — — 这样做,但是,仍然会产生".exe"-后缀大会,与一个 Main 方法,目前在程序中,即使主要只是不执行任何操作。 这是实际上相当符合其他假定文件的顶部是作为一个整体 ; 程序的入口点的现代语言 LOLCODE 只正在始终提供主要的额外的步骤,因为一个 (即使是空的) 始终是本。

是否编译为一个库或可执行文件,LOLCODE 总是环绕所生成的代码到一个类名为"计划"。没有命名空间的功能 — — 不自重的动物医院绝不会接受某一姓名,要么。

即将成为关键任务的最佳实践

虽然 LOLCODE 是强大的不幸的是它接受了尚未达到点许多业务分析师和客户代表瞭解表示业务逻辑中它的好处。 幸运的是,正在开放源代码,对语言的扩展很容易,和这种语言预计 2014 年成为行业标准的任务关键型最佳实践。 为获得最佳结果,鼓励动手编码会话中展示的 LOLCODE 电源,最好是在没有预警或进展高层会晤注意的建筑师。 祝您工作愉快!

Teb Neward  完全使所有此向上,除了有关 LOLCODE 语言的部分 — — 所有这一切都是千真万确。他已经写一百多篇,并编著或合著十几本书,其中包括"专业 F # 2.0"(Wrox,2010年),但没有作为像这篇文章是一个笑话。他是 F # MVP,在世界各地的会议上讲话。他已被劝谕由律师不发布任何手段达成他,以避免建筑师们遵循的咨询意见,这最后一位愤怒的信件,但本专栏的读者已经将知道如何与他联系。

感谢以下技术专家对本文的审阅 Neward 家庭中:滑板车、 阴影、 公主和先生。 绒毛绒毛