docs/update readme #8
|
@ -0,0 +1,90 @@
|
||||||
|
# 專案說明
|
||||||
|
|
||||||
|
通知服務
|
||||||
|
|
||||||
|
# 專案架構
|
||||||
|
|
||||||
|
```
|
||||||
|
$tree -L 3 --gitignore
|
||||||
|
|
||||||
|
.
|
||||||
|
├── Makefile
|
||||||
|
├── build
|
||||||
|
|||||||
|
│ └── Dockerfile
|
||||||
|
├── chart
|
||||||
|
│ └── readme.md
|
||||||
|
├── etc
|
||||||
|
│ └── service.example.yaml # 設定檔範例
|
||||||
|
├── generate # 這個資料夾會用來自動生成一些程式
|
||||||
|
│ ├── database ## 資料庫生成檔案或紀錄遷移版本
|
||||||
|
│ │ ├── mongodb
|
||||||
|
│ │ ├── mysql
|
||||||
|
│ │ ├── readme.md
|
||||||
|
│ │ └── seeder
|
||||||
|
│ └── protobuf ## gRPC 的定義,用來生成 gRPC 檔案
|
||||||
|
│ └── notification.proto
|
||||||
|
├── go.mod
|
||||||
|
├── internal
|
||||||
|
│ ├── config # 設定的結構
|
||||||
|
│ │ └── config.go
|
||||||
daniel.w
commented
這邊可以討論,就是開發時可以用 docker 啟用,應該可以不用直接安裝本地依賴 這邊可以討論,就是開發時可以用 docker 啟用,應該可以不用直接安裝本地依賴
|
|||||||
|
│ ├── domain # 此服務下的一些常數定義
|
||||||
|
│ │ ├── errors.go ## 錯誤定義
|
||||||
|
│ │ └── usecase ## usecase 內的常數定義
|
||||||
|
│ │ ├── mail.go
|
||||||
|
│ │ └── sms.go
|
||||||
daniel.w
commented
SMTP 也是會直接依賴線上服務,除非有需要自己架設,但因為這個比較偏離 notification 的重點 SMTP 也是會直接依賴線上服務,除非有需要自己架設,但因為這個比較偏離 notification 的重點
比較偏好使用線上服務
|
|||||||
|
│ ├── logic # 主要的程式邏輯都在這,每個功能用一個資料夾開發
|
||||||
|
│ │ └── senderservice
|
||||||
|
│ ├── server
|
||||||
|
│ │ └── senderservice # gRPC 自動產生的檔案
|
||||||
|
│ ├── svc # 此服務下會共用的功能,例如 API context, db 連線等
|
||||||
|
│ │ └── service_context.go ## API context
|
||||||
|
│ └── usecase
|
||||||
|
│ ├── mitake.go
|
||||||
|
│ └── smtp.go
|
||||||
|
└── notification.go # 服務主入口
|
||||||
|
```
|
||||||
|
|
||||||
|
# 啟動說明
|
||||||
|
|
||||||
|
此文件會介紹以下兩種啟動方式:
|
||||||
|
|
||||||
|
1. Docker 啟動 (Production 時使用)
|
||||||
|
2. 本地端 go compiler 啟動 (開發、測試時使用)
|
||||||
|
|
||||||
|
## Docker 啟動 (Production)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make build-docker
|
||||||
|
make run-docker
|
||||||
|
```
|
||||||
|
|
||||||
|
## 本地端啟動(測試用)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go mod tidy
|
||||||
|
# 進入 etc/notification.yml 設定各依賴的 config
|
||||||
|
go run notification.go
|
||||||
|
```
|
||||||
|
|
||||||
|
### 本地啟動需要依賴套件或工具
|
||||||
|
|
||||||
|
以下已 macOS 為例,若已安裝或有其他可用服務則可跳過
|
||||||
|
|
||||||
|
- go-zero goctl (https://go-zero.dev/docs/tasks/installation/goctl)
|
||||||
|
```bash
|
||||||
|
$ go install github.com/zeromicro/go-zero/tools/goctl@latest
|
||||||
|
```
|
||||||
|
- protobuf (https://protobuf.dev/)
|
||||||
|
```bash
|
||||||
|
brew install protobuf
|
||||||
|
```
|
||||||
|
- etcd (https://etcd.io/)
|
||||||
|
```bash
|
||||||
|
brew install etcd
|
||||||
|
brew services start etcd
|
||||||
|
```
|
||||||
|
- SMTP 服務(以 mailhog 為例) (https://github.com/mailhog/MailHog)
|
||||||
|
```bash
|
||||||
|
brew install mailhog
|
||||||
|
brew services start mailhog
|
||||||
|
```
|
Loading…
Reference in New Issue
有產生過只要 proto 沒有變動並不需要再次gen