成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們為什么要嘗試前后端分離

開發 架構
這不是一篇純技術文章,而是一篇分享我個人在前后端分離路上收獲的點點滴滴的文章,以此來為準備嘗試前后端分離或者想了解前后端分離的童鞋做一個大體的講解。

這不是一篇純技術文章,而是一篇分享我個人在前后端分離路上收獲的點點滴滴的文章,以此來為準備嘗試前后端分離或者想了解前后端分離的童鞋做一個大體的講解。

嘗試與改變

如果你沒有嘗試過前后端分離的工作流程,那么可以先試想一下這樣的流程改變:

把流程從

PM:“我要這個功能”

后端:“這個先找前端做個模板”

前端:“模板做完了”

后端:“我來對接一下,這里樣式不對”

前端:“我改完了”

后端:“功能交付”

PM:“春節要加這個活動”

后端:“這個先找前端改個模板”

前端:“模板做完了”

后端:“我來對接一下,這里樣式不對”

前端:“我改完了”

后端:“功能交付”

變成

PM:“我要這個功能”

前端:“我要接口”

后端:“接口完成了”

前端:“我來對接一下,功能交付”

PM:“春節要加這個活動”

前端:“需要增加接口”

后端:“接口完成了”

前端:“我來對接一下,功能交付”

由此可見,前后端分離的主要概念就是:后臺只需提供API接口,前端調用AJAX實現數據呈現。

現狀與分歧

作為一名前端開發人員,我們應該嘗試一些新穎的技術,完善每一個細節性的問題,不斷突破自我。雖然前后端分離已經算不上什么新穎的技術或思路,但是目前很多后臺開發人員甚至前端開發人員都沒有接觸過。

據我個人的了解,如果在一個部門里,部門人員全是后臺開發人員,前端的一些頁面也是由后臺人員完成的,那么前后端分離對于他們而言可能是一片未知的領域,項目大多是前后端強耦合的,甚至不存在前端的概念。

在不重視前端的公司或部門,不了解前后端分離這也無可厚非。在我剛進入一個全是后臺開發人員的部門的時候,整個部門就我一個前端,我剛開始的主要職責就是負責項目前端頁面的制作和JS功能的實現,雖然部門有前后端分離的意識,但都不知該如何去實踐。在那時,部門的后臺人員認為前后端分離就是后臺不再需要寫HTML和JS了,可以交給前端來做了,然而這只能叫做前后端分工。

以上講述的是一種情況: 不了解前后端分離,也不知如何去實踐的。下面還有一種情況:了解前后端分離,但不想去嘗試的。

針對第二種情況,很多人也做過相應的解釋,其實這就涉及到“前后端分離的利弊”問題。很多后臺人員會認為自己所做的那一套沒有問題,即便后臺套用前端html也是司空見慣,一直是大勢所趨,后臺MVC框架也是這么推薦使用的,很合理。這時候前端開發人員在部門中的話語權往往是不夠的,或者認為后臺開發人員的意見永遠是對的,沒有主觀性。

相反,也有可能是后臺開發人員非常推薦前后端分離,而前端開發人員不想去實踐的。這時候前端會認為后臺開發人員在瞎折騰,之前前后端不分離項目做起來都很順利,分離了反而會給自己帶來額外的工作量和學習成本,而這就取決于前端的技術能力和見識了。

當然,這也是我個人認為的前后端分離所存在的一些現狀和分歧所在。

場景與要求

對于前后端分離的應用場景,不是所有的場景都適合,但是大多數項目都能夠通過前后端分離來實現。

由于我主要從事企業級后臺應用的前端開發工作,個人認為對于后臺應用的開發來說,前后端分離帶來的利是遠大于弊的。

大多數后臺應用我們都可以做成SPA應用(單頁應用),而單頁應用最主要的特點就是局部刷新,這通過前端控制路由調用AJAX,后臺提供接口便可以實現,而且這樣的方式用戶體驗更加友好,網頁加載更加快速,開發和維護成本也降低了不少,效率明顯提升。

同樣的,在展示類網站和移動APP頁面中前后端分離也同樣試用。前后端不分離的情況下,服務端要單獨針對Web端做處理,返回完整HTML,這樣勢必增加服務端的復雜度,可維護性差,而web端需要加載完整的HTML,一定程度上影響網頁性能,這對于移動端性能為王的地方非常的不友好。

隨著前端技術的發展和迭代,前端MVC框架應運而生,利用目前主流的前端框架,如React、Vue、Angular等我們可以輕松的構建起一個無需服務器端渲染就可以展示的網站,同時這類框架都提供了前端路由功能,后臺可以不再控制路由的跳轉,將原本屬于前端的業務邏輯全部丟給前端,這樣前后端分離可以說是最為徹底。下面是一段前端控制路由的代碼:

  1. 'use strict' 
  2.  
  3. export default function (router) { 
  4.     router.map({ 
  5.         '/': { 
  6.             component: function (resolve) { 
  7.                 require(['./PC.vue'], resolve) 
  8.             } 
  9.         }, 
  10.         '/m/:params': { 
  11.             component: function (resolve) { 
  12.                 require(['./Mobile.vue'], resolve) 
  13.             } 
  14.         }, 
  15.         '/p': { 
  16.             component: function (resolve) { 
  17.                 require(['./PC.vue'], resolve) 
  18.             }, 
  19.             subRoutes: { 
  20.                 '/process/:username': { 
  21.                     component: function (resolve) { 
  22.                         require(['./components/Process.vue'], resolve) 
  23.                     } 
  24.                 } 
  25.             } 
  26.         } 
  27.     }) 
  28.  

前后端分離的實現對技術人員尤其是前端人員的要求會上升一個層次,前端的工作不只是切頁面寫模板或是處理一些簡單的js邏輯,前端需要處理服務器返回的各種數據格式,還需要掌握一系列的數據處理邏輯、MVC思想和各種主流框架。

優勢與意義

對于前后端分離的意義我們也可以看做是前端渲染的意義,我主要總結了下面四點:

1. 徹底解放前端

前端不再需要向后臺提供模板或是后臺在前端html中嵌入后臺代碼,如:

  1. <!--服務器端渲染 --> 
  2. <select
  3.     <option value=''>--請選擇所屬業務--</option> 
  4.     {% for p in p_list %} 
  5.     <option value="{{ p }}">{{ p }}</option
  6.     {% endfor %} 
  7. </select 

這是前后端耦合的,可讀性差。

  1. <!--前端渲染 --> 
  2. <template> 
  3.     <select id="rander"
  4.         <option value=''>--請選擇所屬業務--</option> 
  5.         <option v-for="list in lists" :value="list" v-text="list"></option
  6.     </select
  7. </template> 
  8.  
  9. <script> 
  10. export default { 
  11.     data: { 
  12.         return { 
  13.             lists: ['選項一''選項二''選項三''選項四'
  14.         } 
  15.     }, 
  16.     ready: function () { 
  17.         this.$http({ 
  18.             url: '/demo/'
  19.             method: 'POST'
  20.         }) 
  21.         .then(function (response) { 
  22.             this.lists = response.data.lists // 獲取服務器端數據并渲染 
  23.         }) 
  24.     } 
  25. </script>  

上面是前端渲染的一段代碼,前端通過AJAX調用后臺接口,數據邏輯放在前端,由前端維護。

2. 提高工作效率,分工更加明確

前后端分離的工作流程可以使前端只關注前端的事,后臺只關心后臺的活,兩者開發可以同時進行,在后臺還沒有時間提供接口的時候,前端可以先將數據寫死或者調用本地的json文件即可,頁面的增加和路由的修改也不必再去麻煩后臺,開發更加靈活。

3. 局部性能提升

通過前端路由的配置,我們可以實現頁面的按需加載,無需一開始加載首頁便加載網站的所有的資源,服務器也不再需要解析前端頁面,在頁面交互及用戶體驗上有所提升。

4. 降低維護成本

通過目前主流的前端MVC框架,我們可以非常快速的定位及發現問題的所在,客戶端的問題不再需要后臺人員參與及調試,代碼重構及可維護性增強。

心得與體會

一路走來,項目一個接著一個,從一開始的后臺控制路由、后臺渲染頁面到現在的前端控制路由、前端渲染數據,工作流程和方式都發生了很大的變化。每當遇到下面情形的時候,我都會為前后端分離帶來的優勢而感慨一番:

  • 項目一開始制作前端頁面的時候,我不再需要后臺給我配置服務器環境了
  • 項目的前端文件可以在需要調用后臺接口的時候丟進服務器就好了,完全不需要事先放進去
  • 增加一個項目頁面需要配置路由的時候不再需要讓后臺同事給我加了,自己前端搞定
  • 前端文件里不再摻雜后臺的代碼邏輯了,看起來舒服多了
  • 頁面跳轉比之前更加流暢了,局部渲染局部加載非常快速
  • 頁面模板可以重復使用了,前端組件化開發提高了開發效率

等等。面對快速發展的前端,我們應該去適應其帶來的工作方式和流程的改變,目前的前后端分離的工作方式必然是今后的趨勢所在,作為一個前端開發人員,我們應當承擔這個普及前端新知識和改變現狀的職責。

只有嘗試了才知道適不適合,只有切身體會才能辨別誰是誰非,本文并非推崇一定要前后端分離,而是希望大家在合適的應用場景下去嘗試前后端分離,在豐富經驗的同時或許也會擦出火花。

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2018-07-20 15:25:02

2018-01-17 09:32:07

前后端分離架構

2017-10-11 13:25:00

前端

2019-06-12 19:00:14

前后端分離AppJava

2018-10-17 11:30:02

前后端代碼接口

2021-01-09 23:08:45

架構前端后端

2017-04-05 16:40:45

2020-09-29 07:42:34

互聯網分層架構前后端分離

2017-11-06 08:41:53

互聯網分層架構前后端

2023-02-08 16:29:58

前后端開發

2021-05-17 08:20:22

職場晉升轉型

2010-11-03 09:22:00

C語言

2014-05-30 15:56:26

iOS 8WWDC2014

2021-01-26 05:37:08

分庫分表內存

2021-09-18 09:45:33

前端接口架構

2015-02-26 09:41:50

2022-01-19 22:51:57

設計匿名用戶

2023-12-08 10:59:49

2021-06-21 10:04:12

微軟密碼Arsenault

2014-04-18 14:43:07

前后端分離NodeJS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费一级淫片aaa片毛片a级 | 日韩欧美国产一区二区 | 欧美一级二级三级 | 亚洲精品中文字幕中文字幕 | 国产精品成人一区二区 | 性色视频 | 国产精品一区二区三区久久久 | 欧美一卡二卡在线观看 | 国产乱码精品1区2区3区 | 亚洲欧美日本在线 | 欧美色综合一区二区三区 | 亚州无限乱码 | 成人国内精品久久久久一区 | 免费在线看a | 日韩免费看视频 | 韩三级在线观看 | 亚洲高清在线观看 | 免费一级片 | 国产精品国产三级国产aⅴ入口 | 国产自产c区 | 久久新视频 | 性一爱一乱一交一视频 | 精品久久国产 | 亚洲欧美在线免费观看 | 亚洲激情在线观看 | 成人精品啪啪欧美成 | 精品亚洲一区二区三区 | 久久精品国产免费看久久精品 | 国产精品综合视频 | 久久精品国产免费看久久精品 | 国产精品视频网 | 91文字幕巨乱亚洲香蕉 | 在线一级片 | 欧美日本久久 | 91av视频在线观看 | 久久久www | 在线观看国产www | www.97zyz.com| 久久久久久av | 欧美成人a∨高清免费观看 色999日韩 | 午夜精品一区二区三区在线观看 |