話很少說,先放項目體驗地址 (適配移動端) :掌上饑荒前端
在開始作以前,個人技術棧中只有vue
相關的前端知識。後端只瞭解一點mysql
,運維零基礎。一路支撐我走過來的動力,除了項目自己的價值以外,很大一部分在於探索未知技術領域的新奇感
。vue
自17年三月chrome提出漸進式
web應用後我就一直很關注,就想着實踐一下。從lavas
開始說吧,lavas
的初衷是快速地接入pwa
的相關特性,包括骨架屏
,離線緩存
,AppShell
等等。java
AppShell
是指把公共的組件像header
,slider
,底部導航
等抽象出來放到根組件。其它擁有路由的頁面只須要配置參數,以及根據eventBus
傳遞的事件作處理就能夠了,比起以前往子組件導入公共組件
的方式優雅很多。app結構
,而不是未鏈接互聯網。service worker
的使用是一個難點,各位有興趣能夠去lavas官方站點看看,那裏有不錯的文檔。最開始我只是想提供一些數據服務,後端用express
寫了一些簡單的接口,用mongo
存儲非結構化的物品資料的數據。部署的時候會用到pm2
,pm2的做用是代碼出錯node會自動重啓,而不是整個服務崩潰。剛上線的時候發現被植入了廣告,是一種被稱之爲dns劫持
的東西。就是第三方網絡運營商在dns服務器上作了手腳,開個dns雲解析
就行了。node
隨着用戶增長,我開始想實踐一些更復雜的功能,因而就接入了用戶系統
。就是登陸,註冊,發文,評論,回覆這些功能。express
很難支撐社區相關的業務邏輯,我須要一種更嚴謹的後端架構,因而開始使用egg
。egg
時基於的koa
的,開發體驗跟java後端那種mvc
的開發模式很像:mysql
egg
還有本身的插件接入mysql
和mongo
,而且制定了嚴格的規範。值得一提的是,使用egg
接入阿里雲
的一些服務會很方便。好比接入oss
作文件上傳。順帶一提,oss的功能很強大,好比你想使用不一樣尺寸或者不一樣壓縮比的圖片,只須要在圖片路徑後添加在oss控制檯添加好的樣式名就能夠了,而不用去改源文件。oss
接入cdn
也很是方便,網絡鏈路層的優化對於靜態資源加載速度的提高很大。同源策略
中有一項是同協議,也就是說http
訪問不了https
的接口,因此爲了實踐pwa
相關的特性作了全站https。webpack
阿里雲和騰訊雲其實都提供了免費的https證書,不過不是通配符
型的,也就是說你的二級域名用不了。因爲開了express
和egg
兩個服務,因此我分別申請了阿里雲和騰訊雲的證書,用nginx作代理。爲了使以前老用戶能夠正常訪問,還須要把http的80端口重定向到https的443端口。https部署的過程如今看來其實很簡單,就是把證書放到站點指定目錄下,而後更改nginx
的配置就能夠了,不過因爲以前沒接觸過運維相關的知識,折騰了很多時間。ios
我的項目很容易爛尾,究其緣由是得不到即時反饋。我有一些建議,幫助你持續堅持下去:nginx
財富自由
的可能,要麼能促進社區成長
,成就我的榮譽論壇
分享你的想法和進度,獲取反饋(百度貼吧)瀏覽量
和新增用戶
的起伏就是一個很好的反饋(Growingio是個不錯的選擇)淘寶聯盟
。從初級淘寶客
到擁有鑽石展位
,一路升級打怪,頗有意思。對我而言,完成這個項目最大的收穫應該是視野的提高。看問題的角度不只僅侷限於前端,也使得我在實際的工做中能承擔更多的任務和責任。web