項目組針對影片詳情頁最原始的設計是使用xml靜態文件的形式向IPAD終端提供數據內容(可能更多地出于性能考慮),后來又使用json靜態文件 給安卓終端提供數據內容(文件內容小了點,比xml進步了些),但是這樣做的弊端越來越多,比如哪個終端想要有一些個性化的數據(獨家內容或者是mp4視 頻格式),這樣就不得不再為這個終端生成一批靜態文件,另外還得通過rsync同步這些靜態文件到前端服務器,又慢又繁瑣,而且偶爾還會同步不成功。
后來我們放棄了使用靜態文件的方式,使用redis來存儲詳情頁數據(通過腳本定時寫入或者是發布內容的時候觸發寫入),并使用redis自帶的主 從同步機制,將數據同步到前端各臺服務器。這樣做的好處是:不僅不用管內容的同步了,把所有同步問題都甩給redis本身,而且從redis里面取出數據 時,可以根據來自客戶端的不同請求參數(不同終端、不同版本),對數據進行各種的加工后再返回給客戶端。這樣,redis里面只是存儲原始數據,很好地實 現了數據和業務的分離。
設計基于HTTP的接口有很多值得考究的地方,推薦這2篇blog:RESTful API設計指南 HTTP API設計指南
另外還有一點值得一提,首頁的設計中,由于運營的需要,時常會加到幾個版塊,或者去掉某個版塊,這比較容易搞定,只要客戶端和服務端協商好就ok。但更繁 瑣的一般是當前版本的內容比上個版本的內容多了或少了幾個版塊,這時需要考慮的是復用老版本的數據(減少運營編輯的工作量),但是又不能影響到老版本的接 口,即向后兼容。
上一篇 網站不添加內容也有好的排名
下一篇 JSTL(必會使用)