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。