kasumi:serverless 交流系统

次说到要对 blog 进行 serverless 改造,后端方面的第一个项目就是 kasumi。

简介

kasumi 是一个后端项目,用于存储用户留下的言论。它采用 golang 开发,选用 gin 框架,是我的练手之作。

简单聊聊 kasumi 名字的来历。kasumi 是一个动漫人物的名字,来源于《路人女主的养成方法》这部番剧,是其中霞ヶ丘詩羽笔名的一部分。选择它是因为霞诗子在剧中很喜欢独白,有时会念出对男主不切实际的幻想。这和用户发言时候的态度非常相似(后续会拓展出聊天功能,更相似了嘿嘿)。

需求

首先是基本的用户言论存储功能。对于用户的发言,kasumi 能从如下几个维度存储信息,比如:昵称,邮箱,本文(Markdown 格式),引用。为了保持整体性能,将限制文本长度不超过 2000 字。

另一个功能是存储图片。对于用户评论的图片需求,kasumi 能存储图片并返回相关链接。

技术设计

首先定义数据库结构,对于 talks 表,建表语句如下:

1
2
3
4
5
6
7
8
9
CREATE TABLE `talk` (
  `id` bigint NOT NULL,
  `name` varchar(32) NOT NULL DEFAULT '',
  `email` varchar(32) NOT NULL DEFAULT '',
  `text` varchar(2048) NOT NULL DEFAULT '',
  `ref` bigint NOT NULL DEFAULT 0,
  `belong` bigint NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后是技术选型。技术选型从几个方面来考虑。一个是性能,另一个是开发效率。最后我选择了 Golang 作为开发语言。在框架选择上,gin 和 gorm 比较对我的胃口。我决定先用它们搭建原型,等到实际投入使用之后再决定是否需要优化。

updatedupdated2020-05-292020-05-29
加载评论