軟體工程師的修煉與成長 (2) — 規模與複雜度

vgod's blog
Feb 14, 2022

--

Source: nerovivo via Flickr (CC BY 2.0)

規模與複雜度

上集聊到軟體工程是「團隊接力馬拉松」,越大的公司就有越多人累積越多時間和程式碼在公司的程式庫上。對於剛畢業的L3工程師來說,要在加入一個已經有規模的公司後馬上開始有貢獻,最難的往往不是把自己被交代的任務寫出來這部分,而是在了解現有系統是如何運作並且找到該從哪裡下手開始。一個稍微有規模的公司,整個程式庫常常有十年以上的歷史,經過幾百人甚至幾千人的修改是很常見的事。如果是Google、Facebook、Microsoft、Amazon這種有上萬人接力二三十年的公司,程式庫的規模更是大得驚人,公司裡不管多資深或多高層的人都沒辦法瞭解全貌。

Google就曾在2015年公布過,他們當時有2萬5千個工程師,總共已經累積20億行程式碼,而且全都在同一個程式庫裡。不是軟體工程師可能很難理解,為什麼很多公司看起來就是一個網站而已,為什麼需要雇用這麼多工程師寫這麼多程式?很多學生專…

--

--