关于go:Go-代码风格没人喜欢不对Gofmt-是所有人的最爱

42次阅读

共计 1300 个字符,预计需要花费 4 分钟才能阅读完成。

大家好,我是煎鱼。

在任何语言进行编程开发时,只有波及到多人合作。就肯定会遇到一个旷世奋斗的大问题。那就是:编码格调。

Go 的,PHP 的,Java 的,C++ 的;高级、中级、高级、治理的格调;传统的、互联网的又都不一样。

谁的格调更好

例如经典的判断场景:if err != nil,至多能够写出三种模式。如下代码:

# 形式一
if err != nil {// do something...}

# 形式二
if err != nil
{// do something...}

# 形式三
if err != nil {// do something...}

在团队中,到底选用哪一种形式呢?看性能?看格调?看少打几个空格?看谁拳头大?

这是个常常明的暗里撕逼的问题。

对立编码格调

在 Go 的谚语中有一句是:“Gofmt’s style is no one’s favorite, yet gofmt is everyone’s favorite”。大抵的意思是 Gofmt 的格调没有人喜爱,但 Gofmt 是每个人的最爱。

这是为什么呢?又爱又不爱的。

咱们先从 Gofmt 的性能来讲,它可能格式化 Go 程序,应用制表符来缩进,应用空格来对齐,可能让你的代码长的都一样。

无论是谁,怎么写。只有联合 IDE 和 Gofmt 一配置,都会变成如下格局:

if err != nil {// do something...}

因而在 Go 中,编码格调的争议变得毫无意义。由官网对立管控,若有矛盾也会转移到 Go 团队自身。

综合来看,大家还是会更偏向于往官网定义的格调去凑近,去符合标准,可能缩小十分多的争端。

这就是为什么”Gofmt 是每个人的最爱“的起因了,当然。我认为叫”团队的最爱“可能更加的适宜。

没有施展空间

谚语里也提到了,Gofmt 的格调没有人喜爱。这又怎么说?

实在的社区敌人会遇到这类场景。如下图:

实际上 Gofmt 有不少对齐有的小伙伴并不喜爱,想改。很惋惜 … 并不能,Go 就是要齐全保持一致。

甚至有同学在社区 issues 提过,Go 外围团队的 rsc 也给出了明确的间接回复:

对于 Go 的设计来讲,Gofmt 没有配置是十分重要的。如果想要减少可配置的规范化,这是不可能的。

谚语说到 Gofmt 没有人喜爱,也是因为它是一个强制性的货色,不关乎你的爱好与否,总有人喜爱不一样的标准格局。

总结

Go 编程标准的规范统一化,从不同的角度来看有好有坏。但当你承受一个历史新代码,它的编码格局都被 Gofmt 解决的整整齐齐,和你 10 年后看到的代码格局仍然统一,那也的确是一个很不错的好处。

语言自身来看,它是让 Go 胜利的重要起因之一,让许多团队许多人缩小了很多争端,功大于过,有相当的存在必要。你认为呢?

文章继续更新,能够微信搜【脑子进煎鱼了】浏览,本文 GitHub github.com/eddycjy/blog 已收录,学习 Go 语言能够看 Go 学习地图和路线,欢送 Star 催更。

Go 图书系列

  • Go 语言入门系列:初探 Go 我的项目实战
  • Go 语言编程之旅:深刻用 Go 做我的项目
  • Go 语言设计哲学:理解 Go 的为什么和设计思考
  • Go 语言进阶之旅:进一步深刻 Go 源码

举荐浏览

  • goto 语句让 Go 代码变成意大利面条?
  • Go 只会 if err != nil?这是不对的,分享这些优雅的解决姿态给你!

正文完
 0