前后端分離趨勢談


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

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

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

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

php這邊現在比較流行的還是MVC的路子。比較復雜的邏輯,都是在Controller層中做的。但是實際上,據說有一段時間,邏輯層是流行寫在數據庫中的,數據庫中會存在大量的存儲過程。這種方式我嘗試過一段時間,最后苦不堪言告終,當你一個金額結果出錯的時候,你需要一個一個地方思考各個表的存儲過程中的邏輯是否有沖突的情況存在。所以我很慶幸我沒有經歷過當時那種寫存儲過程的時期。

現在后端的邏輯也逐漸往代碼層轉移了。在代碼層進行增刪改查的行為。數據庫只是單純的作為存儲使用了。

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

當然,趨勢就是不可逆的。縱向思考下來,web技術的趨勢也是非常明顯了。分層,並且分的越來越徹底。存儲+邏輯+模版,按照這樣的層級基本上存儲層已經是mysql或者pg的戰場了。邏輯層現在還是php,node,golang的戰場,模版層現在還在php和js框架過渡中。基本上會是js框架的勝利了。

這種分層機制是雙刃劍。對於人員來說,它按照分層,把人分做了不同的工種。原先只有一種“網站開發員”的職位,現在已經分為DBA+PHP開發+JS開發+切圖仔了。每個人只有半分不到的地,慢慢種。對於工程來說,卻是好很多了,每個層級分工明確,各專其事。各專其事的好處就是越底層越容易固化和自動化。比如現在存儲,基本上已經可以固話為一套流程了,一個小公司,即使沒有dba,普通開發也能做了,一些基本的優化和數據庫搭建等。接口api開發,我認為遲早也會固化下來,然后一些前端開發人員也會漸漸很容易開發api,或許現在的nodejs已經是在這個方面在做了。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM