www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 技術(shù)學(xué)院 > 基礎(chǔ)知識科普站
[導(dǎo)讀]所謂領(lǐng)域?qū)S谜Z言(domain specific language / DSL),其基本思想是“求專不求全”,不像通用目的語言那樣目標(biāo)范圍涵蓋一切軟件問題,而是專門針對某一特定問題的計算機(jī)語言。

所謂領(lǐng)域?qū)S谜Z言(domain specific language / DSL),其基本思想是“求專不求全”,不像通用目的語言那樣目標(biāo)范圍涵蓋一切軟件問題,而是專門針對某一特定問題的計算機(jī)語言。DSL之于程序員正如伽南地之于以色列人,是最初也是最終的夢想。幾乎自計算機(jī)發(fā)明伊始,人們就開始談?wù)揇SL使用DSL了。而前幾年隨著被譽為“Web開發(fā)領(lǐng)域?qū)S谜Z言”的Ruby on Rails迅速走紅,DSL又一次成為人們討論的熱點話題。很多人都認(rèn)為,DSL將會是軟件業(yè)的“next big thing”。然而隨著DSL的日益流行,圍繞著DSL出現(xiàn)了很多質(zhì)疑和誤解,比如下面這幾個:

DSL專用語言

1. DSL的目標(biāo)受眾是非程序員,業(yè)務(wù)員或者最終用戶在很多人的心中,DSL等同于“非程序員的編程語言”(programminglanguage for non-programmers),因此DSL的最終受眾應(yīng)該是非程序員,一切不直接被最終用戶使用的DSL都不是真正的DSL,僅僅是另一種使代碼看起來不像代碼的無聊技巧。這是一個很有趣的觀點,事實上在計算編程語言發(fā)展的歷史上,的的確確出現(xiàn)過“非程序員的編程語言”,而且還非常有名,它們就是FORTRAN,COBOL這些第一代高級語言。在當(dāng)時的那個時代,計算機(jī)的主要目的是科學(xué)計算,而程序員則是專指那些擺弄開關(guān),繼電器,紙帶以及匯編語言的geek們。而計算機(jī)的主要受益者非程序員——也就是那些學(xué)者和研究員——不得不委托這些人幫助它們完成從數(shù)學(xué)公式到機(jī)器指令的轉(zhuǎn)換。于是第一代高級語言的主要目的是縮短計算公式和可執(zhí)行的代碼之間的差距(比如Fortran),或者是簡化信息管理員的日常工作(比如COBOL)。有趣的是,恰恰是這些當(dāng)年的“非程序員”把軟件開發(fā)發(fā)展成了一門正當(dāng)且頗為體面的職業(yè)。其實當(dāng)年的“非程序員的編程語言”與的DSL境況頗為相似,所不同的是,當(dāng)代企業(yè)級信息系統(tǒng)更為復(fù)雜,所關(guān)注的焦點逐漸從計算轉(zhuǎn)移到數(shù)據(jù)上,業(yè)務(wù)領(lǐng)域和計算機(jī)的物理過程也不再具有簡單直接的對應(yīng)關(guān)系了。

而且隨著社會分工細(xì)化,就算是通過DSL,我們?nèi)匀徊惶赡馨涯切┮鹿诔腍R們,銷售們,部門經(jīng)理們統(tǒng)統(tǒng)拉下水變成新新程序員。我仍然要承認(rèn),以最終用戶為目標(biāo)受眾的DSL是一個很引人側(cè)目很有意思的主意,但是在相當(dāng)長的一段時間內(nèi)都是不太現(xiàn)實的。或許我們需要新的方法(比如精益)來協(xié)調(diào)IT部門和業(yè)務(wù)部門,或許我們需要全新的軟件工程理論,或者某些非常具有獨創(chuàng)性的工作方式。

2.DSL = 整潔的代碼這種觀點與前面的觀點正好相反,把DSL完全當(dāng)作程序員的游戲,把一切能將代碼寫得整齊好看的技巧都?xì)w結(jié)為DSL。雖然從形式上看DSL和“整潔的代碼”都具有簡潔清晰的特征,但并不能因此將簡單將兩者草率地歸為等同。從概念上說,程序的編寫過程就是把業(yè)務(wù)領(lǐng)域中的問題通過代碼或者程序模型表達(dá)出來:由于計算機(jī)的程序模型較為單一(歸根結(jié)底都是運算和存儲),就算是在面向?qū)ο蠹夹g(shù)成為主流,通常情況下,計算機(jī)程序不太可能做到與業(yè)務(wù)領(lǐng)域中的概念一致,或者具有某些直覺的對應(yīng)。也這正是因為這樣,軟件的修改和可維護(hù)性并沒有想象中的容易。我們必須不斷地將業(yè)務(wù)領(lǐng)域中的概念轉(zhuǎn)換成相應(yīng)的代碼模型,然后再進(jìn)行修改。這種間接性直接造成了軟件的復(fù)雜度。而DSL的主要目的就是要消除這樣的復(fù)雜度(或者說,以構(gòu)造DSL的復(fù)雜度代替這種復(fù)雜度),DSL就要是要以貼近業(yè)務(wù)領(lǐng)域的方式來構(gòu)造軟件。因此,DSL的簡潔性往往是一種思維上的簡潔性,使我們不用費太多的氣力就能看懂代碼所對應(yīng)的業(yè)務(wù)含義。

從這里我們可以看出DSL和“整潔的代碼”的根本不同,“整潔的代碼”只是泛泛的要求代碼簡潔易懂,而不太在意是否貼近業(yè)務(wù)領(lǐng)域。比如對于一個J2EE開發(fā)者來說,DAO,DTO,F(xiàn)ormBean,Action已經(jīng)足夠清晰了,但是這卻跟DSL沾不上一絲的關(guān)聯(lián)。DSL更注重強(qiáng)調(diào)使用業(yè)務(wù)詞匯,盡可能貼近業(yè)務(wù)模型來編寫代碼,使業(yè)務(wù)模型和程序模型之間具有簡潔的對應(yīng)關(guān)系。因此我們不能將DSL等同于“整潔的代碼”,只能說DSL是一種“整潔的代碼”而已。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

阿聯(lián)酋迪拜2025年8月26日 /美通社/ -- 納斯達(dá)克上市公司Robo.ai Inc.今日正式宣布完成品牌煥新升級,并于8月26日正式啟用全新納斯達(dá)克股票代碼"...

關(guān)鍵字: AI 人工智能 代碼 智能科技

北京2025年8月13日 /美通社/ -- 近日,北京積算科技有限公司(以下簡稱"積算科技")推出一站式AlphaFold3在線算力服務(wù),現(xiàn)已開放免費使用。其內(nèi)置優(yōu)化后的AlphaFold3模型,支持...

關(guān)鍵字: ALPHA 代碼 圖形化 蛋白質(zhì)

北京2025年7月21日 /美通社/ -- 浪潮信息宣布元腦企智一體機(jī)已率先完成對Kimi K2 萬億參數(shù)大模型的適配支持,并實現(xiàn)單用戶70 tokens/s的流暢輸出速度,為企業(yè)客戶高效部署應(yīng)用大模型提供高處...

關(guān)鍵字: 模型 AGENT TOKEN 代碼

7月18日,一則“微信安卓安裝包出現(xiàn)5處fxxk”的話題,迅速登上微博熱搜,吸引了眾多網(wǎng)友的熱議和關(guān)注。

關(guān)鍵字: 代碼 程序員

共鑒AI未來,緬懷先輩貢獻(xiàn) 深圳 2025年5月21日 /美通社/ -- 5月16日下午,深圳市金澄智創(chuàng)AI+傳承迎來了喬遷之喜,一場意義非凡的活動在新址盛大舉行?;顒蝇F(xiàn)場星光熠熠,莊世平前輩之子莊榮新先生、南方財經(jīng)...

關(guān)鍵字: AI AI技術(shù) BSP 代碼

C語言代碼優(yōu)化與性能提升是軟件開發(fā)中至關(guān)重要的一環(huán)。優(yōu)化C語言代碼不僅可以提高程序的執(zhí)行效率,還可以減少資源消耗,提升用戶體驗。

關(guān)鍵字: C語言 代碼

Qt 路線圖致力于實現(xiàn)與各行業(yè)技術(shù)棧的無縫集成,助力企業(yè)與開發(fā)者使用自選工具,更高效地構(gòu)建、擴(kuò)展和維護(hù)軟件解決方案。 芬蘭埃斯波 2025年5月7日 /美通社/ -- 在今日舉行的2025年Qt全球峰會上,Qt...

關(guān)鍵字: GROUP 生態(tài)系統(tǒng) 開發(fā)者 代碼

——首批"專家級數(shù)字員工"部署上崗,構(gòu)建組織傳承與人才戰(zhàn)略的AI導(dǎo)師矩陣 北京2025年4月25日 /美通社/ -- 在生成式AI技術(shù)加速重構(gòu)組織能力與人才機(jī)制的當(dāng)下,如何留住專家經(jīng)驗、培養(yǎng)管理人才...

關(guān)鍵字: AI 智能體 矩陣 代碼

深圳2025年4月21日 /美通社/ --?近日,國家發(fā)展改革委公布第 31 批國家企業(yè)技術(shù)中心認(rèn)定名單,華測檢測認(rèn)證集團(tuán)股份有限公司(股票代碼:300012.SZ,簡稱 "CTI 華測檢測")憑借在檢驗檢測領(lǐng)域的全鏈條...

關(guān)鍵字: TI IC 代碼 半導(dǎo)體

珠海2025年3月13日 /美通社/ -- 近期,AI工具DeepSeek引發(fā)廣泛關(guān)注,大量非專業(yè)投資者試圖借助其生成股票策略,卻面臨現(xiàn)實困境:平臺輸出的Python代碼策略對零編程基礎(chǔ)用戶存在極高使用門檻。即...

關(guān)鍵字: EPS 代碼 PSE AI
關(guān)閉