<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Go語言之禪

          共 1176字,需瀏覽 3分鐘

           ·

          2021-05-10 17:15


          Dave Cheney即將在2021 GopherChina帶來《The Zen of Go》的最新版本分享



          知名 Go 語言貢獻(xiàn)者與布道師 Dave Cheney 2020年發(fā)表了名為《The Zen of Go》,給大家分享了編寫簡單、可讀、可維護(hù)的 Go 代碼的十個(gè)工程要點(diǎn)。

          每個(gè)包實(shí)現(xiàn)單一目標(biāo)
          設(shè)計(jì)良好的 Go 軟件包提供一個(gè)單一的思路,以及一系列相關(guān)的行為。一個(gè)好的 Go 軟件包首先需要選擇一個(gè)好名字,使用電梯法則(30 秒內(nèi)向客戶講清楚一個(gè)方案),僅用一個(gè)詞來思考你的軟件包要提供什么功能。

          明確處理錯(cuò)誤
          健壯的程序其實(shí)是由處理故障案例的片段組成的,并且需要在故障出現(xiàn)之前處理好。冗余的if err != nil { return err }比出了故障再一個(gè)個(gè)去處理更有價(jià)值。panic 和 recover 也一樣。

          盡早 return,不要深陷
          每次縮進(jìn)時(shí)都會在程序員的堆棧中添加另一個(gè)先決條件,這會占用他們短期內(nèi)存中的 7±2 個(gè)片段。避免需要深層縮進(jìn)的控制流。與其深入嵌套,不如使用守衛(wèi)子句將成功路徑保持在左側(cè)。

          并發(fā)權(quán)留給調(diào)用者
          讓調(diào)用者選擇是否要異步運(yùn)行你的庫或函數(shù),不要強(qiáng)制他們使用異步。

          在啟動 goroutine 之前,要知道它什么時(shí)候會停止
          goroutines 擁有資源、鎖、變量與內(nèi)存等,釋放這些資源的可靠方法是停止 goroutine。

          避免包級別的狀態(tài)
          要完成明確和減少耦合的操作,需要通過提供類型需要的依賴項(xiàng)作為該類型上的字段,而不是使用包變量。

          簡單性很重要
          簡單性不是老練的代名詞。簡單并不意味著粗糙,它意味著可讀性和可維護(hù)性。如果可以選擇,請遵循較簡單的解決方案。

          編寫測試以確認(rèn)包 API 的行為
          軟件包的 API 是與使用者的一份合約,不管先后,不管多少,一定要進(jìn)行測試。測試是確定合約的保證。要確保測試使用者可以觀察和依賴的行為。

          如果你認(rèn)為速度緩慢,先通過基準(zhǔn)測試進(jìn)行驗(yàn)證
          以性能之名會犯下許多危害可維護(hù)性的罪行。優(yōu)化會破壞抽象、暴露內(nèi)部和緊密耦合。如果要付出這樣的代價(jià),請確保有充分理由這樣做。

          節(jié)制是一種美德
          適度使用 goroutine、通道、鎖、接口與嵌套。


          今年2021年GopherChina大會,David將要帶來全新的Go語言之禪的版本,閱讀原文速速鎖定早鳥票名額。



          David是Go編程語言的開源貢獻(xiàn)者和項(xiàng)目成員。David是技術(shù)界中受人尊敬的代言人,他在軟件設(shè)計(jì),性能和Go編程語言等各種主題上發(fā)表演講。David是全球Go語言布道師,長期在Go高性能編程上面有深入的研究。

          瀏覽 64
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  少妇福利在线 | 中文字幕无码视频在线观看 | 直接免费看黄色视频 | 日韩亚洲在线视频 | 成人麻豆日韩在无码视频 |