※ 引述《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
※ 編輯: DrTech (116.77.73.243 中國), 11/06/2020 23:36:57
推文 (187)
推
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
推
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
推
zero11995
除了行數以外其他都還可以 扣薪另外爭議
07/02 17:47
推
crazwade
專業 剛好要學相關很實用
223.139.127.215 08/17 23:29