---
# System prepended metadata

title: PH-RD Q&A

---

1. 實現decouple的方式，例如websocketServer
	_globals_decouple.go -> globals_decouple.go
	globals.go -> _globals.go
	是這樣使用嗎?
    
    * no
    * 需要學一下makefile，makefile裡面有指令 make decouple會產出已解耦執行檔
    * 建議你們從makefile看起，裡面有很多常用指令與工具
    * go build tag也需要學一下

2. 產出.so檔和.linux檔的流程 (例如目前這邊用docker compose產生出來的gameserver.so無法執行或被讀取 "can't read binary file/version`GLIBC_2.32` not found)

    * 目前不建議你們用docker compose產出，glibc會有不相容問題，除非你們docker很熟
    * 在相同環境下編譯出來的ws gs兩檔案，不會出現glibc的問題
    * ws gs兩個專案，都用make build就會自動產出型檔，無流程前後問題

3. 因為目前這邊可能暫時只會先架gameserver和websocketServer，外部服務到時候可以先加白這邊開發站做測試使用嗎? 
	"serial": {
		"url": "http://dev.cqgame.go/serialapi/",
		"increment": 100,
		"initialNumber": 1000000
	},
	"feedback": {
		"enable": true,
		"url": "http://gapi.rd3dev.com",
		"token": "687cd06de7ac3343c1b45a6b92f4983791ac5c9582bf0a5ae1fac108e96a05d0"
	},
	"teaminfo":{
		"url": "http://10.30.36.23/gogrouplist.json",
		"default":{
			"GO":["GO169","GO01", "GO02", "GO03", "TB2"],
			"CH":["CH03"],
			"AT":["AB3","AT01"]
		}
	},
	"cypress": {
		"init_test":false,
		"recommend_game": true,
		"env": "dev",
		"url": "http://dev.cqgame.api",
		"timeout_sec": 5,
		"brand_url": "cq9",
		"AT":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1laGFsbCI6ImNxOSIsInRlYW0iOiJBVCIsImp0aSI6IjUyNzQyMDkiLCJpYXQiOjE1NDI3Njc4NTUsImlzcyI6IkN5cHJlc3MiLCJzdWIiOiJHU1Rva2VuIn0.fNvDzceiqHpe8_LpC0dfucWSv4hwhlZSQrzE9NFUBwM",
		"GO":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1laGFsbCI6ImNxOSIsInRlYW0iOiJHTyIsImp0aSI6Ijg4MjMzMzA2MCIsImlhdCI6MTU3MTEyMzgyOSwiaXNzIjoiQ3lwcmVzcyIsInN1YiI6IkdTVG9rZW4ifQ.qI8PHhyYTAmg3IDkdqwhYLVpB5H5oZBq95hQ4-gUuXc",
		"auth": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1laGFsbCI6ImNxOSIsInRlYW0iOiJBVCIsImp0aSI6IjUyNzQyMDkiLCJpYXQiOjE1NDI3Njc4NTUsImlzcyI6IkN5cHJlc3MiLCJzdWIiOiJHU1Rva2VuIn0.fNvDzceiqHpe8_LpC0dfucWSv4hwhlZSQrzE9NFUBwM"
	},
	"gameSetting": {
		"url": "http://dev.cqgame.go/dauma"
	}
    
    * 我可協助詢問授權，但得到授權後你們需要自行接洽IT人員
    * 但我不確定開發站環境是否有辦法對外，理論上應該無法
    * 且有些完全是內部服務，很小機率IT會協助開放對外存取

4. 當初規劃協議時,拆成probability和server兩個專案的考量是什麼?
    * prob是機率遊戲結帳專用協議，同等級的還有table牌桌遊戲結帳專用協議
    * server則是其餘通用的協議
    * 從結帳協議-->redis資料結構-->DB資料結構，欄位統一方便操作
    * 邏輯只需要更換協議即可切換結帳模式

5. 目前紅包雨功能實作的方式(哪些資料由cypress提供, server端有儲存哪些資料...等)
    * 目前我們也還在實做中，很難簡述，你們可先參考cy文件
https://hackmd.io/@apicypress66666/ByAVqgM4T


# 簡易編譯流程
1. ```make tidy``` 重整套件相依性
2. ```make update-vendor``` 更新vendor套件
3. ```make build``` or ```make decouple``` 編譯
4. 得到執行檔或是so