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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。