先後端分離趨勢談

最近已經不止一我的和我提起過vue了,在個人前端印象中,我還停留在smarty渲染模版,jquery作js處理。學了一夜,對如今這種工程化webpack打包生成html,js,css的生產方式愈來愈有興趣了。工做年限擺在這裏的好處就是經歷了很多技術的變革,能從縱向思考下技術的變革和趨勢的路子。php

想一想好久之前剛開始接觸php的時候,說爲何要使用php?前輩告訴我由於php能很方便地生成html,php文件中能夠隨便地內嵌html,這樣你寫一個頁面就會行雲流水。後來呢,你們發現寫一個頁面還行,可是寫一個網站,這個寫法就受不了了。又臭又長的代碼,改一個頭部顏色,須要去好幾個文件裏面找東西。不行,就須要把模版從php中分離出來。因而我就接觸到了smarty,smarty很好地把模版渲染文件隔離開了,咱們能夠把模版文件放在一個文件夾中,不再須要和php代碼放在一塊兒了。css

如今呢?前端隔離到一個模版中仍是不夠好,數據和模版的結合放在服務端,致使至少php代碼和smarty模版須要放在同一個機器上,好嗎?如今的作法,在服務端只留一個最簡單的index.html,這個叫作單頁。咱們使用各類前端框架,react,vue,angular等,其實是把數據和模版的結合放在了瀏覽器端,也就是前端。html

先後端分離的路子基本就是這樣走的,在上一家公司的時候,我碰到了另一個「有年齡」的工程師,他告訴我,其實,php這邊的後端發展也是這樣發展的。前端

php這邊如今比較流行的仍是MVC的路子。比較複雜的邏輯,都是在Controller層中作的。可是實際上,聽說有一段時間,邏輯層是流行寫在數據庫中的,數據庫中會存在大量的存儲過程。這種方式我嘗試過一段時間,最後苦不堪言了結,當你一個金額結果出錯的時候,你須要一個一個地方思考各個表的存儲過程當中的邏輯是否有衝突的狀況存在。因此我很慶幸我沒有經歷過當時那種寫存儲過程的時期。vue

如今後端的邏輯也逐漸往代碼層轉移了。在代碼層進行增刪改查的行爲。數據庫只是單純的做爲存儲使用了。node

如今流行的微服務,其實也是一種演進,把後端邏輯層和數據層按照模塊進行橫向分離。mysql

固然,趨勢就是不可逆的。縱向思考下來,web技術的趨勢也是很是明顯了。分層,而且分的愈來愈完全。存儲+邏輯+模版,按照這樣的層級基本上存儲層已是mysql或者pg的戰場了。邏輯層如今仍是php,node,golang的戰場,模版層如今還在php和js框架過渡中。基本上會是js框架的勝利了。react

這種分層機制是雙刃劍。對於人員來講,它按照分層,把人分作了不一樣的工種。原先只有一種「網站開發員」的職位,如今已經分爲DBA+PHP開發+JS開發+切圖仔了。每一個人只有半分不到的地,慢慢種。對於工程來講,倒是好不少了,每一個層級分工明確,各專其事。各專其事的好處就是越底層越容易固化和自動化。好比如今存儲,基本上已經能夠固話爲一套流程了,一個小公司,即便沒有dba,普通開發也能作了,一些基本的優化和數據庫搭建等。接口api開發,我認爲早晚也會固化下來,而後一些前端開發人員也會漸漸很容易開發api,或許如今的nodejs已是在這個方面在作了。jquery

總而言之,先後端分離的趨勢是愈來愈明顯了。這個趨勢估摸不可逆,只有順着這個趨勢,慢慢適應了。webpack

相關文章
相關標籤/搜索