介绍
这个项目将为GO的Web开发功能和最佳实践提供宝贵的见解,无论您是初学者还是经验丰富的开发人员。
在本系列结束时,您将在GO Web开发中拥有坚实的基础,并能够创建自己的Web应用程序
1.安装
首先,我们必须安装您选择的操作系统。我在Windows上使用WSL,并且在official docs instructions
之后没有问题我们会因为您正在使用GO版本> 1.16,因此默认启用模块(ref.)
注意:如果您想了解模块和传统gopath之间的区别,请阅读this 很棒的文章
2.设置项目。
注意:我正在关注项目结构的this存储库的大会。
2.1创建文件夹初始化项目
mkdir flashcard-go
cd flashcard-go
go mod init github.com/<your_username>/flashcard-go
这应该创建一个go.mod
文件。该文件具有模块和GO版本的名称。模块由模块路径识别,该路径在go.mod文件中声明,以及有关模块依赖项的信息。通常,模块路径由存储库根路径,存储库中的目录(通常为空)和主要版本后缀(仅适用于主要版本2或更高版本)(ref.)
2.2项目的软件架构
存在许多软件架构和模式,模型视图控制器(MVC),客户端服务器,微服务,分层,六角形(端口和适配器)等。就我们而言,我选择一种六边形方法。它是过度的,不是必需的,它对我们的小项目不切实际,但是它被广泛使用,我们可以从中学到很多东西。
我们的入口点将在CMD文件夹中。在这里,我们可以有多个入口点(例如,将WebApp与CLI分开),您可以将每个人都保留在自己的文件夹中(用于测试目的)。 WebApp的其他部分不应使用此CMD内部文件的内容。
我们要做的第一件事是将核心与源代码分开。从GO开始1.4开始,GO命令引入了一种机制来定义“内部”软件包,这些软件包可能不会由它们居住的源子树之外的软件包导入。要创建这样的软件包,请将其放在名为内部或名为Internal (ref.)的目录的目录中。
flashcard-app/
├─ cmd/
│ ├─ web/
│ │ ├─ // Main entry point
│ ├─ cli/
│ │ ├─ // Possibly another entry point
├─ internal/
│ ├─ // Business Logic
├─ site/
│ ├─ // Front End
3.定义业务。
应用的目的
此WebApp将帮助用户使用抽认卡创建测验。用户可以创建,查看,编辑和删除抽认卡和测验。主要目标是为用户提供一个简单直观的界面来创建教育测验。
确定核心业务概念
-
抽认卡:用于学习的单独卡。每个抽认卡都包含一个问题及其相应的答案。
-
QUIZ:组织的多个抽认卡的集合,以测试用户对特定主题的知识。测验应该具有标题,描述和一组抽认卡。
建模业务规则和关系
- 抽认卡必须有一个非空的问题和答案。
- 抽认卡与测验(多对一关系)相关联,这意味着多个抽认卡可以属于同一测验。
- 测验必须具有非空的标题。
- 测验必须具有非空的描述。
- 测验可以具有与之关联的零或更多抽认卡(一对多关系)。
实体
- 抽认卡
- 也许
用例
我们将使此内容变得简单,并添加这些可选用途案例
- 创建,编辑和删除抽认卡
- 创建,编辑和删除测验
- 进行测验:用户可以进行测验,并且该应用程序将逐一提出每个抽认卡的问题,允许用户回答
- 进行测验:回答测验中的所有抽认卡后,应用程序将计算并显示用户的得分
4.开始编码
凭借基础设置,我们让我们在下一篇博客文章中开始我们的编码旅程。
我们深入研究实施六角形体系结构,组织项目结构并使用GO编程语言将我们的“抽认卡测验应用程序”带入生活!