看板 Tech_Job 關於我們 聯絡資訊
※ 引述《Ferrara (紅燒冰淇淋)》之銘言: : 本ID在台北一家陸商待過一個月 : 發現對岸SW RD的整code習慣是這樣 : 覺得自己寫好了,就commit了 : commit之前不做驗證,不初步抓一下bug : 連local build pass都沒有 : 負責管respitory 的人得一條條幫他們檢查 : 最近被一家台陸合資的公司找去面試 : 主管說他在管理gerrit的時候很難整合daily build : 因為對岸的工程師丟上來的東西常常build不過 : 請問各位鄉民 : 你們共事過的對岸工程師也會這樣嗎 分享一下現在中國公司工作的狀況好了, 程式碼 build 都沒過,是絕對不能回家的,你會害很多人被扣錢。 首先程式碼 commit到分支前,都要設定好jenkins 使用 git push 程式碼到 repository 的分支時, 會觸發CICD流程,大致會執行以下流程: 編譯 build --> 弱點掃描 --> 程式碼取名規則檢查 --> UT Test 除了程式沒有語法上的bug 可以build 如果程式碼的變數,函數名稱不符合規範, 或程式碼有常見弱點,或缺陷defect CICD是不會通過的。 UT Test 除了測功能外,還要滿足測試程式碼的覆蓋率 Coverage。 如果 UT 的 Test Case 亂寫,或是Test Case 沒有覆蓋到75%的程式碼,CICD也不會過。 功能正常還是不夠的, 現在幾千萬人使用,7x24 的系統,非常追求程式碼的穩定,效率,可維護,透明。 我們公司一出現停機的Bug,一堆人都要扣幾千塊人民幣的。 我們也在意機器查不到的業務邏輯 Bug。 還要在意可維護性,也要避免有寫作弊程式碼,不可維護的黑箱,神秘的隱藏程式碼。 所以程式碼能跑,還不夠,要靠人去提高程式碼的品質。 接下來就是透過 gerrit,去找人 review程式碼。 review的人,有不同的權限,至少要有權限高的人+2 才能將程式碼merge到分支。 這時候,問題就來了,那麼review的人偷懶不就好了? 大家省事。 當初我也是這樣想的。 你的同事或資深工程師Review完的Comment, 每周會有更資深的工程師或部長,再檢查這些人的review是否合理。 程式碼出了事情,停機了,這些資深工程師都是要扣薪水的。幾千幾千人民幣的扣。 所以除非你是老闆兒子,不然你討好同層,或討好主管根本沒用。 另外,一次交大量的程式碼,減少review次數,也是不行的。 超過300行程式碼的commit 都會要有資深工程師或主管審核,才能夠merge程式碼, 而且每日自動檢查會通報一次性review超過300行程式碼的行為。 沒有Bug,CICD過了,review過了,程式碼merge到分支,總沒事了吧。 我剛來公司時也是這樣天真的。 結果合併到分支的程式碼,每天定期都會自動跑CICD, 而且UT會因為網路不穩連接時間太長失敗。 網路不穩,怪軟體工程師囉? 對,就是那麼坑。 晚上12點CICD沒過,不管是不是程式碼本身的問題, 你和你的主管都要扣本月績效分數,影響本月薪水。 所以沒人敢讓每日定期檢查的CICD不過。 所以程式碼的Test Case又要很聰明的,知道何時使用mock測試, 避免各種網路連線不穩定的UT測試失敗。 哇靠,那麼麻煩,我乾脆不寫程式碼或少寫好了,寫越多事情越多。 不行喔,每周/每月,都會統計程式碼行數, 然後大家比較一番,然後落後的人給點壓力。 以上只是每日的開發工作, 每周還有Coverity的靜態程式碼掃描,不過就通報。 軟體發新版本時,測試工程師從分支拉取程式碼, Coverity的靜態程式碼掃描不過,也進不了發版本的測試階段。 當然Coverity的掃瞄常常誤報,即使誤報也要走流程,然後安全專家同意去取消。 其他懶得說了,反正一堆為了提高軟體品質的規定,走火入魔的規定比較常見。 有空再交流。 -------------- 當然不是每家中國軟體公司都這樣搞人的。 但是,真的沒聽過 build 不過,還可以正常混到薪水的。 有的這種公司話,請站內信推薦,真的。一定一堆人搶著去爽。 ※ 編輯: DrTech (116.77.73.243 中國), 11/06/2020 23:08:12
TokyoHard: 親!信你了! 11/06 23:07
s06yji3: 人力成本超高...,方便問sprint和release週期嗎? 11/06 23:17
DrTech: 發版的周期是,每個月發兩個release版本。長假前後凍結。 11/06 23:19
DCTmaybe: 也太硬...突然覺得現在過好爽 11/06 23:21
DrTech: 人力成本其實不高,風氣就是晚上8點算早下班。 11/06 23:21
DrTech: 加班根本不給薪水,是福報阿。真心羨慕原文那種隨意公司。 11/06 23:23
devilkool: 好猛,除了很硬,扣薪也太可怕 11/06 23:27
POCARI5566: 親 你好猛 11/06 23:30
※ 編輯: DrTech (116.77.73.243 中國), 11/06/2020 23:36:57
s37166117: 還好我一行都拆好幾行寫0..0 11/06 23:37
amego2017: 扎心了 老鐵 11/06 23:45
hb0922: 這篇可信度高 11/06 23:52
loloman: 規模大了就變法治,有些地方就踩很硬 11/06 23:57
furnaceh: 沒想到寫程式也跟學音樂ㄧ樣,練習不夠,隨便亂寫,都有 11/07 00:00
furnaceh: 人知道 11/07 00:00
zmcx16: 我決定開始點炸雞排的技能樹了... 11/07 00:14
clamperni: 原po大神 11/07 00:20
ppc: 好恐怖 11/07 00:22
abccbaandy: 這麼肝是給多少啊... 11/07 00:22
s860134: 我以為只有 google 會注意軟體品質 11/07 00:24
A0091127: 哥 您年薪? 11/07 00:29
DrTech: 這跟年薪與能力無關吧。剛畢業的大學生也是這樣管理。 11/07 00:31
s06yji3: 一個code review這麼多遍人力成本當然高。有沒有加班費是 11/07 00:32
s06yji3: 另一件事情。 11/07 00:32
DrTech: 只能說有經驗的公司,早就把人性看得很透了,所以訂一堆 11/07 00:32
DrTech: 規則防止人偷懶或失誤。 11/07 00:33
holydon: 沒想到大陸也有公司走這套了,直接扣幾千人民幣真的會怕XD 11/07 00:33
da5n299o: 之前請上面code review還要一直寄信跪求QQ 11/07 00:40
Ferrara: 原po這間都是local pay再加一點點 XDDD 11/07 00:48
Ferrara: 所以一個月就閃了 11/07 00:48
nitero: 一個月兩次 release 有點少,通常我們都一個禮拜四次 11/07 00:54
nitero: 盡量發布小的 commit, 有問題都可以很快 trace 11/07 00:55
nitero: 原 po 公司可能是金融相關的?才會用這麼嚴謹的方式上版? 11/07 00:56
saladim: 突然想到 每個月生這麼多程式碼 改這麼多碼 修這麼多bug 11/07 00:56
Smile365Day: H 11/07 00:57
saladim: 最後這系統到底會變成什麼 這麼多人才生出來的東西 肯定 11/07 00:57
saladim: 很強很潮吧 若不是這樣就很無奈了...釘不完的釘子阿.... 11/07 00:58
saladim: 一個禮拜四次release? 這好像有點屌..... 11/07 01:00
DrTech: 我現在是做多媒體串流平台的後台,現在用戶多的軟體出問題 11/07 01:02
Csongs: 扣薪水也太硬 11/07 01:03
DrTech: 一定會被對手炒作,市場蠻競爭的,要對Bug充滿敬畏之心。 11/07 01:04
modelfucker: 幹這太可怕了吧… 11/07 01:05
havochuman: 反正台灣科技仔都覺得阿共都很弱 ㄎㄎ 11/07 01:11
knme: 好嚴格... 只能仰望了 11/07 01:16
unima: 看台灣那些兩光的網銀系統就知道台灣的IT太混! 11/07 01:43
lastpost: 大陸現在很流行扣薪水的感覺 11/07 01:49
sunsamy: 不會管理寫程式才需要這樣搞 11/07 01:55
otto2: 除了扣錢之外,真像mtk modem team QQ 11/07 01:57
EKman: 華人就是乖乖奴阿,很多人喜歡這種狼性,好棒喔 11/07 02:02
qekezfeed: 只會扣錢.... 11/07 02:14
NeedMyMonkey: @havochuman 以偏概全不就好棒棒? 活在自己世界? 11/07 02:23
Hateson: 不會管理寫程式才需要這樣搞+1 11/07 02:44
matyih: 然後繼續酸亞麻血汗工廠..雖然沒錯xd 11/07 03:32
homer00: 敬畏之心…怎麼很像習領導的話 11/07 04:25
pornstar: 美國亞麻的血汗是跟養老Google比較出來的, 跟中國/亞洲 11/07 04:44
pornstar: 公司比工時應該一半都不到 11/07 04:44
yamakazi: 我們歐洲公司也是這樣差不多,不會扣錢。不是互聯網公司 11/07 06:53
yamakazi: 壓力比較小 11/07 06:53
lpoijk: 推文一堆沒見過市面?? 這正常流程而已吧? 11/07 07:16
MAGICMCGRADY: google你想趕快promote也可以超累阿... 11/07 07:23
MAGICMCGRADY: 而且美國公司也沒再給加班費的 11/07 07:25
boss0405: 看程式碼行數XD,一推爛code寫的都超級長的 11/07 07:53
snac: 能好奇做到那麼硬年薪大概多少嗎,不被扣的情況 11/07 07:59
pponywong: 其實外商都這麼做... 11/07 08:27
pponywong: 還有merge也是有準則的 請看git的文件 11/07 08:27
pponywong: CICD後來越做越瘋 連format跟註解都會檢查才給你過 11/07 08:29
wulouise: 統計行數...意義不是很大吧,有impact的可能只有一行 11/07 08:39
yamakazi: 統計行數有意義啦。有用clang format限定格式你就不能隨 11/07 08:46
yamakazi: 便換行,formatter會自動換行,然後空行和註解不會算行 11/07 08:46
yamakazi: 數 11/07 08:46
yamakazi: 而且reviewer也不是白癡,你想偷行數大家都看得出來會叫 11/07 08:47
yamakazi: 你改 11/07 08:47
maypcc: 還是有差 用?:;和if else就差四行了 11/07 08:51
ipojay: 扣薪比較可怕 其它還好 11/07 08:54
ipojay: 通常數十人上百人在寫的程式都要這樣管理 11/07 08:55
yamakazi: 其實在這種環境你才會成長,兩種公司我都待過,現在覺得 11/07 09:00
yamakazi: 待那種亂commit的小公司根本浪費寶貴的青春。 11/07 09:00
ipojay: 很多程式是要交付給客戶的 所以書寫風格也要統一 11/07 09:03
yamakazi: 人是會成長的,一開始壓力會大一點,但等你程度跟上之後 11/07 09:08
yamakazi: 就會變輕鬆一些 11/07 09:08
DrTech: 我們公司的程式碼規範,是要刪除空白行的喔,投機故意增加 11/07 09:35
DrTech: 數,revier 時會被要求修改。 11/07 09:35
DrTech: 我也覺得做這些意義不大,浪費時間,但是其實習慣了以後, 11/07 09:37
DrTech: 搞這些流程時間不會增加太多,但是程式碼會變得很專業好維 11/07 09:37
DrTech: 護。 11/07 09:37
DrTech: 現在我自己反而比較習慣看,緊湊乾淨,的程式碼風格。 11/07 09:39
alihue: 全部都很正常,除了扣薪 11/07 09:39
G8AJ: 你這樣會讓蛙蛙崩潰 11/07 09:40
DrTech: 另外,版友說的很對,不會管理才這樣搞。中國風格就是,懶 11/07 09:44
DrTech: 得管理就禁止你做,不知道怎麼改善就用罰錢。 11/07 09:44
ChoDino: 這篇很值得參考! 11/07 10:08
egnaro123: 優文 11/07 10:12
askaleroux: 中國公司就強的很猛 爛的糞爆 後者比前者多 11/07 10:16
imreader: 人夠多就應該朝這個方向弄 11/07 10:21
sunsamy: 一堆沒見過世面的,人越多越不需要這樣搞,會這樣搞代表管 11/07 10:41
vivijacky: 百人專案幾十萬行的code一定要用CICD人工管理太不靠譜 11/07 10:41
sunsamy: 理程度低落,程式能力差,人一多就handle不了 11/07 10:42
sunsamy: 幾百人的專案代表每個人的loading越輕,搞成每個人loading 11/07 10:46
sunsamy: 變重,程度奇差無比 11/07 10:46
sunsamy: 看不出這樣有搞問題的還一直推崇的,程度也是相當低落 11/07 11:06
yamakazi: 所以樓上意思是要去待亂commit的小公司? 11/07 11:23
Archier: 覺得被搞扣薪水才是公司主要獲利來源吧? 11/07 11:26
bluemkevin: 人越多做的東西也可能越多 11/07 11:39
yamakazi: CICD不一定是最佳解,但是要找到不用CICD同時也能夠維護 11/07 11:43
yamakazi: 程式品質的公司實在太稀有,比日本製壓縮機還稀少。 11/07 11:43
orange0319: 好猛,但是真的嚴謹適合超大專案的維護 11/07 11:48
bluemkevin: 規模大的公司只要是跟Coding有關的多多少少都有CICD機 11/07 11:48
bluemkevin: 制 11/07 11:48
as6633208: 屌欸,不過也正常中國程式都給幾千萬人用,爛code的影 11/07 12:16
as6633208: 響太巨大 11/07 12:16
d58974: 挖靠....拿程式碼commit行數當kpi也太鳥了吧... 11/07 12:18
sc1: 以後統一了台咖就是oncall debugger啦對大陸主管負責 11/07 12:35
UpMe: 用扣薪真的很恐怖。既然如此高壓 那給薪肯定高吧? 11/07 12:38
freef1y3: 那請問幫人review有加錢嗎 不然出事扣錢沒出事也沒加錢 11/07 12:47
freef1y3: 誰要幫別人review 11/07 12:47
loveyourself: 這種不會變成每天review code就飽了? 11/07 12:50
XoPXoP: Dr tech必推 11/07 13:14
alihue: errr 花很多時間看 PR 在大型軟體超常見好嗎... 11/07 13:36
alihue: 該改的是背鍋文化吧 11/07 13:36
s860134: 外商都是發 PR 給 approval 滿標者才 merge 咩 11/07 13:39
s860134: MR 發出去自動跑 jenkins pipline 或 gitlab pipline 11/07 13:40
s860134: 做基本檢察和測試 11/07 13:40
alihue: 我們公司每半年才 release 一個主版本,release 前除了基 11/07 13:41
alihue: 本 CICD 要跑得過以外,還寫了規模不小的整合測試框架 11/07 13:42
alihue: 跑完框架也都是 24h 以上的時間,release 前還要由不同人 11/07 13:42
alihue: 去手動測,再加上還要跑 perf test 和 long run test 才可 11/07 13:43
alihue: release. 11/07 13:43
wcre: 有bug扣薪合理,但是年薪低應該找不到員工吧 11/07 13:50
s860134: 給太少 臺灣人還會做飛機去中國打工嗎? 11/07 13:52
fewhy: 是給你多少錢 一直扣好幾千還幹的下去喔 11/07 14:18
Morigan: 一看就知道是大公司 11/07 14:58
easton7: 很多外商也都這樣了吧,但還是有辦法產出一堆垃圾 11/07 15:56
bkcat2: 遇過某中國手機致敬王者公司bsp rd build img後boot會死 11/07 16:16
bkcat2: 機 問是不是我們改了什麼 我滿頭問號 從沒release新bin 11/07 16:16
bkcat2: 反問他們有改什麼 兩個rd一個說checkout有問題 所以退回 11/07 16:16
bkcat2: 前一版ok 另一說直接用最新checkout然後這樣了 然後他們 11/07 16:16
bkcat2: 兩吵了起來...就算build也是需要整體性驗證...更何況不能 11/07 16:16
bkcat2: build還上code... 11/07 16:16
PTThotspring: 看行數比較我笑了 11/07 16:26
Kayusumi: 目前我明明是寫韌體的,卻還要去檢查ui的bug 坑 11/07 16:31
revorea: 這真的是有經驗的才知道XD 11/07 18:11
xiao2chen: 聽起來是真碼農 11/07 18:56
ayler88: 這一定是給高薪的大公司了 11/07 19:43
black82465: 牛 11/07 19:45
ayler88: 台灣二線公司, 花錢買coverity授權都... 11/07 19:46
ayler88: 小公司就更別談了 11/07 19:46
ayler88: 如果這樣搞法,公司還不願意花錢請頂級人才 11/07 19:50
ayler88: 一堆測試問題就把錢都給扣光光了 11/07 19:50
ayler88: 用過國際第一流大廠(非台商)的SDK, 問題都一卡車了... 11/07 20:04
s860134: 其實扣薪水都不是什麼大錢,有些公司就是 fail build 請 11/07 21:41
s860134: 全公司飲料咩,群暉以前也有這樣做 11/07 21:42
s860134: 一般 "有制度" 的 "大" 公司流程都是這樣 11/07 21:42
stosto: 還有在比行數?? 11/07 22:18
WarIII: 聽完我想去賣雞排了 有夠硬 11/07 23:08
boss0405: gerrit code review、Jenkins、coverity都算有意義,可 11/07 23:13
boss0405: 以增加軟體品質。不過算行數真的很好笑,依LinkedList 11/07 23:13
boss0405: 為例,Datapath寫的漂亮的和爛的,總行數可能差到三倍以 11/07 23:13
boss0405: 上。 11/07 23:13
xru03: 推 11/08 01:18
leo1217000: 看起來就是正經在做事情的公司,而且有一定規模 11/08 03:02
OhNo386: 行數 只是為了比較 讓你感到羞恥而已 11/08 05:45
OhNo386: 這點不是很人性就是了 會因爲這點而做不下去 11/08 05:46
davian0118: 這麼多毛的公司我pass 11/08 09:22
bluemkevin: 扣除行數要求,這些要求都還好吧? 11/08 09:41
APTON: 好想去開眼界啊... 11/08 12:51
Riruna: 比行數真的不知道能幹嘛..程式重點不是演算法嗎?好的演 11/08 13:06
Riruna: 算法比寫一堆垃圾code去拼出功能好多了 11/08 13:06
mushroom5566: 這看起來很正常吧... 11/08 16:58
sunsamy: 嗯,的確很正常,很多大公司軟體程度就是這麼低落,這樣的 11/08 18:34
sunsamy: CICD若對提高品質有效的話,馬上就不需要commit程式碼了, 11/08 18:34
sunsamy: 還一直要求commit程式碼,邏輯錯亂的一堆 11/08 18:35
GABA: 跟產線的良率當KPI 87%像 有的血汗公司產線良率還會採連坐 11/08 18:37
GABA: 法 科科 11/08 18:37
Baternest: 除了扣錢 其它都蠻合理的 11/09 11:04
LoveCheer: 這種公司能永續發展才奇怪 動不動就罰錢 11/09 12:20
bluemkevin: 小公司的爛才是突破天際 11/09 12:29
mike0327: 行數當kpi到底是什麼爛管理腦= = 11/09 13:21
mike0327: 除了行數kpi還有扣錢以外,以軟體開發來說剛剛好而已 11/09 13:25
a810086: 推 11/09 15:14
jakert123: 扣錢XD 11/09 21:16
Sunal: UT是啥 unittest???這也要簡稱? 11/10 00:15
Sunal: 以軟體開發來說這就是大公司做法啊 除了扣錢 11/10 00:15
PeacockLiu: 仔細看敘述,行數不是KPI 11/10 01:53
charlie2010: 比行數,真的笑了 11/10 10:02
lplpkkk: 除了扣薪其他和M相似 02/23 22:40
vatog : 除了扣薪和算行數 其他算常見的作法 07/31 13:45