經過學習、應用nodejs推進了公司的先後端分離,寫了幾篇分享,有網友反饋說這個技術棧拉的長了,如何去學習。前端
http://segmentfault.com/a/1190000002978095node
http://segmentfault.com/a/1190000003694736react
技術學習無非就是學一點,用一點,如此反覆而已,不是看一點教程照着作些demo就能夠的,況且不少新技術的教程demo都是彼此複製的。android
技術要學以至用,就是須要應用到實際項目才能融會貫通,但公司項目每每不能知足學習實踐的要求,這也是面試者經常使用會抱怨平臺不足的問題,大部分人都會遇到這種狀況,其實平臺永遠都不足的,須要本身去想辦法解決。能夠模擬一個較實際的項目,將技術加以應用,提供有說服力的數據,分析其優劣,再向公司推廣,這樣纔是可持續的、互利的,我就是這樣在項目中推動了先後端分離實踐,部分系統所有用nodejs+mongodb來完成。webpack
前端作了四年半了,在思考進一步完善技術棧,近來又總結了些技術,準備把個人站點<www.upopen.cn> 重構下,儘可能運用所學技術,如若效果不錯,再運用到公司項目裏。nginx
站點規劃以下:git
功能:
用戶註冊、登陸、管理
文章分類、發佈、編輯、靜態化、評論
後臺管理
...web
客戶端:
PC端
微信端 - 新增會員綁定
APP端 - react native,涵蓋 IOS / android面試
總體採用先後端分離形式:
接收、分析客戶端請求的前端服務
操做數據庫的後端服務
後端也是用nodejs實現,這樣分離是爲了項目中的實際應用。redis
預計會用到的技術點:
開發系統:ubuntu
靜態服務器:nginx
數據庫:mongodb
緩存服務器:redis
版本控制器:git
開發語言:nodejs
頁面端:
組件開發:react.js
模塊加載:webpack
響應式:bootstrap
編輯器:markdown
服務端:
http框架:express
模塊引擎:ejs
調用工具:inspector
日誌:log4js
郵件:node-mailer
實時通信:socket.io
單元測試:
should.js - 斷言模塊 supertest - HTTP測試 mocha - 測試插件 istanbul - 覆蓋率 karma - 自動化
語法檢測:jshint
代碼壓縮:uglify
項目構建:gulp
項目監聽:node-dev
進程守護:pm2
...
安全機制:防止 XSS / CSRF攻擊,作數據加密,用戶信息用https協議傳輸
實踐網頁最佳性能加載