[請益] 碰到與主管在設計理念上不合該怎麼自保
個位前輩好,
不才小弟我前天與主管發生爭執,
是軟體架構上的設計想法不同。
文章可能有點長,
如果前輩們不喜愛,
還請見諒。
小弟寫後端的,有一個case分配剛好是
主管寫game server
我寫game logic
由於是第一個遊戲,
所以沒有任何前例或者範本或通用架構,
現在寫的一切就是未來的依循,
然而在前期討論都很順利,
意即 ,
game server就是包含除了實際遊戲邏輯以外全部的部份,
我只要寫好遊戲邏輯,例如牌類比大小,
我只消管怎麼比大小就好,
其餘的都由game server處理。
這看起來很完美,
但實際做出來的時候,
我原本預想由我提供幾個interface,
server只要呼叫這幾個就能完成一局遊戲,
比如:
1. start
2. stop
3. command handle
争議點在command handle,
我原本期待的是game server收到任何
client傳來的命令,只需要by pass給這interface就好,
這個interface會自行處理。
但是主管堅持,他只提供client命令的讀寫 ,
其餘的遊戲邏輯搞定。
也就是他只管server client之間溝通的library。
這樣變成我的遊戲邏輯得處理命令的接收,
邏輯得fork一個thread去聽有無命令進入,
而不是定義該怎麼處理命令,
然而這樣會讓未來每款遊戲都需要重覆的處理命令。
怎麼想都覺得這樣十分鬼異,
我說,
我想要的是只需要填肉,骨幹可以通用的架構。
主管回,
你別管這麼多,以後的人寫不好寫不順,
我會開除他,別管骨幹通用。
争論到最後,主管直接爆氣講,
你別覺得自己寫code很厲害,
我說這樣就是這樣。
當然,主管都講到這份上了,
我只能默默的說,
只是想提醒這樣架構會造成重覆,
以及通用性不足。
然後就吞了。
唉,小弟以前寫bios的,單兵作業比較多,
請問我該如何處理這種多人協同作業上的歧義呢?
感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.165.21
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1476555697.A.B3C.html
→
10/16 02:25, , 1F
10/16 02:25, 1F
→
10/16 02:25, , 2F
10/16 02:25, 2F
→
10/16 02:25, , 3F
10/16 02:25, 3F
推
10/16 02:28, , 4F
10/16 02:28, 4F
推
10/16 02:30, , 5F
10/16 02:30, 5F
→
10/16 03:00, , 6F
10/16 03:00, 6F
→
10/16 03:12, , 7F
10/16 03:12, 7F
→
10/16 06:09, , 8F
10/16 06:09, 8F
推
10/16 06:44, , 9F
10/16 06:44, 9F
推
10/16 07:05, , 10F
10/16 07:05, 10F
噓
10/16 08:58, , 11F
10/16 08:58, 11F
推
10/16 09:17, , 12F
10/16 09:17, 12F
→
10/16 09:17, , 13F
10/16 09:17, 13F
推
10/16 09:28, , 14F
10/16 09:28, 14F
→
10/16 09:29, , 15F
10/16 09:29, 15F
推
10/16 09:35, , 16F
10/16 09:35, 16F
推
10/16 11:15, , 17F
10/16 11:15, 17F
推
10/16 11:18, , 18F
10/16 11:18, 18F
推
10/16 11:28, , 19F
10/16 11:28, 19F
→
10/16 11:28, , 20F
10/16 11:28, 20F
推
10/16 11:41, , 21F
10/16 11:41, 21F
推
10/16 11:49, , 22F
10/16 11:49, 22F
→
10/16 12:47, , 23F
10/16 12:47, 23F
→
10/16 12:56, , 24F
10/16 12:56, 24F
推
10/16 13:59, , 25F
10/16 13:59, 25F
推
10/16 15:04, , 26F
10/16 15:04, 26F
→
10/16 15:27, , 27F
10/16 15:27, 27F
推
10/16 15:30, , 28F
10/16 15:30, 28F
推
10/16 15:50, , 29F
10/16 15:50, 29F
→
10/16 15:50, , 30F
10/16 15:50, 30F
→
10/16 15:56, , 31F
10/16 15:56, 31F
→
10/16 16:06, , 32F
10/16 16:06, 32F
推
10/16 17:30, , 33F
10/16 17:30, 33F
→
10/16 17:31, , 34F
10/16 17:31, 34F
→
10/16 17:31, , 35F
10/16 17:31, 35F
→
10/16 17:45, , 36F
10/16 17:45, 36F
→
10/16 18:05, , 37F
10/16 18:05, 37F
→
10/16 19:07, , 38F
10/16 19:07, 38F
→
10/16 19:07, , 39F
10/16 19:07, 39F
抱歉, 小弟圖和文的解釋中沒有提到命令的收送方式,
我們用Golang實做,
所以client每個命令進來game server, 都是一個單獨的goroutine,
我的想法是, 這條goroutine應該要直接呼叫interface的command handle,
而非還得傳channel給game logic去處理.
推
10/16 19:12, , 40F
10/16 19:12, 40F
推
10/16 19:57, , 41F
10/16 19:57, 41F
→
10/16 19:57, , 42F
10/16 19:57, 42F
※ 編輯: tommady (114.44.197.244), 10/16/2016 20:26:01
→
10/16 21:26, , 43F
10/16 21:26, 43F
→
10/16 23:52, , 44F
10/16 23:52, 44F
對, 因為關於balance的部份, 有另一台server在玩家進入game server之前就先管理,
所以一台game server, 不會有過多玩家的問題,
況且依照golang的特性, 幾百萬條goroutine都不是問題,
因此很放心的就每個命令一條goroutine XD.
※ 編輯: tommady (114.44.197.244), 10/17/2016 07:19:03
→
10/17 08:00, , 45F
10/17 08:00, 45F
→
10/17 08:02, , 46F
10/17 08:02, 46F
→
10/17 08:04, , 47F
10/17 08:04, 47F
→
10/17 08:05, , 48F
10/17 08:05, 48F
→
10/17 08:06, , 49F
10/17 08:06, 49F
→
10/17 08:06, , 50F
10/17 08:06, 50F
→
10/17 08:06, , 51F
10/17 08:06, 51F
推
10/17 09:33, , 52F
10/17 09:33, 52F
→
10/17 09:48, , 53F
10/17 09:48, 53F
→
10/17 09:49, , 54F
10/17 09:49, 54F
→
10/17 09:49, , 55F
10/17 09:49, 55F
→
10/17 09:50, , 56F
10/17 09:50, 56F
→
10/17 09:51, , 57F
10/17 09:51, 57F
推
10/17 11:03, , 58F
10/17 11:03, 58F
→
10/17 13:26, , 59F
10/17 13:26, 59F
→
10/17 13:26, , 60F
10/17 13:26, 60F
推
10/17 15:00, , 61F
10/17 15:00, 61F
噓
10/17 18:04, , 62F
10/17 18:04, 62F
→
10/17 18:05, , 63F
10/17 18:05, 63F
受教了, 因為玩家數量永遠衝不過200... 所以profiling就懶惰了...
如果說要用channel去限制命令傳達的數量, 那何不直接game server在聽的時候,
就做管控呢? 為什麼得丟到game logic來管控呢? 這不是多費一道工嘛?
這也是我十分想不透的一點.
我以為game logic只要純粹定義怎麼玩一局遊戲就好, 而不是還得管其他拉里拉雜的.
一點拙見, 還請包含.
至於為什麼會爭執... 其實主管只要告訴我, 他的想法好壞在哪裡, 別情緒化就爆炸,
我一定會接受的, 至於現在, 我就是"當狗"聽他的作法,
但是十分好奇他的設計想法, 又或者是我想法太狹隘,
所以才來板上請求賜教.
感謝.
※ 編輯: tommady (114.44.197.244), 10/17/2016 21:00:45
→
10/17 21:07, , 64F
10/17 21:07, 64F
→
10/17 21:08, , 65F
10/17 21:08, 65F
→
10/17 21:08, , 66F
10/17 21:08, 66F
謝謝您的回覆, 我的game logic裡面當然會有一些簡易的檢查判斷,
例如最高上限幾個人, 目前cpu, memory使用量, 然後反饋給game server,
(其實cpu, memory 使用量我也覺得應該是game server要幫我監控才對 XDDD)
我想應該能阻擋一些可怕的例外, 但是小弟想理解的是令一層面的問題,
為什麼放著簡單的function call不用, 偏要IPC.
感謝您.
※ 編輯: tommady (114.44.197.244), 10/17/2016 21:22:08
→
10/18 07:12, , 67F
10/18 07:12, 67F
→
10/18 08:06, , 68F
10/18 08:06, 68F
→
10/18 08:06, , 69F
10/18 08:06, 69F
→
10/18 08:07, , 70F
10/18 08:07, 70F
→
10/18 13:32, , 71F
10/18 13:32, 71F
→
10/18 13:36, , 72F
10/18 13:36, 72F
推
10/19 00:33, , 73F
10/19 00:33, 73F
→
10/19 00:34, , 74F
10/19 00:34, 74F
→
10/20 00:36, , 75F
10/20 00:36, 75F
→
10/20 00:36, , 76F
10/20 00:36, 76F
推
10/20 16:26, , 77F
10/20 16:26, 77F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 9 篇):