• <dd id="3gzlp"></dd>

    <li id="3gzlp"><acronym id="3gzlp"></acronym></li>

    <span id="3gzlp"></span>

    Uber 開放公司內部《Go 語言風格指南》

    oschina
     oschina
    發布于 2019年10月13日
    收藏 77

    精選30+云產品,助力企業輕松上云!>>>

    Uber 近日開放了其公司內部使用的《Go 語言風格指南》。

    Uber 介紹,“風格”也就是支配我們代碼的慣例,該指南出現在 Uber 公司內部是為了使代碼庫易于管理,同時讓工程師有效地使用 Go 語言特性。

    文檔中詳細描述了在 Uber 編寫 Go 代碼的注意事項,具體列出來的是“Dos and Don'ts of writing Go code at Uber”,也就是不該怎樣寫,而應該怎樣寫 Go 代碼。

    其中許多約定是 Go 的通用準則,而其它準則則參考了外部資源:

    指南涵蓋了“指導方針”、“性能”、“風格”與“模式”幾個大模塊,下設各項具體的注意事項:

    以“Defer to Clean Up(使用 defer 清理)”小節為例,該指南這樣描述:

    使用 defer 清理資源,例如文件和鎖。

    Bad Good
    p.Lock()
    if p.count < 10 {
      p.Unlock()
      return p.count
    }
    
    p.count++
    newCount := p.count
    p.Unlock()
    
    return newCount
    
    // easy to miss unlocks due to multiple returns
    p.Lock()
    defer p.Unlock()
    
    if p.count < 10 {
      return p.count
    }
    
    p.count++
    return p.count
    
    // more readable

    defer 的開銷非常小,只有在可以證明函數執行時間處于納秒級的程度時,才應避免使用。使用 defer 可以獲得更好的代碼可讀性,而它的開銷相比來說可以忽略不計。對于具有更多更大內存訪問的方法來說 defer 會顯得更加重要。

    詳情查看該指南:

    https://github.com/uber-go/guide/blob/master/style.md

    本站文章除注明轉載外,均為本站原創或編譯。歡迎任何形式的轉載,但請務必注明出處,尊重他人勞動共創開源社區。
    轉載請注明:文章轉載自 OSCHINA 社區 [http://www.url23.com]
    本文標題:Uber 開放公司內部《Go 語言風格指南》
    加載中
    此新聞有 12 條評論,請先登錄后再查看。
    返回頂部
    頂部
    聚看影院