999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Ext JS框架MVC模式的復用技術研究

2018-03-29 08:19:56聞金華徐建良
網絡安全與數據管理 2018年2期
關鍵詞:方法模型系統

周 玉,聞金華,徐建良

(中國海洋大學 信息科學與工程學院,山東 青島 266100)

0 引言

復用概念的首次提出是在1968年NATO軟件工程會議上,在其后的發展過程中,有許多復用技術的研究成果和復用實踐活動[1]。目前國內外對復用技術的研究很熱門,但較多的研究是頂層設計和后端的軟件復用技術。文獻[1]中提出了軟件構件技術在軟件復用中的應用;文獻[2]中提出構件通用型MVC模式的設計方法;文獻[3]中提出組件級的建議,能更精確地提供可重用的代碼;文獻[4]中通過搜集開源代碼軟件開發的數量和質量研究代碼重用。而對前端的復用技術的研究也僅限于通用組件化的研究,文獻[5]中實現了一種聲明式組件開發的前端庫,使組件可以方便地遷移到其他項目中去。

后端復用技術已經趨于成熟,而隨著系統業務邏輯和用戶與系統交互量的增加,前端頁面的復雜度和代碼規模呈現數量級式增長,這樣就造成了一個普遍的問題——效率問題,包括前端代碼的加載次數、頁面的渲染時間、瀏覽器加載時間等。據相關數據顯示,前端代碼整個運行加載的時間占整個系統的70%以上[6]。所以,前端代碼的優化在提高整個系統的效率上會有事半功倍的效果。因此,前端應用的軟件復用技術成為研究熱點。針對前端復用技術的研究,僅僅有良好的頂層設計是遠遠不夠的[6],如何在系統中進行具體的融合和應用,是真正解決問題并產生實際意義的關鍵。

本文在成果管理系統重構的基礎上,嚴格遵循重構設計原則,在滿足系統已有功能的前提下,運用MVC設計模式、OOP思想,將系統現有的前端框架Ext JS 2.0升級,采用全新的 Ext JS 4.2 重新編碼,將系統代碼進行重構。

成果管理系統是對研究成果進行管理的系統。研究成果有3種,即論文、專利、獎勵。對每一種成果進行添加、修改、查看、刪除、查詢和審核等操作。隨著業務的擴展,又增加了對軟件著作權、標準、品種和著作4種成果的管理。在目前的成果管理系統中,對每一種成果進行分別管理,開發過程彼此獨立。不難發現,不同成果有很多相似信息,而且對每一種成果的操作是一樣的。這樣就造成了在不同的成果代碼里有很多重復的代碼,不僅占用了很多空間,而且導致代碼讀取速度慢,響應時間長。并且在面對增加4種新成果的用戶需求時,會導致很多重復的工作,可維護性降低。

鑒于系統中的上述特點,充分利用Ext JS框架引入的MVC模式和OOP思想進行模型設計和編程。MVC模式提供了一個完善的代碼組織和維護的方向,將系統分解為模型、視圖、控制器三部分[7],每一部分都相對獨立,職責單一,在實現過程中可以專注于自身的核心邏輯。其基本思想就是“關注點分離”。面對多種成果相似度較高又分屬不同組件的情況,將系統分解成一些相對獨立的、具有高度復用性的模塊組合[8], 既減少了冗余的代碼,也具有了對將來產生的問題和需求的通用性。使用OOP思想來對實體進行抽象,利用繼承和封裝的方式進行編程,是提高軟件生產效率和質量的現實可行的途徑。因此,基于Ext JS框架MVC模式的復用技術是值得研究的。

1 模型的復用技術

1.1 構建抽象模型及繼承層次

模型是應用程序提供信息存儲的對象。因此,良好的模型設計在系統的數據傳輸中占有很重要的地位,在OOP里的繼承概念是一種重用已有對象代碼的方式[9]。在Ext JS應用程序中,使用OOP思想,模型初步設計的UML類圖如圖1所示,為每一個實體構建一個Model。從圖1可以看出,模型重復字段的書寫,導致代碼規模大等問題。針對這個問題,提出了為成果和成果完成人分別構建一個包含共同字段的抽象模型,3個成果的特定模型繼承成果抽象模型,論文和專利的成果完成人特定模型繼承成果完成人抽象模型,而獎勵完成人因為沒有特殊字段,所以直接使用成果完成人抽象模型,從而實現復用技術在成果系統中的應用。改進后的UML類圖如圖2所示。

圖1 初步設計的UML類圖

圖2 改進后的UML類圖

1.2 初步設計和改進后的模型對比

通過構建抽象模型和繼承層次,由圖1改進到圖2所示的模型,根據成果管理系統用Firfox瀏覽器的測試,初步設計和改進后的模型設計的文件大小和加載時間的對比如表1所示。

由于服務器響應時間和網絡傳輸原因,測試的數據可能存在誤差,表1的數據是多次測試數據的平均值,從表1可以看出,雖然改進后的模型多了兩個抽象模型,但是其他模型的代碼規模均減少,所以總體來看,文件大小和加載時間都有接近一半的縮小,提高了系統的執行效率,降低了代碼規模,這對于精簡和優化前臺代碼有重大意義。

表1 文件大小和加載時間的對比

在面對增加4種新成果的用戶需求時,改進后的模型的優越性更加突出。只需要構建這4種成果的特定模型;成果完成人只有著作成果有編者角色的特殊字段,所以只需要構建一個著作完成人的特定模型。這樣,既減少了重復的代碼和工作量,也提高了系統的可重用性和可維護性。

在系統的列表界面,需要通過Window的形式展示獨立的成果完成人的Grid。那么,此Grid的另一位開發人員可以直接引用這里創建的成果完成人的抽象模型和特定模型,有助于團隊之間的協作。

2 封裝通用面板

2.1 成果錄入面板引用通用面板

視圖層是影響用戶交互體驗的直接因素,面板復用是減少頁面渲染時間的有效途徑。所以,在成果系統中,以成果的錄入面板為例,由初步設計一個面板對應一個View,改進到由圖3所示的面板類圖。封裝了通用面板OwnerGrid、ProjectGrid、PlatformGrid和AbstractBasicInfo供3類成果錄入面板復用。由于論文成果相對于其他成果多了一個收錄情況,因此為論文成果創建了特定面板PaperAddForm,其他成果的錄入面板通過AbstractAddForm創建,使AbstractAddForm被擴展成了能表示3種成果的錄入面板,而3種成果的特定信息放在各自的BasicInfo面板中。

圖3 成果錄入面板引用通用面板類圖

2.2 封裝通用面板的優化體現

不同復用角度優化體現:

(1)從3種成果錄入面板引用通用面板角度,減少了2次AbstractAddForm、2次OwnerGrid、ProjectGrid和PlatformGrid、2次AbstractBasicInfo的重復代碼,同時在時間上減少了450 ms。

(2)從創建3種成果編輯面板角度,只需要創建一個包含3個Button的AbstractEditForm面板,引用封裝好的通用面板即可,這樣錄入面板和編輯面板幾乎可以同時完成。

(3)從面對增加4種新成果的用戶需求角度,只需要創建4種成果特有信息面板,既減少了成倍的代碼和工作量,又提高了系統的可擴展性。

(4)從系統中其他面板角度,有需要通過Window的形式展示獨立的成果完成人的Grid、所屬項目的Grid和所屬平臺的Grid。上述 Grid的另一位開發人員可以直接引用這里封裝好的通用面板,體現了高內聚、松耦合的特性。

3 封裝通用控制器

3.1 通用控制器的監聽和通用方法實現

控制器在MVC框架中充當了粘合劑的角色,是一系列事件處理器函數的集合。所以,在時間的占用上起關鍵作用。因此,提高系統的響應速度,控制器占有舉足輕重的地位。改進前的控制器設計是一個面板對應一個控制器,導致重復功能的監聽和實現。改進后的通用控制器是對多個成果視圖的統一控制。以添加界面的保存監聽方法為例,通過繼承方式構建的通用面板,其xtype為abstractaddform, 因此通用選擇器的監聽如圖4所示。

圖4 通用選擇器的監聽

通用控制器的通用方法,根據成果類型和組件關鍵字等,自動配置成所需面板的功能。以3種成果使用同一個保存成果方法為例,保存成果的通用方法的主要代碼如圖5所示,其中有兩個重點,分別用文本框標出:(1)取得要保存的數據,這個getData方法也是一個通用方法,通過傳遞的3個關鍵字來判斷取何種成果的數據;(2)把URL通過achievementType變量的形式擴展成3個成果通用的URL。

圖5 保存成果的通用方法

這樣只用了一個通用的監聽和方法,就實現了3種成果的保存功能,為保存面板數據提供了通用功能。

3.2 升級通用控制器

為了盡可能地簡化和復用方法,在一個控制器里實現有相似功能面板的通用功能[9]。采用組合機制(mixins)對通用控制器進行了升級。以添加、查看和編輯為例,升級的通用控制器如圖6所示,不僅使3種成果的添加、編輯和查看視圖統一控制,而且通過mixins方式將組合通用方法融入到3種通用控制器。

表3 升級的通用控制器文件大小和加載時間

圖6 升級的通用控制器

3.3 升級的通用控制器和改進前的控制器比較

(1)從3種成果方面,再次升級的通用控制器,使3種成果的同種功能只需要一個通用控制器來實現。這就使得文件大小縮小為1/3,文件的縮小,必然會使加載時間變小。而改進前的控制器則會導致不同成果的控制器功能重復。

(2)從組合通用方法方面,每個通用控制器只需組件監聽,調用mixins融入的組合通用方法即可,使得通用控制器的大小縮小。而改進前的控制器則會導致添加和編輯、編輯和查看之間功能的重復。

(3)后期加入4種新成果,控制器層不用寫,為維護人員省略了最復雜的部分;更重要的是,增加新成果,改進前控制器的時間和大小會隨之成倍地增加,而升級的通用控制器的時間和大小是不變的。

表2 改進前控制器文件大小和加載時間

4 結 論

本文研究了基于Ext JS框架MVC模式的復用技術,使代碼得到精簡和優化。構建抽象模型及其繼承層次,減少了前端代碼的加載時間,同時提高了系統的可重用性。封裝了通用面板,減少了代碼的冗余,明顯縮短了頁面渲染時間。又封裝了通用控制器,實現了最通用的代碼,通用控制器采用組合機制進行升級,解決了多個控制器監聽重復功能的問題,使創建新的界面也變得更加容易。

這種基于MVC的復用技術適用于所有基于Ext JS的具有相似信息的前端界面。用成果系統進行測試,將30個具有共同信息的列表縮減為3個通用列表,整個成果系統的前端代碼由8.11 MB縮減為4.36 MB,顯示了此方法的切實可行和優越性。此方法使基于Ext JS框架MVC模式復用技術研究前進一小步,使軟件生產效率和質量顯著提高。

下一步主要工作是繼續研究更多可復用的技術,構建基于Ext JS4.2的復用框架。

[1] 楊芙清,梅宏,李克勤.軟件復用與軟件構件技術[J].電子學報,1999,27(2):68-75, 51.

[2] 劉亮,霍劍青,郭玉剛,等.基于MVC的通用型模式的設計與實現[J].中國科學技術大學學報,2010,40(6): 635-639.

[3] OHTANI A,HIGO Y, Ishihare T,et al.On the level of code suggestion for reuse[C]// IEEE International Workshop on Software Clones IEEE.2015.

[4] HAEFLIGER S, KROGH G V, SPAETH S. Code reuse in open source software[J]. Management Science, 2008, 54(1): 180-193.

[5] 戴翔宇.Web前端工程組件化的分析與改造[D].長春:吉林大學,2016.

[6] 王悅.基于Extjs4的Web前端框架設計與應用[D].青島:中國海洋大學,2015.

[7] VILLA C,GONZALEZ A.Learning Ext JS 4[EB/OL]. (2013-01-25)[2017-6-25]https://www.packtpub.com/web-development/learning-ext-js-4.

[8] CHEN L Y,QING G.Research on framework developing technology based on MVC[J].Advances in Information Sciences and Service Sciences, 2011,3(3): 25-31.

[9] GRONER L.精通Ext JS(1版)[M].盧俊祥,譯.北京:人民郵電出版社,2014.

猜你喜歡
方法模型系統
一半模型
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
3D打印中的模型分割與打包
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 国产毛片片精品天天看视频| 亚洲精品动漫| 无码国产伊人| 国产丝袜无码精品| 精品国产自在现线看久久| 国产美女精品人人做人人爽| 国产导航在线| www.狠狠| 精品一区二区三区四区五区| 午夜毛片免费观看视频 | 一级毛片免费播放视频| www精品久久| 亚洲国产高清精品线久久| 久久国产拍爱| 日本午夜精品一本在线观看 | 91福利免费视频| 欧亚日韩Av| 精品国产电影久久九九| 无码免费试看| 国产99欧美精品久久精品久久| 亚洲AⅤ波多系列中文字幕| 亚洲视频无码| yy6080理论大片一级久久| 国产91高清视频| 一级香蕉视频在线观看| 成人小视频在线观看免费| 国产剧情无码视频在线观看| 伊人色在线视频| 先锋资源久久| 91蜜芽尤物福利在线观看| 国产精品亚欧美一区二区| 国产大片黄在线观看| 伊人激情久久综合中文字幕| 亚洲人成网站18禁动漫无码| 日韩资源站| 国产白丝av| 在线视频亚洲色图| 亚洲码在线中文在线观看| 国产在线欧美| 视频一本大道香蕉久在线播放| 国产精品男人的天堂| 狠狠色噜噜狠狠狠狠奇米777| 人妻一本久道久久综合久久鬼色| 国产91在线|日本| 亚洲精品视频网| 久996视频精品免费观看| 国产精品自在在线午夜| 国产无码精品在线播放| 噜噜噜综合亚洲| 国产玖玖视频| 88av在线| 又黄又湿又爽的视频| 欧美不卡视频在线观看| 成年免费在线观看| 国产玖玖视频| 亚洲最大综合网| 亚洲天堂久久| 亚洲中文久久精品无玛| 国产区在线看| 热思思久久免费视频| 国产毛片基地| 国产九九精品视频| 成人免费一区二区三区| 久热中文字幕在线| 国产丝袜第一页| 亚洲毛片一级带毛片基地| 久久99国产精品成人欧美| 国产精品女同一区三区五区| 欧美成a人片在线观看| 不卡的在线视频免费观看| 韩日免费小视频| 538国产在线| 欧美精品亚洲二区| 国产精品七七在线播放| 国产swag在线观看| 日本一区二区三区精品AⅤ| 亚洲精品综合一二三区在线| 亚洲A∨无码精品午夜在线观看| 2022国产无码在线| 欧美日韩中文字幕二区三区| 在线色国产| 国产综合欧美|