線上銀行專案概述

已完成

讓我們談談要建立的內容。 如前所述,我們將建立兩個專案:一個處理程式的核心邏輯,另一個要透過 Web API 公開邏輯。 假設您現在是建立線上銀行系統的小組成員。

定義功能和需求

我們將要建立的線上銀行是一項概念證明,這會決定建立銀行程式的可行程度。 在第一個反覆項目中,將透過 CLI 程式與核心套件互動。 我們不會有使用者介面,也不會將資料保存在資料庫中。 我們會公開端點,客戶就能查看銀行帳戶對帳單。

線上銀行系統會:

  • 讓客戶建立帳戶。
  • 讓客戶提款。
  • 讓客戶轉帳至其他帳戶。
  • 提供包含客戶資料和期末餘額的銀行帳戶對帳單。
  • 透過端點公開 Web API,以列印銀行帳戶對帳單。

我們會與您一起建立線上銀行,所以目前不用太擔心細節。

建立初始專案檔

讓我們建立程式所需的初始檔案集。 我們會建立一個包含所有銀行核心邏輯的 Go 套件和一個 main 程式,利用一些客戶和動作 (例如存款和轉帳) 將系統初始化。 而且,這個 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!

此輸出可確認您的專案檔設定是否符合預期。 接下來,我們要開始撰寫程式碼,實作我們線上銀行系統的初始功能集。