丁香五月亚洲,欧美孕妇XXX高清在线,国产中文资源,精品r视频在线

低代碼核心:代碼生成還是模型解釋?(低代碼原理)

2020年第一屆低代碼研討會上, Jordi Cabot發(fā)表了一篇文章(或者說觀點),對比了低代碼和模型驅(qū)動開發(fā)的關(guān)系,認(rèn)為低代碼等于模型驅(qū)動開發(fā)。但實際上,不少低代碼系統(tǒng)并不是使用模型驅(qū)動的,而是采用另一個策略,即代碼生成。那這兩者區(qū)別是什么,各有什么優(yōu)勢, 本文會詳細(xì)介紹。

低代碼核心:代碼生成還是模型解釋?(低代碼原理)

關(guān)于代碼生成和模型解釋

在模型驅(qū)動開發(fā)中,代碼生成用于從更高級別的模型生成代碼,以創(chuàng)建可運行的應(yīng)用程序。讓我們考慮下面這個使用領(lǐng)域特定語言(Domain-Specific Language, DSL)創(chuàng)建的領(lǐng)域模型

Customer { Name: String; Address: String;}

如果我們想為這個小模型生成Java代碼,我們可以使用模板引擎。模板包含Java代碼和一些Token,這些Token將根據(jù)模型來填充。例如,我們可以為域模型中的每個實體使用模板。模板代表一個Java類,實體的名稱作為類名(例如客戶)。對于每個屬性,將生成一個私有字段。

在模型解釋的情況下,我們不會通過生成代碼的方式來從模型中創(chuàng)建一個可運行軟件應(yīng)用程序。在模型解釋中,我們會使用一個(比如)Java實現(xiàn)的通用引擎用,模型直接由這個引擎來解釋。例如,這個通用的Java程序中包含一個帶有屬性name的類Entity和一個包含該實體屬性(name-value對)的hashmap。在這種情況下,客戶實體不是由Java類表示的,而是由一個帶有屬性名稱的Entity對象表示的,該屬性name的值是Customer。這些實體對象是根據(jù)模型中的信息創(chuàng)建的。

代碼生成和模型解釋都在實踐中使用。讓我們來看看這些方法相互比較的優(yōu)勢。

低代碼核心:代碼生成還是模型解釋?(低代碼原理)

代碼生成的優(yōu)勢

與模型解釋相比,代碼生成具有以下優(yōu)點:

  • 它保護(hù)你的知識產(chǎn)權(quán):通過代碼生成,你可以為特定的客戶端生成一個應(yīng)用程序。當(dāng)使用模型解釋時,你必須給把整個運行時引擎給客戶,這樣才能實現(xiàn)整個應(yīng)用。例如,如果要構(gòu)建一個網(wǎng)站,你可以把運行網(wǎng)站所需的所有代碼給到客戶即可。而如果使用解釋器,你必須給他們整個系統(tǒng)來解釋任何可以用你的DSL描述的網(wǎng)絡(luò)應(yīng)用。當(dāng)您的產(chǎn)品有大量客戶的時候,這一點尤其重要。
  • 它可以適應(yīng)您的客戶架構(gòu):當(dāng)使用模型解釋時,您必須按照自己選擇的架構(gòu)實現(xiàn)解釋器。在代碼生成的情況下,您可以根據(jù)客戶的要求來生成代碼。
  • 生成的實現(xiàn)更容易理解:您可以查看生成的代碼并直接理解應(yīng)用程序的行為。在模型解釋的情況下,您必須理解解釋器的通用實現(xiàn)和模型的語義。
  • 容易上手:如果您已經(jīng)手工構(gòu)建了一個應(yīng)用程序,您可以開始使用代碼生成,方法是將現(xiàn)有代碼轉(zhuǎn)換為模板,并用token替換部分代碼,token將被模型信息替換。如果您為同一個領(lǐng)域構(gòu)建了多個應(yīng)用程序(例如,為不同的客戶),您可以開始分析這些應(yīng)用程序。靜態(tài)代碼(即所有應(yīng)用程序的代碼都是相同的)可以放在域框架中,只需要生成可變代碼即可(即您需要創(chuàng)建域特定語言來建模可變性)。
  • 它更容易迭代:正如前面所解釋的,您可以通過將現(xiàn)有代碼轉(zhuǎn)換為代碼生成模板來開始使用代碼生成。當(dāng)然,您可以通過迭代的方式做到這一點。首先,您只生成代碼的一部分,其他部分將手動實現(xiàn),稍后,您可以擴(kuò)展代碼生成器以生成代碼的更多部分。您的DSL也是如此。起初,它可以是初級的,以反映將要生成的代碼。以后,您可以通過提高抽象級別來提升領(lǐng)域?qū)I(yè)能力。
  • 編譯器為它提供了的附加的檢查能力:當(dāng)您生成代碼時,需要編譯該代碼。這個編譯步驟是一個附加的檢查,因為編譯器將檢查生成的代碼是否有錯誤。如果有解釋器,您需要在模型解釋期間自己進(jìn)行這些檢查,或者您需要在建模環(huán)境和解釋器之間創(chuàng)建一個緊耦合。
  • 調(diào)試生成器本身比調(diào)試解釋器更容易:如果您需要調(diào)試解釋器,則始終需要條件斷點,因為解釋器代碼是通用的。
  • 模板的變化更容易跟蹤:代碼生成模板只是文本文件,因此變化很容易跟蹤(例如通過使用版本控制系統(tǒng))。解釋器代碼的變化也是如此,但是,這段代碼是通用的,不容易搞清楚到底發(fā)生了什么變化。

模型解釋的優(yōu)點

與代碼生成相比,模型解釋具有以下優(yōu)點:

  • 它支持快速變更:模型中的更改不需要再次代碼生成、編譯、測試和重新部署。這將縮短上線時間。
  • 它支持在運行時進(jìn)行更改:因為模型在運行時可用,所以甚至可以在不停止運行應(yīng)用程序的情況下更改模型。
  • 更容易移植:解釋器原則上創(chuàng)建一個獨立于平臺的目標(biāo)來執(zhí)行模型。創(chuàng)建一個運行在多個平臺(例如多個操作系統(tǒng)、多個云平臺)上的解釋器很容易。在代碼生成的情況下,您需要確保您生成的代碼符合平臺要求。在模型解釋的情況下,解釋器是一個黑匣子,只要它能在目標(biāo)平臺上運行,如何實現(xiàn)并不重要。
  • 更容易部署:當(dāng)使用代碼生成時,您經(jīng)常會看到您需要在EclipseVisual Studio中打開生成的代碼,并構(gòu)建它來創(chuàng)建最終的應(yīng)用程序。在模型解釋的情況下,您只需啟動解釋器并將模型放入其中。代碼不再是必要的了。因此,對領(lǐng)域?qū)<襾碚f, 部署和運行應(yīng)用程序比僅僅建模要容易得多。
  • 更容易升級和縮放:更改解釋器并用相同的模型重新啟動它更容易。您不必使用更新的生成器再次生成代碼??s放也是如此:縮放應(yīng)用程序意味著初始化解釋器的更多實例,執(zhí)行相同的模型。尤其是在云環(huán)境中,這可以給你帶來優(yōu)勢。
  • 它更安全:例如,在云平臺上,你只需要上傳你的模型,就不需要訪問文件系統(tǒng)或其他系統(tǒng)資源。只有解釋器中的代碼可以訪問系統(tǒng)庫。解釋器在基礎(chǔ)設(shè)施之上提供了一個額外的層,下面的一切都被抽象掉了。這本質(zhì)上是平臺即服務(wù)(PaaS)的想法。
  • 它比代碼生成更靈活:基于模板的代碼生成是有限制的。在這種情況下,您將需要幫助文件來擴(kuò)展基于模板的代碼生成的可能性。在這種情況下,解釋器可能不那么復(fù)雜,通常需要更少的代碼來完成相同的結(jié)果。
  • 在運行時調(diào)試模型:雖然模型在運行時可用,但可以通過在運行時遍歷模型來調(diào)試模型(也就是說,您可以在模型上添加斷點)。這僅適用于操作語言,而不適用于聲明性語言(在那里您需要靜態(tài)分析)。當(dāng)可以在模型級別調(diào)試時,域?qū)<铱梢哉{(diào)試自己的模型,并根據(jù)此調(diào)試調(diào)整應(yīng)用程序的功能行為。這在使用復(fù)雜的過程或狀態(tài)模型時非常有幫助。

低代碼核心:代碼生成還是模型解釋?(低代碼原理)

結(jié)論

比較這兩種方法的優(yōu)勢,我們可以得出結(jié)論,最終這完全取決于構(gòu)建和/或使用模型驅(qū)動軟件工廠的人員的領(lǐng)域、用例和技能集(或舒適性)。

當(dāng)我們討論代碼生成和模型解釋之間的區(qū)別時,很快就會帶來更多的問題:代碼生成和模型解釋之間有什么區(qū)別?這兩種方法之間的界限是什么?如果我們在生成代碼時有一個內(nèi)存文件系統(tǒng)呢?如果我們通過編譯模型的一部分來優(yōu)化我們的解釋器呢?如果解釋器為瀏覽器生成數(shù)據(jù)庫結(jié)構(gòu)和網(wǎng)絡(luò)內(nèi)容呢?

好了,今天的文章分享到這就結(jié)束了,要是喜歡的朋友,請點個關(guān)注哦!–我是簡搭(jabdp),我為自己“帶鹽”,感謝大家關(guān)注。

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2024年5月13日 上午11:06
下一篇 2024年5月13日 上午11:18

相關(guān)推薦

  • 房地產(chǎn)經(jīng)濟(jì)研究(房地產(chǎn)經(jīng)濟(jì)與管理科研項目)

    房地產(chǎn)經(jīng)濟(jì)與管理科研項目是當(dāng)前社會最為關(guān)注的話題之一。隨著中國經(jīng)濟(jì)的快速發(fā)展,房地產(chǎn)市場也呈現(xiàn)出了持續(xù)的繁榮。然而,房地產(chǎn)市場的不穩(wěn)定性和波動性也使得許多投資者和管理者感到困惑和不…

    科研百科 2024年4月3日
    83
  • 科研項目的落地推廣

    科研項目的落地推廣 隨著科技的不斷發(fā)展,科研項目的落地推廣已經(jīng)成為了一個備受關(guān)注的話題??蒲许椖康穆涞赝茝V不僅能夠推動科學(xué)技術(shù)的進(jìn)步,也能夠為經(jīng)濟(jì)發(fā)展注入新的動力。本文將探討科研項…

    科研百科 2025年3月26日
    2
  • 大學(xué)教授科研經(jīng)費100萬能賺多少

    大學(xué)教授科研經(jīng)費100萬能賺多少 教授作為學(xué)術(shù)界的領(lǐng)軍人物,他們的研究成果往往能夠為社會帶來巨大的貢獻(xiàn)。而科研經(jīng)費則是支持教授們進(jìn)行學(xué)術(shù)研究的重要資源。如果大學(xué)教授科研經(jīng)費100萬…

    科研百科 2024年12月6日
    38
  • 科研項目團(tuán)隊中的職務(wù)

    科研項目團(tuán)隊中的職務(wù) 在科研項目團(tuán)隊中,每個職務(wù)都有其獨特的職責(zé)和任務(wù)。以下是一些常見的科研項目團(tuán)隊職務(wù): 1. 科學(xué)家:科學(xué)家是科研項目的核心成員,他們負(fù)責(zé)研究問題、發(fā)現(xiàn)新知識以…

    科研百科 2025年4月13日
    2
  • 住房信息系統(tǒng)項目管理

    住房信息系統(tǒng)項目管理 住房信息系統(tǒng)項目管理是指通過整合信息技術(shù)和住房管理優(yōu)勢,實現(xiàn)住房信息的快速、準(zhǔn)確、安全、共享和高效的管理。在當(dāng)前信息化程度越來越高的時代,住房信息系統(tǒng)項目管理…

    科研百科 2025年1月15日
    3
  • 性愛和背叛:揭露村干部辦公室的黑暗秘密(村干部的辦公室叫什么)

    他們本應(yīng)是鎮(zhèn)上的村干部,但卻因為一段不雅視頻成為網(wǎng)絡(luò)上的焦點。這段長達(dá)2分32秒的視頻內(nèi)容令人震驚,據(jù)爆料,這是兩人在視頻會議中忘記關(guān)閉攝像頭而導(dǎo)致的直播事件。視頻顯示,村書記在辦…

    科研百科 2023年11月6日
    219
  • 微信小程序有什么標(biāo)簽可以讀html網(wǎng)址

    微信小程序是一種輕量級的應(yīng)用程序,用戶可以在微信內(nèi)部直接使用,無需下載安裝。微信小程序通過與微信集成,使得開發(fā)者可以快速開發(fā)出具有實用性和社交性的應(yīng)用程序。 微信小程序有很多標(biāo)簽,…

    科研百科 2024年10月24日
    4
  • 學(xué)校經(jīng)費管理制度內(nèi)容(學(xué)校經(jīng)費管理制度)

    學(xué)校經(jīng)費管理制度學(xué)校經(jīng)費管理制度與中國軍人一樣,是社會進(jìn)步的象征,是我國必須取得好成績的國家。全國政協(xié)委員李玲:國家標(biāo)準(zhǔn)的核心問題《條例征求意見稿》規(guī)定,“設(shè)立國家行政機(jī)關(guān)的職責(zé)。…

    科研百科 2024年5月18日
    36
  • 研究生科研項目是自己進(jìn)行嗎研究生科研項目是自己進(jìn)行嗎

    研究生科研項目是自己進(jìn)行嗎 作為一名研究生,你是否曾思考過你的科研項目是自己進(jìn)行還是由導(dǎo)師或同學(xué)幫助完成?這是一個很重要的問題,因為它直接關(guān)系到你的學(xué)術(shù)成就和未來職業(yè)發(fā)展。 一般來…

    科研百科 2024年6月18日
    35
  • 項目管理的好用軟件

    項目管理是組織實現(xiàn)目標(biāo)的關(guān)鍵步驟之一。通過使用項目管理軟件,我們可以更有效地組織和管理項目,確保項目按時完成,并在預(yù)算內(nèi)完成。 一個好的項目管理軟件可以幫助您實現(xiàn)以下目標(biāo): 1. …

    科研百科 2024年5月28日
    42
亚洲女同精品一区二区99| 欧美日韩精品一区二区视频| 成人综合久久久久| av片免费试看| 久久偷拍熟女| 亚洲精品无码在线播放| 国产美乳视频| 青青久久网站| 99偷拍视频精品一区二区| 四虎永久免费| 人妻偷拍蜜桃| 国产亚洲福利| 亚洲大陆免费看| 国产经典亚洲无码| 国产美女精品视频线播放| 亚洲日本道| 亚洲a√久久| 日本高清不卡中文字幕免费| 97久久人妻一区| 吴忠市| 久久久品牌亚洲公司| 亚洲国产中文国产一区二区三区| 中文字幕av不卡电影网| 日韩成人三级电影精| 开心 色 播 欧美| 国产在线乱子伦一区二区| 欧美激情网站,欧美激情一区| 国产一区伦理无套| 亚洲日韩欧美在线综合| 亚洲精品无码AV在线专区| 日韩无码大家都在搜| AV黄色网站噜噜噜| 无码久久高清| 永久不封国产毛片av网煮站| 日韩精品黄色av| 久久性高| 欧美在线播放一区二区| 日韩啪啪啪啪一区| 中文在线字幕第一页| 先锋影音资源站| 亚洲无码国产精品一区|