demo1 | 青训营笔记

107 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天

demo

今天我依据前面所学的知识自己实现了一个简易的demo,就是课程中提到的论坛中论坛依据话题找到话题下所有的帖子。

1.分析对象

首先剖析出来两个对象,一个是话题,一个是帖子。通过er将两个对象的关系和属性列出来

流程图.jpg

2.建表

按分析出来的对象创建出对应的数据库的表。

topic:

CREATE TABLE `topic` ( `id` int NOT NULL, `title` varchar(255) DEFAULT NULL, `content` varchar(255) DEFAULT NULL, `createtime` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

image.png

post:

CREATE TABLE `post` ( `id` int NOT NULL, `parentid` int NOT NULL, `content` varchar(255) DEFAULT NULL, `createtime` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

image.png

3.分析需求

依据话题找到话题下所有的帖子。

4.构建项目

go语言使用三层架构构建项目,分别是service,repository,handle三层。初步使用gorm+gin来实现此功能,我们只管后端提供数据不管前端,所以依据前端的请求,不同的路由选项来提供对应的api给出数据即可。

5.具体实现

image.png

repository:

里面有数据库连接的初始化以及实现使用单例模式调用其对两个对象的查找功能。

service:

整合了话题加话题下帖子的数据,以及其api的测试,以便handle层调用。

handle:

依据前端请求的参数调用下层api给出对应的数据,如果出错,要给前端传递错误信息。

6.总结

整体而言,项目是十分的简单,我只是想通过这个小小小的项目,把go语言web项目从无到有的流程走一遍 ,以便后续的开发。