最近已經不止乙個人和我提起過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已經是在這個方面在做了。
總而言之,前後端分離的趨勢是越來越明顯了。這個趨勢估摸不可逆,只有順著這個趨勢,慢慢適應了。
談前後端分離開發模式
前後端分離的開發模式 系統分析階段,係分和前端開發人員約定好頁面上所需的邏輯變數,進入功能開發階段,前端開發人員進行前台頁面結構,樣式,行為層的 編寫,並根據約定好的變數,邏輯規則,完成不同情況展示不同的表現。而後端開發人員,只需要按照約定,賦予這些變數含義,並提供前後端互動所需要的資料即可。以前自...
前後端分離
關於前後端分離的一些好的文章推薦 前端框架 為什麼前後端分離 最直白的理解,我認為是因為在開發過程中,前端總是需要等待後端的環境搭建好之後,前端才能獲取相關資料,對於前端的開發影響很大,事實上前端並不關心後端的開發,那麼有沒有方法不讓後端影響前端的開發呢?其實後端提供的是什麼?乙個執行伺服器,乙個就...
前後端分離
在此說明 前後端分離有利於後端的快速開發,但並不利於搜尋引擎優化 seo 上圖能清晰的看到,使用前後端分離模式進行開發,瀏覽器會向伺服器傳送請求,伺服器會向瀏覽器傳送乙個類似框架的html,是固定的空殼,此時瀏覽器再使用ajax請求向後端伺服器索要資料,後端伺服器返回json字串給瀏覽器,從而使瀏覽...