上周在一場(chǎng)技術(shù)分享會(huì)上,一位老程序員突然問(wèn)我:你知道為什么Go語(yǔ)言的設(shè)計(jì)者Rob Pike會(huì)被反復(fù)引用嗎?不是因?yàn)樗菆D靈獎(jiǎng)得主,而是因?yàn)樗褟?fù)雜問(wèn)題總結(jié)成了5句話(huà)——而且這些話(huà)全是抄的。
法則1-2:別急著優(yōu)化
Pike的前兩條法則,原封不動(dòng)搬了Tony Hoare的名言:「過(guò)早優(yōu)化是萬(wàn)惡之源。」
Hoare1969年說(shuō)過(guò)這話(huà),Pike沒(méi)打算搶功。他只是把這條鐵律放進(jìn)自己的清單,提醒程序員:先讓代碼跑通,再考慮性能。數(shù)據(jù)結(jié)構(gòu)和算法沒(méi)選對(duì)之前,所有優(yōu)化都是自嗨。
法則3-4:暴力美學(xué)
Ken Thompson把這兩條總結(jié)得更狠:「拿不準(zhǔn)時(shí),就用蠻力。」
這其實(shí)是KISS原則(Keep It Simple, Stupid,保持簡(jiǎn)單和愚蠢)的實(shí)戰(zhàn)版。Pike的原話(huà)更具體:復(fù)雜算法通常有bug,而且難維護(hù)。簡(jiǎn)單方案慢點(diǎn)沒(méi)關(guān)系,硬件比你便宜。
Google內(nèi)部流傳過(guò)一個(gè)案例:某團(tuán)隊(duì)用紅黑樹(shù)實(shí)現(xiàn)了復(fù)雜調(diào)度,上線(xiàn)后頻繁崩潰。換成暴力遍歷,CPU占用漲了3%,故障歸零。
法則5:寫(xiě)笨代碼,用聰明對(duì)象
這條偷師Fred Brooks的《人月神話(huà)》。Pike的版本是:讓底層庫(kù)去聰明,業(yè)務(wù)代碼保持愚蠢。
Go語(yǔ)言的設(shè)計(jì)就是活例子。goroutine調(diào)度、垃圾回收、網(wǎng)絡(luò)輪詢(xún)——這些臟活累活runtime包了,用戶(hù)寫(xiě)的代碼像C語(yǔ)言一樣直白。
5條法則,4條是引用。Pike的原創(chuàng)性在哪?
他把散落在計(jì)算機(jī)科學(xué)史里的碎片,拼成了一張給實(shí)戰(zhàn)者的地圖。不是讓你背名言,是讓你在寫(xiě)代碼時(shí)少糾結(jié)——該暴力就暴力,該偷懶就偷懶。
問(wèn)題是:現(xiàn)在的AI編程助手,是在幫我們遵守這些法則,還是讓我們更容易違反它們?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.