Kubernetes 是 Google 開源的一個(gè)容器編排引擎,它支持自動化部署、大規(guī)?缮炜s、應(yīng)用容器化管理。Kubernetes 簡稱 K8s
酒店網(wǎng)站建設(shè),用「8」替代 K 和 s 之間的 8 個(gè)字母「ubernete」。
K8s 的 pv_controller.go 源碼大約 1700 行(含注釋)
科技行業(yè)網(wǎng)站建設(shè),其中包括:230+ 個(gè) if 語句、30 個(gè) else 語句、5 個(gè) else if 語句嵌套在一起。
乍一看,這代碼違背了 KISS (Keep it simple, stupid)原則。
但是,K8s 的工程師們在注釋中用大寫英文標(biāo)注:“請不要嘗試簡化這些代碼!”并且還寫了兩遍。
為啥強(qiáng)調(diào)兩遍?K8s 他們在注釋中特意解釋了。大意如下:
這個(gè)控制器故意以一種非常冗長的風(fēng)格編寫。你會發(fā)現(xiàn):
1、每個(gè) if 語句都有一個(gè)匹配的 else 語句(檢查客戶端 API 調(diào)用的簡單錯(cuò)誤除外);
2、有很多被顯式地注釋的東西;
我們把這種風(fēng)格叫做“航天飛機(jī)風(fēng)格”。航天飛機(jī)的風(fēng)格意味著,要確保每個(gè)分支和條件都得到考慮和說明。NASA 為航天飛機(jī)等應(yīng)用程序編寫的代碼也是如此。
最初,這個(gè)控制器的工作被分成三個(gè)控制器?刂破魇桥喕 PV 子系統(tǒng)的成果。在此過程中,我們要確保在代碼中處理和解釋了每一個(gè)條件,即使這會導(dǎo)致無 op 代碼分支。
因此,控制器代碼可能看起來過于冗長、注釋過多和“分支”。但是,這里記錄了大量的業(yè)務(wù)知識和上下文,以便確保未來的維護(hù)者能夠正確地推斷綁定行為的復(fù)雜性。因此
巧用重復(fù)設(shè)計(jì)LOGO,對這個(gè)文件的修改,應(yīng)該保留并增加航天飛機(jī)的風(fēng)格。
,