分享一下前幾天學到的專案開發思路

amiba.org發表於2015-10-28

 

我本來有個微小的習慣就是一月鼓搗一篇博文出來.但是眼看這個月要觸底了,我覺得再不寫這個時間的連續性就被我打斷了,不太好.

於是朕強行裝逼,弄出這一篇文章.

閱讀前提是你認同PHP是最好的語言(我當然不認同,我為什麼要認同,哈哈).事情源於前幾天一個同時分享的前後端分離和開發的框架.我覺得他至少解決了2個問題.

 

前後端分離

我們平常用ASB.NET MVC的時候,涉及到動態資料那一部分最麻煩.首先一個頁面過來,服務端要分析裡面的html層次,然後弄個通用的佈局(layout)出來.然後涉及到動態資料輸出的,要自己用razor語法去遍歷,去填充.

填充其實不礙事吧.問題是你修改html結構,那就喜感了,有可能上述工作從第二步開始重做(複製html,用razor輸出資料)

然後呢,我們親愛的同事提出了使用Laravel 這個php框架.他給的思路是這樣的.讓前端學一些基礎的PHP語法.用php拼湊網頁.涉及到模板頁和內容頁的,用php模組化頁面.然後這些php檢視檔案和資料格式大家約定好,然後前端在控制器裡面寫入自己的資料,自己填充,前端做的東西作為整個專案的子集納入到專案中,不必知道服務端的具體實現,但是他知道資料是怎麼個樣子的.這樣就解決了前後端的矛盾.前提:

 

頁面模組化

都說php的膠水嘛,可以把各個模組之間快速地合併在一起.只要用上服務端語言,這是一件很簡單的事吧

 

版本迭代問題

版本迭代有時除了更新,應該有回滾吧.回滾是大家都想要的結果.我覺得是在某個地方出現了嚴重的錯誤時,短期內最有效的解決方案吧.服務端程式的更新暫不說,前端的話,涉及到cs和js這些靜態檔案.靜態檔案容易被快取.但是如果瀏覽器快取的是有問題的靜態資源的話,那麼加上cdn,這個問題就大了.

所以此時.在構建的時候 為每一個檔案末尾加上一個MD5/GUID,那麼每一個版本請求的靜態資源都有所不同.版本迭代的問題就解決啦(當時我也沒聽清楚具體的方案,給個思路自己腦補吧,哈哈).請配合版本管理系統使用

個人覺得的不足:

1.cdn變成垃圾場(這個問題是個偽問題,cdn是算流量的,所以垃圾場就垃圾場吧,哈哈)

2由於每一次上傳的都是新的靜態資源,所以上傳會浪費多那麼一點點的時間

 

Laravel 這個框架蠻不錯的,裡面很多東西感覺和ASB.NET MVC共通.比如模板頁,過濾器(在Laravel裡面叫中介軟體), 封裝好的request和response……

 


相關文章