前后端分离趋势谈
最近已經(jīng)不止一個人和我提起過vue了,在我的前端印象中,我還停留在smarty渲染模版,jquery做js處理。學(xué)了一晚上,對現(xiàn)在這種工程化webpack打包生成html,js,css的生產(chǎn)方式越來越有興趣了。工作年限擺在這里的好處就是經(jīng)歷了不少技術(shù)的變革,能從縱向思考下技術(shù)的變革和趨勢的路子。
想想很久以前剛開始接觸php的時候,說為什么要使用php?前輩告訴我因為php能很方便地生成html,php文件中可以隨便地內(nèi)嵌html,這樣你寫一個頁面就會行云流水。后來呢,大家發(fā)現(xiàn)寫一個頁面還行,但是寫一個網(wǎng)站,這個寫法就受不了了。又臭又長的代碼,改一個頭部顏色,需要去好幾個文件里面找東西。不行,就需要把模版從php中分離出來。于是我就接觸到了smarty,smarty很好地把模版渲染文件隔離開了,我們可以把模版文件放在一個文件夾中,再也不需要和php代碼放在一起了。
現(xiàn)在呢?前端隔離到一個模版中還是不夠好,數(shù)據(jù)和模版的結(jié)合放在服務(wù)端,導(dǎo)致至少php代碼和smarty模版需要放在同一個機(jī)器上,好嗎?現(xiàn)在的做法,在服務(wù)端只留一個最簡單的index.html,這個叫做單頁。我們使用各種前端框架,react,vue,angular等,實(shí)際上是把數(shù)據(jù)和模版的結(jié)合放在了瀏覽器端,也就是前端。
前后端分離的路子基本就是這樣走的,在上一家公司的時候,我碰到了另外一個“有年齡”的工程師,他告訴我,其實(shí),php這邊的后端發(fā)展也是這樣發(fā)展的。
php這邊現(xiàn)在比較流行的還是MVC的路子。比較復(fù)雜的邏輯,都是在Controller層中做的。但是實(shí)際上,據(jù)說有一段時間,邏輯層是流行寫在數(shù)據(jù)庫中的,數(shù)據(jù)庫中會存在大量的存儲過程。這種方式我嘗試過一段時間,最后苦不堪言告終,當(dāng)你一個金額結(jié)果出錯的時候,你需要一個一個地方思考各個表的存儲過程中的邏輯是否有沖突的情況存在。所以我很慶幸我沒有經(jīng)歷過當(dāng)時那種寫存儲過程的時期。
現(xiàn)在后端的邏輯也逐漸往代碼層轉(zhuǎn)移了。在代碼層進(jìn)行增刪改查的行為。數(shù)據(jù)庫只是單純的作為存儲使用了。
現(xiàn)在流行的微服務(wù),其實(shí)也是一種演進(jìn),把后端邏輯層和數(shù)據(jù)層按照模塊進(jìn)行橫向分離。
當(dāng)然,趨勢就是不可逆的。縱向思考下來,web技術(shù)的趨勢也是非常明顯了。分層,并且分的越來越徹底。存儲+邏輯+模版,按照這樣的層級基本上存儲層已經(jīng)是mysql或者pg的戰(zhàn)場了。邏輯層現(xiàn)在還是php,node,golang的戰(zhàn)場,模版層現(xiàn)在還在php和js框架過渡中。基本上會是js框架的勝利了。
這種分層機(jī)制是雙刃劍。對于人員來說,它按照分層,把人分做了不同的工種。原先只有一種“網(wǎng)站開發(fā)員”的職位,現(xiàn)在已經(jīng)分為DBA+PHP開發(fā)+JS開發(fā)+切圖仔了。每個人只有半分不到的地,慢慢種。對于工程來說,卻是好很多了,每個層級分工明確,各專其事。各專其事的好處就是越底層越容易固化和自動化。比如現(xiàn)在存儲,基本上已經(jīng)可以固話為一套流程了,一個小公司,即使沒有dba,普通開發(fā)也能做了,一些基本的優(yōu)化和數(shù)據(jù)庫搭建等。接口api開發(fā),我認(rèn)為遲早也會固化下來,然后一些前端開發(fā)人員也會漸漸很容易開發(fā)api,或許現(xiàn)在的nodejs已經(jīng)是在這個方面在做了。
總而言之,前后端分離的趨勢是越來越明顯了。這個趨勢估摸不可逆,只有順著這個趨勢,慢慢適應(yīng)了。
原文地址:http://www.cnblogs.com/yjf512/p/6368949.html
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注
總結(jié)
- 上一篇: 云计算设计模式(四)——消费者的竞争模式
- 下一篇: CoreCLR源码探索(三) GC内存分