亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        JavaWEB開發(fā)前后端數(shù)據(jù)解耦合的思考

        2019-07-12 09:08:56劉嵩李文蕙
        消費導(dǎo)刊 2019年43期

        劉嵩 李文蕙

        武漢軟件工程職業(yè)學(xué)院

        一、前言

        使用JavaWEB進行WEB應(yīng)用開發(fā)的方案有很多種,例如早期的純JSP模式、JSP+JavaBean模式以及經(jīng)典的MVC設(shè)計模式。

        (一)純JSP模式

        早期WEB應(yīng)用開發(fā)需求很簡單時,開發(fā)者會使用純JSP的方式來實現(xiàn)系統(tǒng)需求。一部分JSP混合Java代碼和HTML標簽用來呈現(xiàn)數(shù)據(jù),另外一部分JSP負責(zé)業(yè)務(wù)邏輯和數(shù)據(jù)訪問。這種方式只適合于業(yè)務(wù)流程簡單的應(yīng)用,如果系統(tǒng)復(fù)雜則導(dǎo)致JSP代碼可讀性差,難以維護。

        (二)JSP+JavaBean模式

        為了提高程序代碼的可讀性和可維護性,開發(fā)者開始使用JSP+JavaBean的模式進行網(wǎng)站開發(fā)。JSP負責(zé)數(shù)據(jù)顯示,JavaBean負責(zé)業(yè)務(wù)邏輯和數(shù)據(jù)訪問。這種方式讓代碼更易讀,提高了邏輯代碼的可重用性,適合小型項目的快速構(gòu)建。

        (三)MVC模式

        前面兩種開發(fā)模式下大部分WEB應(yīng)用都是將邏輯代碼和數(shù)據(jù)呈現(xiàn)代碼混在一起。為了強制性將邏輯代碼和數(shù)據(jù)呈現(xiàn)代碼分離,MVC模式使用模型進行邏輯處理和數(shù)據(jù)處理,視圖負責(zé)數(shù)據(jù)顯示,控制器負責(zé)調(diào)度業(yè)務(wù)邏輯和響應(yīng)策略。

        在MVC模式的指導(dǎo)思想下又逐步發(fā)展出Struts等JavaEE框架。他們雖然實現(xiàn)了數(shù)據(jù)呈現(xiàn)代碼和業(yè)務(wù)邏輯代碼的分離,但最終在數(shù)據(jù)呈現(xiàn)代碼里還是混合了HTML代碼和Java代碼或者相關(guān)的Java標簽庫,在數(shù)據(jù)呈現(xiàn)代碼中存在前后端數(shù)據(jù)的耦合。

        二、數(shù)據(jù)耦合帶來的問題

        前后端數(shù)據(jù)耦合會給開發(fā)帶來一系列問題:

        (一)開發(fā)人員要求高

        前后端數(shù)據(jù)耦合在一起帶來的直接問題吉居士對開發(fā)人員的要求會更高。首先,開發(fā)人員需要同時熟練掌握HTML、CSS、Javascript等前端技術(shù)和后段的服務(wù)器技術(shù)。如果某一方面的技能稍弱,就可能導(dǎo)致開發(fā)人員的工作無法順利完成。

        (二)代碼開發(fā)維護成本高

        前后端數(shù)據(jù)耦合會增加開發(fā)過程中的開發(fā)成本。前端代碼混合后端代碼會降低代碼的可讀性,如果后期需求發(fā)生變化,后端數(shù)據(jù)變更會對前端代碼產(chǎn)生很大的影響。在開發(fā)過程中經(jīng)常出現(xiàn)前端工作需要等待后端工作完成后才能展開,開發(fā)效率低。

        (三)JSP運行效率低

        前端JSP代碼第一次運行時會轉(zhuǎn)換成Servlet后再編譯執(zhí)行,其后每次執(zhí)行都會先請求Servlet,然后再由Servlet輸出成HTML代碼。運行效率比直接執(zhí)行HTML代碼低上很多。

        (四)性能難以優(yōu)化

        以前的JavaWEB應(yīng)用常使用JSP作為視圖層展示數(shù)據(jù),因為用戶并發(fā)訪問量不高,所以對性能要求并不是很高。隨著互聯(lián)網(wǎng)的飛速發(fā)展,對于WEB應(yīng)用的訪問性能要求是越來越高,因此原來前后端耦合在一起的模式已經(jīng)逐漸不能滿足性能要求,因此需找一種解耦的方式,來大幅度提升負載能力。

        三、減少前后端數(shù)據(jù)耦合的思路

        減少前后端數(shù)據(jù)耦合的基本思路是在通過前端服務(wù)器上的HTML頁面,使用Javascript發(fā)送異步請求的方式,對后端服務(wù)器代碼進行調(diào)用,后端服務(wù)器代碼使用JSON數(shù)據(jù)進行交互。

        將HTML、CSS、Javascript等靜態(tài)資源放在前端服務(wù)器上,Java代碼放在后端服務(wù)器上,實現(xiàn)前端內(nèi)容和后端內(nèi)容在物理服務(wù)器上的分離。當前端服務(wù)器接收到瀏覽器請求時,前端服務(wù)器代碼通過Javascript發(fā)送一個異步請求交給后端服務(wù)器,后端服務(wù)器接收到請求后完成相應(yīng)的權(quán)限判斷,數(shù)據(jù)庫訪問、業(yè)務(wù)邏輯等等操作后,將執(zhí)行結(jié)果通過JSON的方式進行返回。前端服務(wù)器接收JSON數(shù)據(jù)后根據(jù)內(nèi)容填充頁面再最終返回給瀏覽器。

        原來MVC思想中的Controller的角色不再由Java代碼承擔(dān),而是由前端的Javascript代碼負責(zé)對視圖View和后臺Model的調(diào)用。前后端服務(wù)器分離后,在業(yè)務(wù)場景需要的時候可以針對前端或者后端服務(wù)器通過擴展集群的方式快速提高系統(tǒng)響應(yīng)能力。前后端數(shù)據(jù)解耦后,可以很好的解決前后端分工協(xié)調(diào)的問題,將更多的控制調(diào)度邏輯交給前端服務(wù)器代碼來處理,而后端服務(wù)器則可以側(cè)重業(yè)務(wù)邏輯本身,比如提供API接口,進行權(quán)限控制以及進行運算工作。

        在開發(fā)環(huán)節(jié),通過搭建Nodejs服務(wù)器,前端開發(fā)人員可以利用插件,實現(xiàn)本地開發(fā)然后將請求轉(zhuǎn)發(fā)給后端服務(wù)器。前端在開發(fā)過程中可以與后端開發(fā)分離,通過模擬的方式實現(xiàn)業(yè)務(wù)場景。后端開發(fā)人員只需要按照約定的API實現(xiàn)對應(yīng)格式的JSON數(shù)據(jù)返回就可以了,不用去關(guān)心前端實現(xiàn)效果如何。前后端之間可以同時進行,不用相互等待,開發(fā)效率高。同時前后端分離后如果出現(xiàn)異常也可以將異常產(chǎn)生的范圍縮小,方便測試排查。

        總結(jié):降低前后端數(shù)據(jù)耦合可以為項目開發(fā)維護帶來很多好處。首先,前端代碼不再含有后端代碼,提高了前端代碼的可讀性,降低了前后端的耦合性。其次,前后端數(shù)據(jù)耦合減少使得開發(fā)人員的工作明確,前后端開發(fā)人員不需要相互等待進度,提高了開發(fā)效率。最終,由于數(shù)據(jù)耦合減少,提高了代碼的可維護性,減少后期代碼維護成本。開發(fā)者可以根據(jù)項目情況靈活選擇方案,使用合適的前后端數(shù)據(jù)耦合方式。

        男女真人后进式猛烈视频网站| 国产未成女年一区二区| 午夜香蕉av一区二区三区| 亚洲国产中文字幕精品| 日本一本之道高清不卡免费| 女人被做到高潮免费视频| 久久久99久久久国产自输拍| 日韩中文字幕在线丰满| 欧美成人午夜免费影院手机在线看| 吃奶摸下的激烈视频| 女同性恋精品一区二区三区| 亚洲av色精品国产一区二区三区| 大地资源网在线观看免费官网| 色八区人妻在线视频免费| 国产亚洲sss在线观看| 国内揄拍国内精品久久| 精品精品国产高清a毛片| 精品久久久中文字幕人妻| 亚洲男人堂色偷偷一区| 国产黄色一区二区三区av| 朋友的丰满人妻中文字幕| 美女自卫慰黄网站| 极品粉嫩小仙女高潮喷水视频| 青青青免费在线视频亚洲视频| 日韩中文字幕免费视频| 国产成人久久精品区一区二区 | 激情文学人妻中文字幕| 国产成人综合精品一区二区| 无码国产69精品久久久久孕妇| 日韩中文字幕中文有码| 男女男生精精品视频网站| 亚洲精品乱码久久久久久| 少女高清影视在线观看动漫 | 在线观看亚洲第一黄片| 欧美人与物videos另类| 亚洲另类激情专区小说婷婷久| 青青久久精品一本一区人人| 天堂а在线中文在线新版| 国产精品嫩草影院AV| av免费一区在线播放| 无码熟妇人妻av在线网站|