用Go语言之前,先看看它的利与弊吧( 二 )


社区沟通很难
Go 社区可能不会接受建议 。在 golint 的 GitHub 存储库中考虑这个问题:https://github.com/golang/lint/issues/65 ,有用户请求 golint 在发现警告时,能够使构建失败(这就是我们在项目中所做的事情) 。维护者立即否定了这一想法 。但是,由于有太多的人就这个问题发表了评论,一年后,维护者最终不得不增加了所请求的特性 。
Go 社区似乎也不喜欢 Web 框架 。虽然 Go 语言的 HTTP 库涵盖了很多方面,但它并不支持路径参数、输入检查和验证,也不支持 Web 应用程序中常见的横切关注点 。Ruby 开发人员有 Rails,Java 开发人员有 Spring MVC,Python 开发者有 Django 。但许多 Go 开发人员选择了避免使用框架 。然而现实是,并非没有框架,恰恰相反有很多 。但是,一旦你开始将某个框架用于某个项目,要想避免被遗弃的命运几乎是不可能的 。
分裂的依赖关系管理
很长一段时间以来,Go 语言没有一个稳定的、正式的包管理器 。经过多年的社区乞求,Go 项目最近才发布 godep 。在此之前,已经有许多工具填补了这个空白 。我们在项目中使用了非常强大的 govendor,但这意味着社区是分裂的,对刚接触 Go 语言的开发人员来说,这可能是非常令人困惑的 。此外,几乎所有的包管理器都由 Git 存储库提供支持,Git 存储库的历史可能随时会发生更改 。将其与 Maven Central 相比,后者永远不会删除或更改项目所依赖的库 。

用Go语言之前,先看看它的利与弊吧

文章插图
 

【用Go语言之前,先看看它的利与弊吧】


推荐阅读