仿站定制優惠中 --更多類型選擇聯系-> 服務熱線:13025755889
當前位置:網站首頁 >> 新聞資訊 >> 互聯網資訊 >> 查看詳情
新聞資訊
互聯網資訊

互聯網資訊

學會web開發,你的前端道路將會通暢無比

來源:惠州網站建設  日期:2019-11-18 09:59:17  點擊: 
前后分離結束后已經是由行業/部署模型開發了一個共識。前端和后端的所謂的分離,而不是由傳統產業部門,有些人純粹前端(HTML / CSS / JavaScript的/ Flex的),另一部分純做后端,因為在這種方式不工作:比如,很多球隊采取了模板技術(JSP,FreeMarker的,雇員再培訓局等后端.),前端開發和調試支持后臺需要一個Web容器,不能真正分開(更不用提在部署的時候,由于動態內容和混合靜態內容,動態設計時的靜態分流時的過程很繁瑣)。對于前端和后端的發展的另一個討論可以在這里找到。
 
  前后分離結束后已經是由行業/部署模型開發了一個共識。前端和后端的所謂的分離,而不是由傳統產業部門,有些人純粹前端(HTML / CSS / JavaScript的/ Flex的),另一部分純做后端,因為在這種方式不工作:比如,很多球隊采取了模板技術(JSP,FreeMarker的,雇員再培訓局等后端.),前端開發和調試支持后臺需要一個Web容器,不能真正分開(更不用提在部署的時候,由于動態內容和混合靜態內容,動態設計時的靜態分流時的過程很繁瑣)。對于前端和后端的發展的另一個討論可以在這里找到。
 
  API甚至前解耦問題,后通過前端和后端,動態和靜態內容計算出最終結束的發展過程中,通信接口,分別是開發,部署,集成仍然是繞不開的一個 - 一個前端/后端應用程序可以獨立運行,但不整合工作。我們需要花很多精力去調試,直到上線還不具備所有的接口都工作的信心。
 
  一點背景知識
 
  一個典型的Web應用程序的布局是這樣的:
 
  前端和后端都各自有自己的發展過程中,構建工具,測試儀等.。前端和后端只是編程接口,這個接口可以是基于REST的JSON格式的接口外,還XML,重點是只提供后臺數據和計算結果負責,但不處理展。前端負責獲取數據,組織數據和目前的工作。清除這樣的結構,的顧慮,前端和后端變得相對松散耦合和獨立性分離。
 
  上述場景是相當不錯的,其實我們是在一個真實的環境中有非常復雜的場景,比如異構網絡,異構操作系統等:
 
  在真實的場景中,后端也可能更加復雜,比如用C語言做數據收集,然后集成到Java中,數據倉庫的Web服務,然后另一層,最后幾個這樣的Web服務數據倉庫已聚合服務的Ruby一起回到前端。在這樣一個復雜的系統,任何背景端點的故障可能妨礙發展過程的前端,所以我們將使用模擬的方式來解決這個問題:
 
  此服務器可以發起一個簡單的HTTP服務器,然后服務于一些靜態的內容時,使用前端代碼。許多這樣的好處:
 
  發展獨立前端和后端
 
  后端的時間表不會影響前端開發
 
  啟動速度更快
 
  前端和后端可以使用他們熟悉的技術堆棧(讓科學Maven的前端,背部有一大口到底會做出很順利)
 
  但是,當積分仍然是一個令人頭疼的問題。 我們經常在集成時發現初始協商的數據結構發生變化:字段可能是一個字符串數組現在變成(業務發生變化時,系統現在可以支持多個送貨地址)一個;  現場變成一個字符串,當協商;  用戶電子郵件地址等多個級別。這些變化是不可避免的發生,這會耗費大量時間的調試和集成時間,更不用說修改后的回歸測試。
 
  所以僅使用一個靜態的服務器,然后提供的數據是不夠的。我們還需要完成:
 
  模擬前端依賴指定的數據格式UI開發
 
  前端開發和模擬測試基于這些數據
 
  生成指定的模擬后端數據格式
 
  后端需要進行測試,以確保所產生的模擬數據是前端需要
 
  總之,我們需要在一些合同,這些合同作為中間格式,可以進行測試的同意。然后,你需要測試前和測試使用這些合同結束后有。一旦合同被改變,其他的測試會失敗,這將推動雙方,減少時間積分的浪費。
 
  實際的情況是:合同的前端已經發現,缺少一個字段,所以他說在合同領域。然后,在這個領域來顯示(右UI當然,設置字體,大小,顏色等.)。然而,后臺渲染服務合同并沒有意識到這種變化,運行生成合同時的測試(背景)的一部分,該測試將失敗 - 因為它不會產生該場。因此,后端到前端工程師尋找,討論,了解業務邏輯之后,他將修改代碼,并確保通過測試。因此,在積分時,就不會顯得不那么在UI的字段,但誰也不知道問題出在前面,后端問題,還是數據庫的問題。
 
  而實際的項目中,往往是多個頁面,多個API,多個版本,多個團隊同時開發,這份合同將減少調試時間很多,使得集成相對平穩。
 
  在實踐中,合同可以被定義為一個文件JSON或XML有效載荷。只要確保前端和后端共享同一組合同做了測試,它將從整合工作中受益。最簡單的形式是:提供一些靜態文件,并請求發回的所有前臺將被拒絕某種機制,并轉換成靜態資源的請求。
 
  莫科,基于Java
 
  wiremock,基于Java
 
  西納特拉,基于Ruby
 
  看到這里列出的可能是熟悉人會有異議:它不過是一個功能齊全的圖書館啊。為什么它被列出來,因為提供了一個簡單而優雅,這種語言是很適合的原因,我無法找到一個更華麗的方式,使這個更具可讀性,所以我們通過它。
 
  一個例子
 
  在本申請中,我們有作為一個例子,來說明如何,前分離的后端后,確保了代碼的質量,降低集成的成本。該方案很簡單:每個人都可以看到項目的列表,每個登錄用戶可以選擇自己最喜愛的項目,而為之出演。之后,進入出演保存到用戶自己的。用戶界面看起來是這樣的:
 
  然而,為了專注于我們的核心,我刪除了諸如登陸,喜歡網頁的個人中心,假設你是一個登錄用戶,然后我們看看如何編寫測試。
 
  前端開發
 
  根據通常的實踐中,前端和后端的分離之后,一些數據很容易測試自己:
 
  于是,一種可能的方式是通過請求JSON接待對此進行測試:
 
  所以,無論是工作,但這里的發送請求沒有最終確定,我們需要修改的實時當整合。一個簡單的方法是使用一個URL來執行轉換:
 
  這樣,當我們和實際的服務集成,只需要連接到服務器就可以了。
 
  請注意,我們現在這個文件的核心。該文件正處于合同的作用,至少對于前端是這樣的。然后,我們需要渲染的功能,這就需要另一份合同中的應用:尋找當前用戶的所有條目出演過,所以我們加入了一個新的合同:
 
  然后添加一個新的映射:
 
  通過這兩個要求,我們會得到兩個列表,然后繪制出所有基于這兩個列表的交集的星號(部分是中空的,以及一些固體)的狀態:
 
  剩下的問題是,當你點擊的心,我們需要發送到后端的請求,然后更新心中的地位:
 
  在這里,除了請求出的,但我們仍然使用西納特拉可以輕松地支持它:
 
  它可以在沒有后端可以看出,我們一切順利 - 甚至沒有開始做后端,或正在使用的不是我們的開發團隊進展較慢,但不要緊,就不會影響我們。
 
  不僅如此,當我們完成了前端代碼,你可以做一個測試。由于使用模擬數據,省去了耗時的數據庫和網絡的需求,本次測試將運行速度非常快,而且它確實起到最終作用到結束。最終整合這些測試也可以用來當UI試運行。所謂一舉多得。
 
  關于如何寫這樣一個測試,你可以寫這篇文章的引用之前。
 
  后端開發
 
  我在這個例子中,后端使用作為一個例子,你應該能夠很容易地應用了類似的想法,Ruby或其他語言。
 
  首先是高考的要求,將負責解析請求路徑,檢查數據庫,并以JSON格式返回數據。
 
  詢問我們不討論,有興趣的可以找到鏈接到代碼庫在文章的結尾的具體細節。一旦你有了這個然后,控制器,來測試我們如何做?或者說,如何使合同變成實際可用尚?
 
  提供了一個非常漂亮的DSL寫一個測試,我們只需要一點點的代碼可以與他們簽訂合同和實際修改監督的界面:
 
  建立mockmvc后,我們可以寫控制器單元測試:
 
  發送請求,并期望后,返回狀態是200,則內容。然后,我們希望返回的結果是一個長度為3的陣列,然后是陣列中的第一個元素的字段不為空。
 
  注意,這里依賴于一個事實,即它會載入文件 - 也就是用來模擬測試文件的前端:
 
  因此,當后端修改定義(添加/刪除/修改字段),或修改的模擬數據等. ,將導致測試失敗;  但前端修改后的模擬,將導致測試失敗 - 而不是害怕失敗的 - 這樣的失敗將促進協商,推動了服務的最終合同。
 
 

本文由惠州欣惠網絡整理發布,轉載請注明出處:http://www.iocsbs.icu/itzx/1193.html

Copyright ? 2013-2019 www.iocsbs.icu 惠州網站建設 欣惠網絡公司 版權所有 粵ICP備19023339號-1
铁路大亨2怎么赚钱 河北十一选五口诀 民生银行股票 湖北30选5开奖公告 七星彩开奖结果查询 广西十一选五平台 股市走势技术分析 黑龙江十一选五前三遗漏 二分彩是哪里的彩票 登山赛车3 好运快三5分钟一期的规则