banner
innei

innei

写代码是因为爱,写到世界充满爱!
github
telegram
twitter

Mix Space 開發近況

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

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。