PTT評價

Re: [討論] 對岸的軟體工程師

看板Tech_Job標題Re: [討論] 對岸的軟體工程師作者
DrTech
(竹科管理處網軍研發人員)
時間推噓91 推:92 噓:1 →:84

※ 引述《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

※ PTT 留言評論

TokyoHard11/06 23:07親!信你了!

s06yji311/06 23:17人力成本超高...,方便問sprint和release週期嗎?

DrTech11/06 23:19發版的周期是,每個月發兩個release版本。長假前後凍結。

DCTmaybe11/06 23:21也太硬...突然覺得現在過好爽

DrTech11/06 23:21人力成本其實不高,風氣就是晚上8點算早下班。

DrTech11/06 23:23加班根本不給薪水,是福報阿。真心羨慕原文那種隨意公司。

devilkool11/06 23:27好猛,除了很硬,扣薪也太可怕

POCARI556611/06 23:30親 你好猛

※ 編輯: DrTech (116.77.73.243 中國), 11/06/2020 23:36:57

s3716611711/06 23:37還好我一行都拆好幾行寫0..0

amego201711/06 23:45扎心了 老鐵

hb092211/06 23:52這篇可信度高

loloman11/06 23:57規模大了就變法治,有些地方就踩很硬

furnaceh11/07 00:00沒想到寫程式也跟學音樂ㄧ樣,練習不夠,隨便亂寫,都有

furnaceh11/07 00:00人知道

zmcx1611/07 00:14我決定開始點炸雞排的技能樹了...

clamperni11/07 00:20原po大神

ppc11/07 00:22好恐怖

abccbaandy11/07 00:22這麼肝是給多少啊...

s86013411/07 00:24我以為只有 google 會注意軟體品質

A009112711/07 00:29哥 您年薪?

DrTech11/07 00:31這跟年薪與能力無關吧。剛畢業的大學生也是這樣管理。

s06yji311/07 00:32一個code review這麼多遍人力成本當然高。有沒有加班費是

s06yji311/07 00:32另一件事情。

DrTech11/07 00:32只能說有經驗的公司,早就把人性看得很透了,所以訂一堆

DrTech11/07 00:33規則防止人偷懶或失誤。

holydon11/07 00:33沒想到大陸也有公司走這套了,直接扣幾千人民幣真的會怕XD

da5n299o11/07 00:40之前請上面code review還要一直寄信跪求QQ

Ferrara11/07 00:48原po這間都是local pay再加一點點 XDDD

Ferrara11/07 00:48所以一個月就閃了

nitero11/07 00:54一個月兩次 release 有點少,通常我們都一個禮拜四次

nitero11/07 00:55盡量發布小的 commit, 有問題都可以很快 trace

nitero11/07 00:56原 po 公司可能是金融相關的?才會用這麼嚴謹的方式上版?

saladim11/07 00:56突然想到 每個月生這麼多程式碼 改這麼多碼 修這麼多bug

Smile365Day11/07 00:57H

saladim11/07 00:57最後這系統到底會變成什麼 這麼多人才生出來的東西 肯定

saladim11/07 00:58很強很潮吧 若不是這樣就很無奈了...釘不完的釘子阿....

saladim11/07 01:00一個禮拜四次release? 這好像有點屌.....

DrTech11/07 01:02我現在是做多媒體串流平台的後台,現在用戶多的軟體出問題

Csongs11/07 01:03扣薪水也太硬

DrTech11/07 01:04一定會被對手炒作,市場蠻競爭的,要對Bug充滿敬畏之心。

modelfucker11/07 01:05幹這太可怕了吧…

havochuman11/07 01:11反正台灣科技仔都覺得阿共都很弱 ㄎㄎ

knme11/07 01:16好嚴格... 只能仰望了

unima11/07 01:43看台灣那些兩光的網銀系統就知道台灣的IT太混!

lastpost11/07 01:49大陸現在很流行扣薪水的感覺

sunsamy11/07 01:55不會管理寫程式才需要這樣搞

otto211/07 01:57除了扣錢之外,真像mtk modem team QQ

EKman11/07 02:02華人就是乖乖奴阿,很多人喜歡這種狼性,好棒喔

qekezfeed11/07 02:14只會扣錢....

NeedMyMonkey11/07 02:23@havochuman 以偏概全不就好棒棒? 活在自己世界?

Hateson11/07 02:44不會管理寫程式才需要這樣搞+1

matyih11/07 03:32然後繼續酸亞麻血汗工廠..雖然沒錯xd

homer0011/07 04:25敬畏之心…怎麼很像習領導的話

pornstar11/07 04:44美國亞麻的血汗是跟養老Google比較出來的, 跟中國/亞洲

pornstar11/07 04:44公司比工時應該一半都不到

yamakazi11/07 06:53我們歐洲公司也是這樣差不多,不會扣錢。不是互聯網公司

yamakazi11/07 06:53壓力比較小

lpoijk11/07 07:16推文一堆沒見過市面?? 這正常流程而已吧?

MAGICMCGRADY11/07 07:23google你想趕快promote也可以超累阿...

MAGICMCGRADY11/07 07:25而且美國公司也沒再給加班費的

boss040511/07 07:53看程式碼行數XD,一推爛code寫的都超級長的

snac11/07 07:59能好奇做到那麼硬年薪大概多少嗎,不被扣的情況

pponywong11/07 08:27其實外商都這麼做...

pponywong11/07 08:27還有merge也是有準則的 請看git的文件

pponywong11/07 08:29CICD後來越做越瘋 連format跟註解都會檢查才給你過

wulouise11/07 08:39統計行數...意義不是很大吧,有impact的可能只有一行

yamakazi11/07 08:46統計行數有意義啦。有用clang format限定格式你就不能隨

yamakazi11/07 08:46便換行,formatter會自動換行,然後空行和註解不會算行

yamakazi11/07 08:46

yamakazi11/07 08:47而且reviewer也不是白癡,你想偷行數大家都看得出來會叫

yamakazi11/07 08:47你改

maypcc11/07 08:51還是有差 用?:;和if else就差四行了

ipojay11/07 08:54扣薪比較可怕 其它還好

ipojay11/07 08:55通常數十人上百人在寫的程式都要這樣管理

yamakazi11/07 09:00其實在這種環境你才會成長,兩種公司我都待過,現在覺得

yamakazi11/07 09:00待那種亂commit的小公司根本浪費寶貴的青春。

ipojay11/07 09:03很多程式是要交付給客戶的 所以書寫風格也要統一

yamakazi11/07 09:08人是會成長的,一開始壓力會大一點,但等你程度跟上之後

yamakazi11/07 09:08就會變輕鬆一些

DrTech11/07 09:35我們公司的程式碼規範,是要刪除空白行的喔,投機故意增加

DrTech11/07 09:35數,revier 時會被要求修改。

DrTech11/07 09:37我也覺得做這些意義不大,浪費時間,但是其實習慣了以後,

DrTech11/07 09:37搞這些流程時間不會增加太多,但是程式碼會變得很專業好維

DrTech11/07 09:37護。

DrTech11/07 09:39現在我自己反而比較習慣看,緊湊乾淨,的程式碼風格。

alihue11/07 09:39全部都很正常,除了扣薪

G8AJ11/07 09:40你這樣會讓蛙蛙崩潰

DrTech11/07 09:44另外,版友說的很對,不會管理才這樣搞。中國風格就是,懶

DrTech11/07 09:44得管理就禁止你做,不知道怎麼改善就用罰錢。

ChoDino11/07 10:08這篇很值得參考!

egnaro12311/07 10:12優文

askaleroux11/07 10:16中國公司就強的很猛 爛的糞爆 後者比前者多

imreader11/07 10:21人夠多就應該朝這個方向弄

sunsamy11/07 10:41一堆沒見過世面的,人越多越不需要這樣搞,會這樣搞代表管

vivijacky11/07 10:41百人專案幾十萬行的code一定要用CICD人工管理太不靠譜

sunsamy11/07 10:42理程度低落,程式能力差,人一多就handle不了

sunsamy11/07 10:46幾百人的專案代表每個人的loading越輕,搞成每個人loading

sunsamy11/07 10:46變重,程度奇差無比

sunsamy11/07 11:06看不出這樣有搞問題的還一直推崇的,程度也是相當低落

yamakazi11/07 11:23所以樓上意思是要去待亂commit的小公司?

Archier11/07 11:26覺得被搞扣薪水才是公司主要獲利來源吧?

bluemkevin11/07 11:39人越多做的東西也可能越多

yamakazi11/07 11:43CICD不一定是最佳解,但是要找到不用CICD同時也能夠維護

yamakazi11/07 11:43程式品質的公司實在太稀有,比日本製壓縮機還稀少。

orange031911/07 11:48好猛,但是真的嚴謹適合超大專案的維護

bluemkevin11/07 11:48規模大的公司只要是跟Coding有關的多多少少都有CICD機

bluemkevin11/07 11:48

as663320811/07 12:16屌欸,不過也正常中國程式都給幾千萬人用,爛code的影

as663320811/07 12:16響太巨大

d5897411/07 12:18挖靠....拿程式碼commit行數當kpi也太鳥了吧...

sc111/07 12:35以後統一了台咖就是oncall debugger啦對大陸主管負責

UpMe11/07 12:38用扣薪真的很恐怖。既然如此高壓 那給薪肯定高吧?

freef1y311/07 12:47那請問幫人review有加錢嗎 不然出事扣錢沒出事也沒加錢

freef1y311/07 12:47 誰要幫別人review

loveyourself11/07 12:50這種不會變成每天review code就飽了?

XoPXoP11/07 13:14Dr tech必推

alihue11/07 13:36errr 花很多時間看 PR 在大型軟體超常見好嗎...

alihue11/07 13:36該改的是背鍋文化吧

s86013411/07 13:39外商都是發 PR 給 approval 滿標者才 merge 咩

s86013411/07 13:40MR 發出去自動跑 jenkins pipline 或 gitlab pipline

s86013411/07 13:40做基本檢察和測試

alihue11/07 13:41我們公司每半年才 release 一個主版本,release 前除了基

alihue11/07 13:42本 CICD 要跑得過以外,還寫了規模不小的整合測試框架

alihue11/07 13:42跑完框架也都是 24h 以上的時間,release 前還要由不同人

alihue11/07 13:43去手動測,再加上還要跑 perf test 和 long run test 才可

alihue11/07 13:43release.

wcre11/07 13:50有bug扣薪合理,但是年薪低應該找不到員工吧

s86013411/07 13:52給太少 臺灣人還會做飛機去中國打工嗎?

fewhy11/07 14:18是給你多少錢 一直扣好幾千還幹的下去喔

Morigan11/07 14:58一看就知道是大公司

easton711/07 15:56很多外商也都這樣了吧,但還是有辦法產出一堆垃圾

bkcat211/07 16:16遇過某中國手機致敬王者公司bsp rd build img後boot會死

bkcat211/07 16:16機 問是不是我們改了什麼 我滿頭問號 從沒release新bin

bkcat211/07 16:16反問他們有改什麼 兩個rd一個說checkout有問題 所以退回

bkcat211/07 16:16前一版ok 另一說直接用最新checkout然後這樣了 然後他們

bkcat211/07 16:16兩吵了起來...就算build也是需要整體性驗證...更何況不能

bkcat211/07 16:16build還上code...

PTThotspring11/07 16:26看行數比較我笑了

Kayusumi11/07 16:31目前我明明是寫韌體的,卻還要去檢查ui的bug 坑

revorea11/07 18:11這真的是有經驗的才知道XD

xiao2chen11/07 18:56聽起來是真碼農

ayler8811/07 19:43這一定是給高薪的大公司了

black8246511/07 19:45

ayler8811/07 19:46台灣二線公司, 花錢買coverity授權都...

ayler8811/07 19:46小公司就更別談了

ayler8811/07 19:50如果這樣搞法,公司還不願意花錢請頂級人才

ayler8811/07 19:50一堆測試問題就把錢都給扣光光了

ayler8811/07 20:04用過國際第一流大廠(非台商)的SDK, 問題都一卡車了...

s86013411/07 21:41其實扣薪水都不是什麼大錢,有些公司就是 fail build 請

s86013411/07 21:42全公司飲料咩,群暉以前也有這樣做

s86013411/07 21:42一般 "有制度" 的 "大" 公司流程都是這樣

stosto11/07 22:18還有在比行數??

WarIII11/07 23:08聽完我想去賣雞排了 有夠硬

boss040511/07 23:13gerrit code review、Jenkins、coverity都算有意義,可

boss040511/07 23:13以增加軟體品質。不過算行數真的很好笑,依LinkedList

boss040511/07 23:13為例,Datapath寫的漂亮的和爛的,總行數可能差到三倍以

boss040511/07 23:13上。

xru0311/08 01:18

leo121700011/08 03:02看起來就是正經在做事情的公司,而且有一定規模

OhNo38611/08 05:45行數 只是為了比較 讓你感到羞恥而已

OhNo38611/08 05:46這點不是很人性就是了 會因爲這點而做不下去

davian011811/08 09:22這麼多毛的公司我pass

bluemkevin11/08 09:41扣除行數要求,這些要求都還好吧?

APTON11/08 12:51好想去開眼界啊...

Riruna11/08 13:06比行數真的不知道能幹嘛..程式重點不是演算法嗎?好的演

Riruna11/08 13:06算法比寫一堆垃圾code去拼出功能好多了

mushroom556611/08 16:58這看起來很正常吧...

sunsamy11/08 18:34嗯,的確很正常,很多大公司軟體程度就是這麼低落,這樣的

sunsamy11/08 18:34CICD若對提高品質有效的話,馬上就不需要commit程式碼了,

sunsamy11/08 18:35還一直要求commit程式碼,邏輯錯亂的一堆

GABA11/08 18:37跟產線的良率當KPI 87%像 有的血汗公司產線良率還會採連坐

GABA11/08 18:37法 科科

Baternest11/09 11:04除了扣錢 其它都蠻合理的

LoveCheer11/09 12:20這種公司能永續發展才奇怪 動不動就罰錢

bluemkevin11/09 12:29小公司的爛才是突破天際

mike032711/09 13:21行數當kpi到底是什麼爛管理腦= =

mike032711/09 13:25除了行數kpi還有扣錢以外,以軟體開發來說剛剛好而已

a81008611/09 15:14

jakert12311/09 21:16扣錢XD

Sunal11/10 00:15UT是啥 unittest???這也要簡稱?

Sunal11/10 00:15以軟體開發來說這就是大公司做法啊 除了扣錢

PeacockLiu11/10 01:53仔細看敘述,行數不是KPI

charlie201011/10 10:02比行數,真的笑了

lplpkkk02/23 22:40除了扣薪其他和M相似

vatog 07/31 13:45除了扣薪和算行數 其他算常見的作法