每个技术党都想要一个属于自己的博客网站吧,从今天开始,七镜在这里一步一步实现一个简易的个人博客网站。
以下所有内容均可以讨论。
一、功能需求
- 权限认证(账号):增删改查——支持注册、注销、修改密码、登录
- 核心资源/维度(展示主体):博客所有的展示内容均统一归为“资源/维度”,资源可以是文章、金句、日规划、单词、灵光一现的想法、外出旅游的照片等等。增删改查——支持新增资源、删除资源、显示资源、修改资源
- 资源/维度周边(插件、生态)——评论:增删查——支持新增评论、删除评论、(过滤评论);不支持修改评论(但是可以删除)。
- 个人展示:增改查——每个账号默认带有个人资料、支持修改个人资料、支持查看个人资料。
二、用户和人的因素
- 用户类型是广大个人IP。注册的用户,可以有自己的主页(用户子目录eg:qijing.com/<sub_path>/<account> 或者提供自己的域名对接进来 <domain.com>(需要维护) 或者在自己的服务器单独安装整个应用(需要许可证))
三、环境要求
- 硬件需求:1核2G内存云服务器。
- 软件需求:linux系统、mysql数据库、redis缓存数据库、k8s容器云环境
附加:可行性验证(以下截图来自本人一个正在运行的个人网站)
- 这是一台4核4g的云服务器,可以看到,在k8s环境下,运行了一个msyql、一个redis、一个前端程序(2芬苯)、一个后端程序(3副本)。cpu占用率很低、内存使用也不到2g。
- 在某云上使用首单优惠,100块钱不到,就可以买一台云服务器,并使用一年。
四、文档需求
- 客户端用户使用文档
- 客户端开发文档
- 服务端开发文档
- 运维部署文档
五、数据需求
- 资源数据接口规范使用 GraphQL。
- 权限认证等短接口使用 grpc。
- 以上接口规范,参考的是个人技术栈。统一使用restful接口规范也是很好的。
六、安全保密需求
- 用户密码加密存储传输。
- 用户数据通过账号隔离。
- 网络传输使用 https
由于开发的应用比较简单,因此暂无性能需求、无界面需求、无资源使用需求、无可靠性需求、无软件成本消耗与开发进度需求。