李云
(長(zhǎng)治職業(yè)技術(shù)學(xué)院 山西省長(zhǎng)治市 046000)
近年來(lái),我國(guó)的互聯(lián)網(wǎng)技術(shù)得到了快速發(fā)展,其中,在進(jìn)行系統(tǒng)軟件開發(fā)和研究的過(guò)程中,出現(xiàn)了許多不合理問題,嚴(yán)重影響了用戶的體驗(yàn)效果,同時(shí)對(duì)于軟件開發(fā)公司來(lái)講,也產(chǎn)生了不良的影響。將MVC 框架合理化的應(yīng)用到Web 前端設(shè)計(jì)工作中,能夠有效避免上述問題的發(fā)生,從而推動(dòng)技術(shù)研發(fā)工作的順利開展。
在Web 網(wǎng)絡(luò)不斷深入發(fā)展的背景下,Web 前端開發(fā)逐漸得到了廣泛的應(yīng)用。在早期的前端開發(fā)工作中,其內(nèi)容相對(duì)較為簡(jiǎn)單。這幾年來(lái),在智能手機(jī)和平板電腦的強(qiáng)烈沖擊影響下,訪問互聯(lián)網(wǎng)的設(shè)備越來(lái)越豐富。雖然在很大程度上方便了用戶的生活、工作和學(xué)習(xí)。但是從另一方面來(lái)看,這對(duì)于前端代碼的平臺(tái)性、復(fù)用性等帶來(lái)了更大的挑戰(zhàn)。如果其中有一個(gè)跨平臺(tái)性強(qiáng)、復(fù)用性好的框架,就能夠有效提升資源的開發(fā)效率和質(zhì)量。因此,相關(guān)的技術(shù)人員和開發(fā)人員在認(rèn)識(shí)到了這一時(shí)代背景和發(fā)展要求之后,進(jìn)行了不斷的探索和研究,推動(dòng)了MVC 模型在Web 后臺(tái)開發(fā)中的廣泛應(yīng)用。
在傳統(tǒng)MVC 模式中,一個(gè)應(yīng)用系統(tǒng)主要被分為了模型層、視圖層和控制層三個(gè)方面的內(nèi)容。具體來(lái)看,MVC 主要包含了三個(gè)方面的內(nèi)容,即:Model、View、Controller。
其中,Model 主要指的是數(shù)據(jù)模型。在系統(tǒng)中,開展數(shù)據(jù)處理的工作,并且可以借助該模型直接進(jìn)行數(shù)據(jù)的訪問。在應(yīng)用的過(guò)程中,需要結(jié)合一些包裝或者其他應(yīng)用程序等方面的內(nèi)容,借助相關(guān)的業(yè)務(wù)邏輯對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單化處理,從而獲得有效的數(shù)據(jù)和相關(guān)信息。
View:即數(shù)據(jù)查看的視圖。在完成了數(shù)據(jù)模型的構(gòu)建之后,整個(gè)系統(tǒng)中便會(huì)囊括眾多的數(shù)據(jù)和相關(guān)參數(shù)等信息,需要研發(fā)人員對(duì)其進(jìn)行合理化處理。從而在充分利用數(shù)據(jù)信息的基礎(chǔ)之上,進(jìn)一步提升系統(tǒng)運(yùn)行效率。一般來(lái)講,在視圖上,沒有固定的邏輯。為了充分發(fā)揮出視圖上的最新功能,需要對(duì)其所監(jiān)視的數(shù)據(jù)模型進(jìn)行訪問。從而獲取相關(guān)數(shù)據(jù),進(jìn)行有效分析。
Controller:即控制器。數(shù)據(jù)模型和視圖在查看和應(yīng)用過(guò)程中,需要借助到一定的載體。在應(yīng)用系統(tǒng)中,Controller 便是充當(dāng)這樣的解決。對(duì)其所控制的應(yīng)用程序進(jìn)行流程管控,加強(qiáng)數(shù)據(jù)模型和視圖之間的聯(lián)系。在進(jìn)行一些事件處理活動(dòng)中,需要對(duì)系統(tǒng)快速的作出反應(yīng)。在當(dāng)前階段,處理事件不僅僅簡(jiǎn)單包括用戶的行為,同時(shí)還包含了在數(shù)據(jù)模型上的處理。在此過(guò)程中,控制器需要主動(dòng)、自發(fā)的捕捉用戶事件。借助到模型層的積極作用,對(duì)于相關(guān)數(shù)據(jù)和信息做出更新反映。在完成上述內(nèi)容和操作之后,模型層需要進(jìn)行及時(shí)的更新。同時(shí),將更新內(nèi)容和變更通知傳輸給視圖,視圖便會(huì)根據(jù)系統(tǒng)運(yùn)行的要求,做出相應(yīng)改變。從其積極作用來(lái)看,這樣的應(yīng)用系統(tǒng),借助到控制器的優(yōu)勢(shì),使得視圖和數(shù)據(jù)模型之間保持了較高的一致性。在進(jìn)行后期操作和數(shù)據(jù)處理過(guò)程中,便會(huì)帶來(lái)極大便利,在一定程度上有效的提高了系統(tǒng)運(yùn)行的效率和數(shù)據(jù)信息處理的高效性。因此,該系統(tǒng)能夠在社會(huì)層面得到廣泛應(yīng)用。
當(dāng)前階段,在技術(shù)人員不斷研究和開發(fā)的過(guò)程中,出現(xiàn)了眾多前端MVC 框架,比如:Backbone.Js、Angular.Js、Ember.Js、Javascript MVC、Knockout.Js。本篇文章在綜合了相關(guān)調(diào)查和研究之后,主要從Backbone.Js、Angular.Js、Ember.Js、Javascript MVC、Knockout.js 的角度進(jìn)行分析。
Backbone.Js:在該框架中,主要解決的是在應(yīng)用中層次中發(fā)生的分離問題。并且能夠結(jié)合持久層的優(yōu)勢(shì),進(jìn)行有效聯(lián)合,從而達(dá)到RISE 同步服務(wù)、事件驅(qū)動(dòng)、模板和定位的目的。另一方面,在model 被修改之后,View 系統(tǒng)還能夠自動(dòng)更新。因其靈活性較高、便利性特征明顯,已經(jīng)有很多大型公司在進(jìn)行Web 前端框架建構(gòu)工作中,借助到了該框架的優(yōu)勢(shì),實(shí)現(xiàn)對(duì)應(yīng)用建設(shè)的目的。在此過(guò)程中,還有一個(gè)良好的社區(qū)為其提供其他相關(guān)性的服務(wù),為用戶的相關(guān)操作帶來(lái)極大便利性。
Ember.Js:當(dāng)前階段,在進(jìn)行Ember.Js 應(yīng)用中,多是集中在一些桌面方面的應(yīng)用開發(fā)工作中。具體來(lái)看,借助到該框架的積極作用和其優(yōu)勢(shì),能夠?qū)崿F(xiàn)模塊化、標(biāo)準(zhǔn)化的頁(yè)面設(shè)計(jì)與分類,并且能夠支持MVC 運(yùn)行的效率。在此過(guò)程中,其還表現(xiàn)出了明顯自動(dòng)化的特點(diǎn)。不需要自行對(duì)所有的數(shù)據(jù)和信息進(jìn)行處理,只需要借助到系統(tǒng)的優(yōu)勢(shì),對(duì)一些模塊進(jìn)行自動(dòng)更新即可。另外,如果在系統(tǒng)運(yùn)行中,發(fā)現(xiàn)了用戶信息和裝填不對(duì)的問題,能夠進(jìn)行自動(dòng)更新,保持用戶處在相對(duì)穩(wěn)定狀態(tài)中。除此之外,如果發(fā)生了一些較為簡(jiǎn)單的故障問題,用戶和相關(guān)工作人員能夠根據(jù)其所提供的說(shuō)明性文件以及相關(guān)模板,進(jìn)行自行處理,保障系統(tǒng)的穩(wěn)定運(yùn)行。另外,這種框架在運(yùn)行的過(guò)程中,還有效結(jié)合了大數(shù)據(jù)系統(tǒng)的優(yōu)勢(shì),將整個(gè)運(yùn)行過(guò)程中,所產(chǎn)生的各種參數(shù)都被及時(shí)、有效記錄在檔案數(shù)據(jù)庫(kù)中。在聯(lián)網(wǎng)之后,能夠?qū)?shù)據(jù)信息及時(shí)更新。在后期工作中,若是發(fā)現(xiàn)了其它一些問題,結(jié)合數(shù)據(jù)庫(kù)中相關(guān)參數(shù)和數(shù)據(jù)的作用,便可以有效處理,從而到達(dá)系統(tǒng)穩(wěn)定運(yùn)行的目的。
Angular.JS:這是一種由Google 公司所進(jìn)行研究和開發(fā)出來(lái)的JS 框架。從其積極作用來(lái)看,結(jié)合應(yīng)用程序擴(kuò)展的優(yōu)勢(shì),實(shí)現(xiàn)對(duì)HTML 詞匯的深度開發(fā)。在現(xiàn)階段Web 程序應(yīng)用中,借助到HTML 的動(dòng)態(tài)內(nèi)容,達(dá)到快速檢測(cè)、對(duì)URL 系統(tǒng)進(jìn)行有效管理和MVC 框架進(jìn)行分離的目的??傮w來(lái)看,雖然其和基礎(chǔ)的MVC 模型之間存在著一定差異,但是其所表達(dá)的中心思想和產(chǎn)生的作用都和MVC 模型保持了較高的一致性。在框架應(yīng)用中,Model 主要負(fù)責(zé)是對(duì)于View 所產(chǎn)生數(shù)據(jù)、信息、數(shù)據(jù)處理邏輯等內(nèi)容進(jìn)行處理。主要包括了:讀寫、更新、刪除和轉(zhuǎn)化等方面內(nèi)容。View 主要負(fù)責(zé)的是接受并顯示Model 在完成信息處理之后,所進(jìn)行的數(shù)據(jù)和相關(guān)用戶信息的導(dǎo)入,并且完成相關(guān)事件的反映。系統(tǒng)在完成了更新內(nèi)容之后,還需要將最新的信息及時(shí)向用戶反饋,讓用戶能夠?qū)Υ擞兄浞?、?zhǔn)確的認(rèn)識(shí)。Controller 主要負(fù)責(zé)是對(duì)于各種業(yè)務(wù)和事件的邏輯化處理。因此,從整體上來(lái)看,整個(gè)Web應(yīng)用流程是這樣的:首先,需要用戶在View 上完成相關(guān)操作,包括在文本框上數(shù)值輸入,并點(diǎn)擊相關(guān)的按鈕,進(jìn)行相應(yīng)內(nèi)容的處理。其次,Controller 在接收到用戶指令之后,對(duì)該動(dòng)作進(jìn)行處理。可以結(jié)合Model 系統(tǒng)的優(yōu)勢(shì),對(duì)于其中各項(xiàng)數(shù)據(jù)進(jìn)行增、刪、查和修改,從而達(dá)到數(shù)據(jù)準(zhǔn)確、精細(xì)化處理的目的。最后,需要將這些信息及時(shí)傳輸?shù)絍iew 系統(tǒng)中,向用戶進(jìn)行反饋。
在結(jié)合具體的調(diào)查和研究中可以發(fā)現(xiàn):因?yàn)榍岸丝蚣芎蚸Query的相連性較大。因此,在提到前端框架時(shí),便會(huì)不自覺的想起jQuery。為此,還需要對(duì)二者之間的差別進(jìn)行研究和分析。許多程序員認(rèn)為借助到j(luò)Query 優(yōu)勢(shì),便可以完成對(duì)前端開發(fā)工作中的各項(xiàng)需求,MVC 框架的引入和研究顯然是沒有必要的。很明顯,這種想法是錯(cuò)誤的。
具體來(lái)看,jQuery 等庫(kù)在嚴(yán)格意義上,都不能算是基本的框架,而是應(yīng)該將其放入到“庫(kù)”這一層面進(jìn)行研究。庫(kù)和框架的主要區(qū)別在于:“庫(kù)”作為一種系統(tǒng)化工具,能夠?qū)崿F(xiàn)對(duì)各種代碼和模塊級(jí)別信息、數(shù)據(jù)等方面內(nèi)容簡(jiǎn)單或者復(fù)雜處理。在此過(guò)程中,庫(kù)為相關(guān)問題的解決提供了諸多的封裝好的辦法。工作人員只需要結(jié)合具體工作需求,對(duì)其進(jìn)行合理化使用,便可以達(dá)到信息處理的目的。如果使用了這些封裝好的辦法,也不會(huì)影響到系統(tǒng)本身的代碼結(jié)構(gòu)。而框架則與之相反??蚣茉趹?yīng)用過(guò)程中,更加傾向于是對(duì)某個(gè)問題或者某一領(lǐng)域的一整套解決方案,從而更好提升系統(tǒng)和軟件開發(fā)的效率。相應(yīng)的,框架能夠被廣泛應(yīng)用在模式級(jí)別的開發(fā)工作中,實(shí)現(xiàn)對(duì)程序組織的規(guī)范化處理。在應(yīng)用該框架的過(guò)程中,需要嚴(yán)格遵循框架所提出的具體要求。
從這方面進(jìn)行分析,二者的主要區(qū)別在于:jQuery 在應(yīng)用過(guò)程中,需要充分發(fā)揮并借助DOM 操作系統(tǒng)的積極作用,將其作為整個(gè)應(yīng)用的核心。而在MVC 框架應(yīng)用過(guò)程中,主要是將模型作為應(yīng)有的中心,其他DOM 操作都屬于附加內(nèi)容。為此,這種中心系統(tǒng)不同、問題解決的針對(duì)性不同,也有著不同的使用范圍。結(jié)合前端MVC 框架優(yōu)勢(shì),能夠?qū)崿F(xiàn)對(duì)整個(gè)工作流程和系統(tǒng)的變更。在其運(yùn)行的過(guò)程中,如果后期的工程師需要對(duì)前端的數(shù)據(jù)和代碼進(jìn)行再次的處理,只需要將前后端徹底打通即可。交互工程師在進(jìn)行UI 和模型的互動(dòng)關(guān)系處理時(shí),可以讓工作人員保持在更加專注、無(wú)障礙工作環(huán)境中,并且實(shí)現(xiàn)對(duì)HTML 源碼高效處理。結(jié)合模板的形式,將其提供給交互工程師,供其參考。整個(gè)協(xié)調(diào)機(jī)制,雖然工程量相對(duì)較大,但是工作人員進(jìn)行相互協(xié)調(diào),能夠有效的提高工作效率。
在時(shí)代快速發(fā)展的背景下,許多人都提出了質(zhì)疑,將MVC 框架應(yīng)用到前端開發(fā)工作中,是否還能夠彰顯其積極作用。在對(duì)后端開發(fā)程序員調(diào)查了之后,可以發(fā)現(xiàn):大部分的程序員都會(huì)認(rèn)為前端開發(fā)層相對(duì)較薄,他們很難理解在前端開發(fā)設(shè)計(jì)中應(yīng)用MVC 框架的意義。另外,很多從事于互聯(lián)網(wǎng)前端開發(fā)的程序員并未充分認(rèn)識(shí)到MVC 框架所產(chǎn)生的積極作用。為此,便需要從前端MVC 框架應(yīng)用范圍角度進(jìn)行考慮。
從其原因進(jìn)行分析,這主要是因?yàn)樵谡麄€(gè)項(xiàng)目體系中,Model模塊還不夠復(fù)雜。在傳統(tǒng)的開發(fā)工作中,Model 部分的代碼是最為復(fù)雜的,而View 這部分內(nèi)容則相對(duì)較少。但是在互聯(lián)網(wǎng)的研究中,卻呈現(xiàn)出了與之截然不同的現(xiàn)象。因此,這樣的現(xiàn)象便會(huì)導(dǎo)致了部分程序員認(rèn)知錯(cuò)誤的問題。為此,在進(jìn)行前端MVC 框架的使用范圍研究活動(dòng)中,需要從產(chǎn)品類型角度出發(fā),進(jìn)行充分的考慮。具體來(lái)看,如果是在頁(yè)面類型的產(chǎn)品開發(fā)和應(yīng)用中,只需要借助到服務(wù)器的優(yōu)勢(shì),便可以生成相關(guān)的Web 頁(yè)面和相關(guān)視圖。在此過(guò)程中,如果能夠結(jié)合JavaScript 或者jQuery 的優(yōu)勢(shì),能夠進(jìn)一步增強(qiáng)頁(yè)面的互動(dòng)性和趣味性。如果是在進(jìn)行應(yīng)用軟件之類的產(chǎn)品開發(fā)工作中,便需要從結(jié)構(gòu)框架角度進(jìn)行考慮,對(duì)其進(jìn)行合理化研究和應(yīng)用。
比如:在進(jìn)行程序開發(fā)工作中,可能還會(huì)利用到API 或者服務(wù)器通訊等方面內(nèi)容。在此過(guò)程中,如果能夠結(jié)合成熟框架的優(yōu)勢(shì),便可以極大提高工作效率,為程序員減輕諸多的負(fù)擔(dān)。為此,在今后的工作中,便需要相關(guān)工作人員進(jìn)行不斷地研究,結(jié)合具體的軟件開發(fā)需求,從產(chǎn)品的復(fù)雜性程度進(jìn)行充分考慮,選擇合適的框架。這不僅能夠在一定程度上提升工作效率和軟件開發(fā)質(zhì)量,同時(shí)對(duì)于互聯(lián)網(wǎng)技術(shù)的發(fā)展也能夠產(chǎn)生推動(dòng)作用。
將MVC 框架運(yùn)用到Web 系統(tǒng)前端的開發(fā)和設(shè)計(jì)工作中,具有積極的社會(huì)意義。當(dāng)前階段,在用戶的安全需求、系統(tǒng)高效運(yùn)轉(zhuǎn)需求不斷增長(zhǎng)的背景下,相關(guān)的技術(shù)人員需要加大研究的力度,進(jìn)一步提升器運(yùn)行的合理性和高效性。