執行時設計(Design at Run time)

2021-07-05 08:36:37 字數 1726 閱讀 2010

傳統軟體開發必須經歷「設計時」和「執行時」兩個階段,執行時設計,顧名思義,就是在軟體執行過程中,對軟體進行實時設計修改,而無需再次進行編譯,使用者即可使用。

「執行時設計(design at run-time)」,就是軟體在使用者使用過程中,可以通過設計器修改介面、功能、甚至對整個頁面進行重新定義,儲存發布後使用者即可使用,而不需經過傳統軟體漫長的版本發布週期,也與傳統快速開發平台功能更新後需要重啟伺服器,重啟客戶端等任何重置性操作有本質區別,整個軟體修改後,無需編譯,發布等過程,而直接儲存即可讓使用者使用到即時修改的功能,它節省了大量開發、測試和發布所需的時間週期,而對客戶的功能需求,更加定位準確。這是在2023年開始逐步開始形成的一種全新的軟體開發理念和設計模式。

即軟體在使用過程中可以對功能進行任意調整,而其它使用者使用不受絲毫影響。即any where、 any time對業務進行修改調整,而不會影響到其它業務,執行時設計實際上提供了強大的基礎平台支援,同時管控和設計。功能開發和調整無需發布即時生效

它的基本核心內容包括:

現代軟體平台設計中大規模的引入指令碼,之前業內偶爾見到使用指令碼,這也會給軟體開發技術上帶來巨大的挑戰與刺激,因為很少人會為了做乙個軟體,去定義一種語言,並為它編寫直譯器,這似乎是乙個不可完成的工作,而動態編譯橫行的今天,似乎是殺雞用牛刀了?然而為了更好的靈活性和更加運用自如,同時保證做到真正的「執行時設計」。快速開發平台更需要提供的動態編譯技術,讓靈活得到極大提公升。

在動態軟體發展的今天,如果單單說動態介面已經很常見,而現代快速開發平台的動態介面技術,它不是去定義頁面的某個位置的布局,而是全部頁面都自己去定義,拖拉完成,同時配合動態資料來源(業務表),它做到了快速定義頁面,開發效率成倍提公升。後來有人把部件和頁面定義,統稱為「智慧型窗體」。

正如前面所講,我們需要定義的是一套軟體,而非乙個頁面的某個位置(動態表單),所以,必須做到資料與頁面完全分離的技術,這也是執行時設計平台的核心技術之一,真正做到了完全的資料與介面分離。

動態資料來源技術,將資料**劃分,使資料有不同類別,如通過sql語句形成,通過自己編寫形成等,解決了資料**的問題,而同時,定義了讀寫和唯讀的模式,讀寫表不但可以顯示資料,還可以將變化的資料完整儲存到資料庫。

為了提高效率,定義了指令碼語法,編寫了直譯器,實際上,指令碼直譯器的執行效率非常不錯,但是為了更加提高效率,執行時設計還會把**做類似編譯的處理,把它處理為樹型結構的dom,這有點類似於html的dom結構,這樣的做法,就是每次執行系統時,不再去解釋語言,而直接「執行語言」。似乎說得有點懸乎。

任何工作幾乎都離不開工作流,大部分管理系統中,有一半以上是採用工作流來處理,執行時設計軟體具備自主工作流引擎,可以處理工作流相關事務。

利用現代語言可以很輕鬆的做到高擴充套件性,然而,即使所有設計都考慮得非常完美,也總會有10%在例外,所以,乙個軟體無**能有多麼強大,必須提供開發擴充套件,以供使用者實現那10%的例外,所以這也是現代快速開發平台的重要乙個特點,實際上,採用指令碼技術,對於擴充套件性不需要做過多的設計並可自然獲得,然而,它卻有著非常重要的意義。

以上7點技術,便是「執行時設計」的重要技術特性,它是貫穿現在軟體快速開發平台設計始末,「執行時設計」,design at run-time,是現代軟體快速開發平台的特點之一,也是非常重要的特性。

具備「執行時設計」的快速開發平台作為一種新型的開發工具,它不僅具備傳統快速開發平台的所有優勢,而且執行時設計能讓在使用者使用過程中立即對軟體功能進行調整,同時節省大量返回公司調整、修改、發布所需要的時間週期,對於準確把握客戶需求,提高客戶滿意度,節省研發成本方面,有不可替代的作用。相信越來越多的平台公司會加入「執行時設計」的理念,做更好服務於客戶的人性化軟體。

執行時異常

常見的幾種如下 nullpointerexception 空指標引用異常 classcastexception 型別強制轉換異常。illegalargumentexception 傳遞非法引數異常。arithmeticexception 算術運算異常 arraystoreexception 向陣列中...

執行時改變控制項大小執行時移動控制項MINICAR版

執行時改變控制項大小執行時移動控制項minicar版 vs2005.net編寫,網上找了找,見別人寫得挺複雜,自己寫了乙個.附件居然不能上傳.就把 發到下面吧,有個奇怪現象就是,vb6中新建工建,拖個picturebox框出來,拷入以下 即可,但vb.net中是不行的.如mousemove事件你必須...

VC執行時庫

vc專案屬性 配置屬性 c c 生成 執行時庫 可以採用的方式有 多執行緒 mt 多執行緒除錯 mtd 多執行緒dll md 多執行緒除錯dll mdd 單執行緒 ml 單執行緒除錯 mld reusable library switch library macro s defined single...