1.3.3 DSL的結(jié)構(gòu)
本文關(guān)鍵詞:領(lǐng)域?qū)S谜Z(yǔ)言實(shí)戰(zhàn),由筆耕文化傳播整理發(fā)布。
> 其他綜合 > 領(lǐng)域?qū)S谜Z(yǔ)言實(shí)戰(zhàn) 1.3.3 DSL的結(jié)構(gòu) 2013-10-09 16:24:09 我要投稿
本文所屬圖書 > 領(lǐng)域?qū)S谜Z(yǔ)言實(shí)戰(zhàn)
《領(lǐng)域?qū)S谜Z(yǔ)言實(shí)戰(zhàn)》不僅介紹如何使用DSL 解決問(wèn)題,還會(huì)使用Ruby、Groovy、Scala、Clojure 等現(xiàn)代語(yǔ)言闡述DSL 的設(shè)計(jì)與實(shí)現(xiàn),針對(duì)這些語(yǔ)言所代表的不同編程范式深入討論其在DSL 設(shè)計(jì)上的優(yōu)劣。本書共分三部 立即去當(dāng)當(dāng)網(wǎng)訂購(gòu)
圖1-3展現(xiàn)了DSL腳本怎樣將共通語(yǔ)匯聯(lián)系到解答域的實(shí)現(xiàn)模型。
設(shè)計(jì)得當(dāng)?shù)腄SL應(yīng)該體現(xiàn)以下三項(xiàng)原則,以便與領(lǐng)域用戶更好地“溝通”。
DSL要為問(wèn)題域制品提供直接的映射。如果問(wèn)題域有一個(gè)名為Trade的實(shí)體,,那么DSL腳本就必須包含同樣名稱同樣角色的一個(gè)抽象。
DSL腳本必須使用問(wèn)題域的共通語(yǔ)匯。這些語(yǔ)匯將成為開發(fā)者與業(yè)務(wù)用戶增進(jìn)交流的催化劑。如圖1-3所示,當(dāng)業(yè)務(wù)用戶與軟件中的領(lǐng)域模型交互的時(shí)候,DSL腳本就是他們的用戶界面。
DSL腳本必須對(duì)底層實(shí)現(xiàn)進(jìn)行抽象。這是抽象設(shè)計(jì)的一項(xiàng)重要原則,對(duì)于DSL的設(shè)計(jì)同樣適用。DSL腳本中不可以出現(xiàn)因?yàn)閷?shí)現(xiàn)細(xì)節(jié)而引入的非本質(zhì)復(fù)雜性 。
圖1-3 DSL腳本將實(shí)現(xiàn)模型表示為領(lǐng)域語(yǔ)言。腳本中的用詞都出自共通語(yǔ)匯,使用戶對(duì)語(yǔ)言感覺(jué)更自然
在圖1-3中,“DSL腳本”節(jié)點(diǎn)與其他節(jié)點(diǎn)的聯(lián)系即為以上三項(xiàng)原則的形象表示。只要在設(shè)計(jì)中牢記這些原則,你所設(shè)計(jì)的DSL就能充分發(fā)揮與領(lǐng)域用戶“溝通”的效果。下一節(jié)將講述DSL的執(zhí)行模型——當(dāng)用戶運(yùn)行軟件時(shí)DSL腳本及其實(shí)現(xiàn)模型是如何呈現(xiàn)給用戶的。
點(diǎn)擊復(fù)制鏈接 與好友分享!回本站首頁(yè) 您對(duì)本文章有什么意見或著疑問(wèn)嗎?請(qǐng)到論壇討論您的關(guān)注和建議是我們前行的參考和動(dòng)力 上一篇:1.3.2 流行的幾種DSL 下一篇:1.4 DSL的執(zhí)行模型 相關(guān)文章1.1 簡(jiǎn)介和CMMI入門
1.1.1 cmmi入門
1.1.2 短語(yǔ)“CMMI 符合性”在本書
1.2 敏捷方法入門
1.2.1 敏捷原則和實(shí)踐
1.2.2 書中使用的敏捷術(shù)語(yǔ)
2.1 本章的學(xué)習(xí)內(nèi)容
2.8.1 精簡(jiǎn)多余過(guò)程以縮短響應(yīng)時(shí)間
2.10 了解CMMI模型的目的,幫助組織
2.11 使用CMMI模型時(shí)可以通過(guò)不同的
圖文推薦本文關(guān)鍵詞:領(lǐng)域?qū)S谜Z(yǔ)言實(shí)戰(zhàn),由筆耕文化傳播整理發(fā)布。
本文編號(hào):53265
本文鏈接:http://sikaile.net/wenshubaike/mishujinen/53265.html