有什么 Go 语言特性是资深的程序员常用,而新手很少使用的呢?
依照我的经验来看,这通常是反着的。经验丰富的 Go 程序员的代码往往非常简洁。线性,模块化,并使用简单的结构体和数据类型完成构建。他们使用其他功能,也仅在非常需要时才使用并且也仅仅的触之即可的轻度应用.
经验不足的程序员可能尝试某个功能,而不重新考虑其代码的结构。例如:
- 在执行协程和并发操作还不够昂贵时无法证明开销 / 成本是合理的
- 在同一路径中将 channels, atomics, waitgourps 和各种锁混合在一起,而不是进行重组以同一和最小化同步
- 绝对的将所有内容都设置为可模拟的接口,或以防以后需要复用
- 由于假设传递指针意味着 "快速", 因此将所有内容都传递为引用 / 指针
- 当不必要时将多种数据类型插入 [] interface {} 或 map [string] interface {}, 然后在需要时封疯狂切换并检查所有位置来获取和使用数据
不要理解错我的意思,那些功能很好。但是学习何时使用它们是 程序员 /gopher 们旅程的一部分。当然并非总是如此,根据我的经验,人们的品味似乎越来越趋于简洁.
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: