掌握Go Web开发:构建抽认卡应用程序
#网络开发人员 #go #ddd #hexagonal

介绍

这个项目将为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编程语言将我们的“抽认卡测验应用程序”带入生活!