[請益] 碰到與主管在設計理念上不合該怎麼自保

作者: tommady (tommady)   2016-10-16 02:21:34
個位前輩好,
不才小弟我前天與主管發生爭執,
是軟體架構上的設計想法不同。
文章可能有點長,
如果前輩們不喜愛,
還請見諒。
小弟寫後端的,有一個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的,單兵作業比較多,
請問我該如何處理這種多人協同作業上的歧義呢?
感謝。
作者: tommady (tommady)   2016-10-16 02:25:00
喔對了,主管還挑明,以後誰敢改他這方式架構,殺全家。。。十分的無言。
作者: richard07250 (blazing)   2016-10-16 02:28:00
聽話 辭職 選一個
作者: sing10407 (阿U)   2016-10-16 02:30:00
吞阿 他是主管欸。反正出事責任是他扛
作者: iFEELing (ing)   2016-10-16 03:00:00
你有遇過平常大小聲 出事就把屬下推出去擋的主管嗎?他會負責就照他的指示寫 他不負責就早點閃免得當替死鬼
作者: pttworld (批踢踢世界)   2016-10-16 06:09:00
至少這case的要拿到。
作者: Jichang (C.C.Lemon)   2016-10-16 06:44:00
你把他想成 你有兩層要寫 不就好了
作者: steve1012 (steve)   2016-10-16 07:05:00
再寫一層interface?
作者: wesley234 (掃地)   2016-10-16 08:58:00
你的主管是對的
作者: maxqq (max)   2016-10-16 09:17:00
反正他要負責,就給他負責,輕鬆點,拿錢辦事,又不是一輩子在這家公司做事如果依照上一層是接收指令後,分析指令,呼叫邏輯那其實,你主管的方式可能是比較正確把 command_handle 拆細一點,比對 start/stop
作者: luckyshin (大屁)   2016-10-16 11:15:00
你是被主管聘來幫他做事,不是被聘來跟他吵架的
作者: f124 (....)   2016-10-16 11:18:00
照主管說的做阿 我只管錢有沒有進來而已 干我屁事
作者: yyc1217 (somo)   2016-10-16 11:28:00
你不是老闆 就是需要妥協 客戶要大便就給他大便 頂多提醒一下這是大便
作者: vi000246 (Vi)   2016-10-16 11:41:00
寫個負責處理命令的去呼叫interface
作者: longlyeagle (長鷹寶寶實驗室)   2016-10-16 11:49:00
這不是軟體架構問題 是工作分配問題
作者: badyy (nick)   2016-10-16 12:47:00
寫清楚接手時就是被這樣要求的,別被牽拖就好總比哪種前面接手就有問題,還反過來問你為什麼的好
作者: stosto (樹多)   2016-10-16 13:59:00
我覺得你主管是對的耶....
作者: balaking (看八卦長知識)   2016-10-16 15:04:00
我比較偏向你主管的架構分類...
作者: shadow0326 (非議)   2016-10-16 15:27:00
本來就不會只有兩層 中間一層主管不想寫 叫你寫而已
作者: giantwinter   2016-10-16 15:30:00
離職
作者: balaking (看八卦長知識)   2016-10-16 15:50:00
而且我覺得你主管的工作不叫game server, 應該是api adapter lib, 可以參考別人架構 https://goo.gl/DMx1WT你的工作就是用主管的lib把remote data存進db, 懂了吧
作者: htury (冰點)   2016-10-16 16:06:00
想太多,趕快做完交差領錢就對了,在台灣還期待什麼是對的
作者: bobju (枯藤老樹昏鴉)   2016-10-16 17:30:00
這主管好啊~ 很明確地表明了分工態度, 誰聽誰的很清楚; 要是遇到打混戰的主管跟你說好好好, 最後再翻臉不認帳, 那才要幹在心裏.
作者: anr2 (???)   2016-10-16 17:45:00
學習被領導,學習cowork
作者: dnabossking (少狂)   2016-10-16 18:05:00
還好,不是只有我覺得主管是對的
作者: massrelay (奇怪的大叔)   2016-10-16 19:07:00
client 跟 server 溝通不能因為處理遊戲邏輯卡住或等待。
作者: now99 (陳在天)   2016-10-16 19:12:00
離職阿
作者: mathrew (Joey)   2016-10-16 19:57:00
先不管這個架構誰對誰錯 基本上主管要負責 你就照他說的做,然後錢有進戶頭就好了
作者: AlanSung   2016-10-16 21:26:00
一進來就生一條 goroutine ? really?
作者: badyy (nick)   2016-10-16 23:52:00
這厲害了,一個cmd一個goroutine ??? 怪可怕的
作者: AlanSung   2016-10-17 08:00:00
所以看來你沒有做過 profiling,有用過 runtime/pprof嗎而且如你所述的話,你把程式的穩定性交給前一台srv一個 goroutine 算你 2KB 好了 1M 就 2G 了而且你什麼時候有去做 GC 呢? 不管怎麼看風險都很大如果有看系統 dashboard , memory 一直往上,你家的DevOps / Ops 不會跳腳嗎? 有沒有考慮用 channel加固定數量的 goroutine 比較好呢?
作者: Argos (Big doge is watching u)   2016-10-17 09:33:00
這種沒有什麼標準答案的東西你是在爭什麼?不就兩條路
作者: anr2 (???)   2016-10-17 09:48:00
https://goo.gl/YgmfY2 不覺得一個cmd一個goroutine是個好注意, 還是需要有 load balance 跟 worker pool我沒有實際遇過goroutine, 但是從文件來看一個 thread block應該說一個 goroutine block 就會在建立一個 goroutine把資源分配全部交給go 感覺就很危險 除非你有座 backpresure
作者: iamshiao (CircleHsiao)   2016-10-17 11:03:00
推 Jichang,我看的時候也是這樣想,不過時間要夠。
作者: Argos (Big doge is watching u)   2016-10-17 13:26:00
建議原PO都依你主管的去做就好 甚至今天主管硬要我變數全部取a b c 但他一個月給我十萬 我照寫不誤 懂?
作者: genesic (嗯?)   2016-10-17 15:00:00
golang寫出來的東西無法模組化嗎? 為什麼會爭這個?
作者: Sidney0503 (Sidney0503)   2016-10-17 18:04:00
我覺得不想溝通的人是你 你沒去理解你主管的設計理念你還是快點離職吧 不要繼續待比較好
作者: AlanSung   2016-10-17 21:07:00
就你上面回的第二段,請查一下 defensive programming如果你不能理解為什麼,可以問問主管或是其他比較有經驗的人
作者: gogogogo3333 (gogogogo33333)   2016-10-18 07:12:00
設計始終出自於需求,沒有絕對優勢的設計模式
作者: AlanSung   2016-10-18 08:06:00
若是這樣,我想你能不能 show 一下你的 test cases 呢我們可以從 test case 看出來別人(api, server)怎麼用有助於討論原本的設計哪種比較好
作者: Argos (Big doge is watching u)   2016-10-18 13:32:00
去上班講難聽點就是當狗啊 XDDDD
作者: brightest (fff)   2016-10-18 13:36:00
聽他的記得錄音
作者: justben (BEN)   2016-10-19 00:33:00
https://github.com/urfave/negroni 阿就裝個middlewareinject response
作者: badyy (nick)   2016-10-20 00:36:00
如果主管有提出實際分法就照做,最怕的是沒提又要等人提等人驗證,搞個好像是出錢的人才可怕
作者: longlongint (華哥爾)   2016-10-20 16:26:00
先閉嘴硬肏程式碼 做完這期就閃

Links booklink

Contact Us: admin [ a t ] ucptt.com