Mix Space,混合空間,是一個小型的個人空間站。繼承了傳統的博客,有著不同與博客的豐富的內容。適合那些喜歡寫不同風格或類型的寫作愛好者。
其實就是對很多個人空間進行了一次模仿,移植,開源。為什麼,因為這類系統一般都是私人使用,不對外開放。(比如:保羅的小窩,電波站等等)而我就是想仿寫並開源
近一個月來,基本功能已全部完善。後臺的寫作部分也全部完成,接下來要做的就是功能上的擴展。接下來就分 3 個部分來說說接下來要做的和需要修復的缺陷。
前端
第一版的前端由於時間上的緊迫,沒有自主設計 UI。所以仍然採用了我師傅的設計。此次開發在原有的僅 HTML 結構上進行了 React 移植。由於需要做 SEO, 所以採用了 NextJS 來做服務器渲染。
Q:為什麼不用 Vue?
A:雖然 Vue 是一個不錯的框架,我也是從 Vue 起步的。但是目前 Vue 對於服務器渲染性能太差,(指 Vue2)。NuxtJS 在很多情況下會遇到各種各樣的問題。(詳見 Nuxt 踩坑記)在 Mix Space 前身 Focus 的前端,採用了 NuxtJS + Vue 開發。但是這次使用了 TypeScript 重寫了整套架構,所以使用 React 最為適合。
剩下要做的:
- 功能上的優化
- 頁面完善
前後端分離的好處:
- 前端開發靈活,沒有後端的限制
前後端分離會遇到的問題:
- SEO 相對於模版引擎難做
- 配置可能存在大量寫死,不夠靈活
可能會做的:
- 移植其他主題
- 開發自己的主題
中後台
中後台採用了 Vue + TypeScript 開發,因為後台不需要做 SEO 優化,所以採用了 Vue。主要原因是前身採用 Vue + JavaScript 開發,考慮要時間成本,此次在此基礎上進行了重構。但是用 TypeScript 來寫 Vue 的體驗依然很差。
剩下要做的:
- 功能完善
- 設置模塊
可能會做的:
- 使用 Vue3 重寫 (建立在 TypeScrpit 支持度的基礎上)
後端
後端由原本的 Express 移植,使用 Nest.js 重寫。Nest.js 的好處是採用了 ng 架構,模塊之間弱耦合,功能分層明顯,後期維護簡單。數據庫仍採用 mongo。
此次的目標全部集中在後端,所以後端花的時間是最多了。因為安全性,功能性全部集中在後端,把後端寫好是第一要義。所以請求都會被數據清洗和驗證,這是有史以來最完善的,從源頭上預防了 NoSQL 注入問題。
剩下要做的:
- 配置模塊
- WebSocket 模塊
- 分離子應用
結語
這次三端全部使用 TypeScript 重寫的目的主要也是為了後期可維護。所以說開發階段可以說是下了血本了。待功能全部落實之後,將引入單元測試和 E2E 測試。
現在可從這裡訪問 Live Demo。