Kubernetes 是 Google 開源的一個容器編排引擎,它支持自動化部署、大規(guī)??缮炜s、應(yīng)用容器化管理。Kubernetes 簡稱 K8s,用「8」替代 K 和 s 之間的 8 個字母「ubernete」。
K8s 的 pv_controller.go 源碼大約 1700 行(含注釋),其中包括:230+ 個 if 語句、30 個 else 語句、5 個 else if 語句嵌套在一起。
乍一看,這代碼違背了 KISS (Keep it simple, stupid)原則。
但是,K8s 的工程師們在注釋中用大寫英文標(biāo)注:“請不要嘗試簡化這些代碼!”并且還寫了兩遍。
為啥強(qiáng)調(diào)兩遍?K8s 他們在注釋中特意解釋了。大意如下:
這個控制器故意以一種非常冗長的風(fēng)格編寫。你會發(fā)現(xiàn):
1、每個 if 語句都有一個匹配的 else 語句(檢查客戶端 API 調(diào)用的簡單錯誤除外);
2、有很多被顯式地注釋的東西;
我們把這種風(fēng)格叫做“航天飛機(jī)風(fēng)格”。航天飛機(jī)的風(fēng)格意味著,要確保每個分支和條件都得到考慮和說明。NASA 為航天飛機(jī)等應(yīng)用程序編寫的代碼也是如此。
最初,這個控制器的工作被分成三個控制器。控制器是努力簡化 PV 子系統(tǒng)的成果。在此過程中,我們要確保在代碼中處理和解釋了每一個條件,即使這會導(dǎo)致無 op 代碼分支。
因此,控制器代碼可能看起來過于冗長、注釋過多和“分支”。但是,這里記錄了大量的業(yè)務(wù)知識和上下文,以便確保未來的維護(hù)者能夠正確地推斷綁定行為的復(fù)雜性。因此,對這個文件的修改,應(yīng)該保留并增加航天飛機(jī)的風(fēng)格。
新聞標(biāo)題:網(wǎng)站建設(shè)中程序員請不要嘗試簡化這些代碼!
新聞來源:http://www.rwnh.cn/news/114560.html
網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項目有網(wǎng)站建設(shè)等
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)