概述网上银行项目

已完成

我们来谈谈将要创建的内容。 如前所述,我们将创建两个项目:一个用于程序的核心逻辑,另一个用于通过 Web API 公开逻辑。 假设你现在是一个团队的一员,这个团队正在构建一个网上银行系统。

定义功能和要求

我们将要建立的网上银行是一个概念验证,它将确定构建银行程序是否可行。 在第一次迭代中,与核心程序包的交互将通过一个 CLI 程序进行。 我们没有用户界面,也不会将数据持久保存到数据库中。 为了查看客户的对账单,我们将公开一个终结点。

网上银行系统将:

  • 允许客户创建帐户。
  • 允许客户取款。
  • 允许客户将资金转到其他帐户。
  • 提供包含客户数据和最终余额的对账单。
  • 通过终结点公开一个 Web API,用于输出对账单。

我们将一同构建此程序,所以你现在不需要太担心细节。

创建初始项目文件

接下来,让我们创建程序所需的初始文件集。 我们将为所有银行核心逻辑和 main 程序创建一个 Go 程序包,以使用一些客户和操作(例如存款和转账)来初始化系统。 另外,此 main 程序还会启动一个 Web API 服务器,以便为对账单公开一个终结点。

让我们在 $GOPATH 目录中创建以下文件结构:

$GOPATH/
  src/
    bankcore/
      go.mod
      bank.go
    bankapi/
      go.mod
      main.go

然后,为了确保我们只需要集中精力在合适的文件中编写代码,让我们开始编写一个 Hello World! 程序,该程序将确认我们可以从 bankapi 主程序调用 bankcore 程序包。

将以下代码片段复制并粘贴到 src/bankcore/bank.go 中:

package bank

func Hello() string {
    return "Hey! I'm working!"
}

我们将使用 Go 模块。 在 src/bankcore/go.mod 中添加以下内容,为此程序包提供一个正确的名称,以便以后可以引用它:

module github.com/msft/bank

go 1.14

然后,在 src/bankapi/main.go 中添加以下代码来调用 bankcore 程序包:

package main

import (
    "fmt"

    "github.com/msft/bank"
)

func main() {
    fmt.Println(bank.Hello())
}

src/bankapi/go.mod 中,我们需要在本地引用 bankcore 程序包文件,如下所示:

module bankapi

go 1.14

require (
    github.com/msft/bank v0.0.1
)

replace github.com/msft/bank => ../bankcore

若要确保一切正常,请在 $GOPATH/src/bankapi/ 目录中打开终端并运行以下命令:

go run main.go

应会看到以下输出:

Hey! I'm working!

此输出确认你的项目文件已完全按预期正确设置。 接下来,我们将开始编写代码,以实现我们的网上银行系统的初始功能集。