大家好,我是煎鱼。
作为一个 Go 语言开发工程师,总是在入门、深入、撕提案时能够听到各种带有 Go 特色的话语,例如:少即是多(less is more),非常有趣。
今天带来了 Go 语言之父 Rob Pike 在 2015 年分享的主题《Go Proverbs》,他在该主题中讲了的 10+ 条 Go 谚语,希望大家可以用上。
核心理念是:简单、诗意、简洁(Simple, Poetic, Pithy)。
谚语
- 不要通过共享内存来通信,通过通信来共享内存(Don't communicate by sharing memory, share memory by communicating)。
- 并发不是并行(Concurrency is not parallelism)。
- 通道是协调的,互斥是串行的(Channels orchestrate; mutexes serialize)。
- 接口越大,抽象性越弱(The bigger the interface, the weaker the abstraction)。
- 让零值变得有用(Make the zero value useful)。
- interface{} 什么也没说(interface{} says nothing)。
- Gofmt 的风格没有人喜欢,但 Gofmt 却是大家的最爱(Gofmt's style is no one's favorite, yet gofmt is everyone's favorite)。
- 复制一点总比依赖一点好(A little copying is better than a little dependency)。
- Syscall 必须始终用 build 标签来保护(Syscall must always be guarded with build tags)。
- Cgo 必须始终用构建标签来保护(Cgo must always be guarded with build tags)。
- Cgo 不是 Go(Cgo is not Go)。
- 使用 unsafe 包没有任何保证(With the unsafe package there are no guarantees)。
- 清晰的比聪明的好(Clear is better than clever)。
- 反射从来不是清晰的(Reflection is never clear)。
- 错误就是价值(Errors are values)。
- 不要只是检查错误,要优雅地处理它们(Don't just check errors, handle them gracefully)。
- 设计架构,命名组件,记录细节(Design the architecture, name the components, document the details)。
- 文档是为用户准备的(Documentation is for users)。
- 不要使用恐慌(Don't panic)。
总结
Rob Pike 在演讲中所涉及到的这 18 条谚语,是他常年在计算机软件领域开发和设计 Go 时所积累下来的经验。
希望今天这篇文章能够对你有所帮助:)
文章持续更新,可以微信搜【脑子进煎鱼了】阅读,本文 GitHub github.com/eddycjy/blog 已收录,学习 Go 语言可以看 Go 学习地图和路线,欢迎 Star 催更。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。