本文共 683 字,大约阅读时间需要 2 分钟。
审核本书的人常常问我,有没有一些“设计优良语言”的技巧。毕竟,语言设计很特别,我们不希望这个世界上充斥着糟糕的语言。我想分享一些好的建议,但我坦白,真没什么好办法。
如同任何写作一样,DSL的总体目标就是对读者要清晰。我们希望本书的典型读者,可能是程序员,抑或是领域专家,能够尽可能快速清晰地理解DSL里句子的意图。虽然我觉得可能无法告诉你如何做到这一点,但是我的确觉得在工作中牢记这一点非常有价值。总的说来,我是迭代设计的粉丝,这次也不例外。尽早从目标受众那里获得反馈。准备多种方案,看看人们的反应。要得到一种好的语言,总会经历尝试和失败,不要怕走弯路。尝试得越多,越有可能走上正确的道路。不要担心在DSL以及“语义模型”(第11章)里用到领域中的术语。如果DSL的用户熟悉这些术语,他们就应该在DSL里看见。术语有助于增进领域内的沟通,即便对外人来说有些奇怪。此外,还要记得采用我们日常生活里的通用约定。如果每个人都用Java或C#,就用“//”表示注释,用“{”和“}”表示分层结构。还有一点,我觉得需要特别警示一下:不要试图让DSL读起来像自然语言。为了这个效果,有人用通用语言做过各种尝试,Applescript是其中最著名的例子。问题在于,这种尝试会引入很多语法糖,这会增加语义理解的难度。记住,DSL是一种程序设计语言,所以,使用它感觉应该像编程,同自然语言相比,程序设计语言应该更加简洁且准确。尝试让程序设计语言看上去像自然语言,只会让大脑陷入错误的上下文;同程序打交道时,务必记住,你得按程序的规矩办事儿。转载地址:http://ruqta.baihongyu.com/