这是我参与「第五届青训营 」伴学笔记创作活动的第10天
项目实践
上一节课进行了工程设计的测试的介绍,根据上节课内容,进一步扩充了项目实践的步骤,并拓展到其他内容,阐述一些必要的工作,如需求设计、代码开发、测试运行。
(1). 需求设计
本节课举的例子是设计一个社区界面,即带有主题帖、回复贴的简单页面构造,出于初学考虑,这里的需求内容排除了一些复杂的内容,主要要求如下:
社区话题页面
展示话题(标题,文字描述)和回帖列表
暂不考虑前端页面实现,仅仅实现一个本地Web服务
话题和回帖数据用文件存储
对需求用例进行分析,可以设计出浏览帖子的用户的用例图:
对于用户User而言,他们能看到帖子的主题和回复列表,这两个元素可以化为两个结构体Topic和Post:还可以据此设计E-R图,便于设计数据库。
| Topic | Post |
|---|---|
| id | topic_id |
| title | title |
| content | content |
| create_time | create_time |
接下来是设计分层结构,可以按照RSC架构分为数据层、逻辑层和视图层。 这三个层的具体功能如下:
- 数据层: 数据Model,外部数据增删改查,可以对文件或数据库操作
- 逻辑层: 业务Entity,处理核心业务逻辑输出
- 视图层: 视图View,处理和外部的交互逻辑
分层结构如下:
对于开发可以采用的组件工具,可以使用高性能的Go Web框架 gin,Github链接如下:
Gin
或采用 go mod 下载gin包:
go init
go get gopkg.in/gin-gonic/in.v1@v1.3.0
(2). 代码开发
按照RSC结构,首先是对数据的操作的数据层,对 Repository 进行设计,那么该从何开始呢,首先从用例的两个对象入手,分别是 Topic 和 Post 。
{
"id":1,
"title":"主题帖标题",
"content":"主题帖内容",
"create_time":1650437625
}
{
"id":1,
"parent_id":1,
"content":"回复帖内容",
"create_time":1650437674
}