概述网上银行项目
我们来谈谈将要创建的内容。 如前所述,我们将创建两个项目:一个用于程序的核心逻辑,另一个用于通过 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!
此输出确认你的项目文件已完全按预期正确设置。 接下来,我们将开始编写代码,以实现我们的网上银行系统的初始功能集。