InfoQ■Python 切换到 Go的9 个理由,从( 三 )


缺点2:错误处理
Go通过简单地从函数中返回错误的形式来处理错误 。 尽管这种方案是可行的 , 但是它很容易失去错误的范围 , 从而很难向用户提供有价值的错误信息 。 错误包可以通过返回错误的上下文和错误堆栈来解决该问题 。
还有一个问题 , 那就是它很容易忘记去处理错误 。 尽管诸如errcheck和megacheck之类的静态分析工具可以避免这些错误 , 但这始终并不完善 。 也许我们应该期待一种语言级别的错误处理方案 。
缺点3:包管理
Go的包管理并不完善 。 默认情况下 , 它无法指定依赖项的特定版本 , 也无法创建可重用的构建方案 。 Python、Node和Ruby都有更好的包管理系统 。 但是 , 如果能使用正确的工具 , Go的包管理也可以变得更简单 。
我们可以使用Dep来管理指定固定版本的依赖项 。 此外 , 我们还提供了一个名为VirtualGo的开源工具 , 用于多项目管理 。
PythonvsGo
我们做了一个有趣的实验 , 用Go重写了原来由Python编写的feed流 。 请看一下该排序方法的示例:
{"functions":{"simple_gauss":{"base":"decay_gauss","scale":"5d","offset":"1d","decay":"0.3


推荐阅读