• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2019-07-12 09:08:56劉嵩李文蕙
      消費(fèi)導(dǎo)刊 2019年43期
      關(guān)鍵詞:可讀性開發(fā)人員代碼

      劉嵩 李文蕙

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

      一、前言

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

      (一)純JSP模式

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

      (二)JSP+JavaBean模式

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

      (三)MVC模式

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

      在MVC模式的指導(dǎo)思想下又逐步發(fā)展出Struts等JavaEE框架。他們雖然實(shí)現(xiàn)了數(shù)據(jù)呈現(xiàn)代碼和業(yè)務(wù)邏輯代碼的分離,但最終在數(shù)據(jù)呈現(xiàn)代碼里還是混合了HTML代碼和Java代碼或者相關(guān)的Java標(biāo)簽庫,在數(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ā)維護(hù)成本高

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

      (三)JSP運(yùn)行效率低

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

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

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

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

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

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

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

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

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

      猜你喜歡
      可讀性開發(fā)人員代碼
      Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      對增強(qiáng)吸引力可讀性引導(dǎo)力的幾點(diǎn)思考
      新聞傳播(2015年11期)2015-07-18 11:15:03
      淺談對提高黨報(bào)可讀性的幾點(diǎn)看法
      新聞傳播(2015年9期)2015-07-18 11:04:12
      讓W(xué)indows 10進(jìn)入開發(fā)者模式
      電腦迷(2015年12期)2015-04-29 23:22:51
      后悔了?教你隱藏開發(fā)人員選項(xiàng)
      電腦愛好者(2015年6期)2015-04-03 01:20:56
      在增強(qiáng)地方時政新聞可讀性上用足心思
      中國記者(2014年2期)2014-03-01 01:38:34
      璧山县| 平塘县| 南投县| 绥江县| 岐山县| 讷河市| 营口市| 龙南县| 黑龙江省| 松溪县| 嘉义市| 嵩明县| 安仁县| 宝山区| 衡阳县| 武陟县| 两当县| 磐安县| 方城县| 尼木县| 宜阳县| 上犹县| 永春县| 娄底市| 绍兴市| 林甸县| 公安县| 石台县| 云林县| 红河县| 枞阳县| 城步| 耿马| 牙克石市| 晋中市| 天等县| 尉犁县| 郎溪县| 昂仁县| 阿荣旗| 包头市|