专题演讲嘉宾:David Cheney

Heptio 资深工程师, 著名Go语言专家

David是Heptio的资深工程师。Heptio位于西雅图,致力于帮助开发者高效使用Kubernetes。

David是开源贡献者,Go编程语言项目组成员。他经常在技术社区演讲,分享软件设计、性能和Go语言相关主题。

在加入Heptio之前,他曾在Atlassian、Canonical和澳大利亚政府任职,从事云基础设施相关的开发和运维工作。

专题演讲嘉宾:David Cheney

Heptio 资深工程师, 著名Go语言专家

David是Heptio的资深工程师。Heptio位于西雅图,致力于帮助开发者高效使用Kubernetes。

David是开源贡献者,Go编程语言项目组成员。他经常在技术社区演讲,分享软件设计、性能和Go语言相关主题。

在加入Heptio之前,他曾在Atlassian、Canonical和澳大利亚政府任职,从事云基础设施相关的开发和运维工作。

by David Cheney

Heptio
资深工程师, 著名Go语言专家

Go is a language designed for engineering teams. It's central themes are simplicity, readability, and maintainability. This talk will provide best practice real world advice for teams building projects in Go covering five areas; idiomatic code, package and api design, error handling, concurrency, and testing. 

内容大纲

Identifiers

  1. Choose identifiers for clarity, not brevity
  2. Use a consistent declaraton style

Package Design

  1. A good package starts with its name An identifier’s name includes its package name Prefer lower case package names and import paths
  2. Rather than nesting deeply, return early
  3. Make the zero value useful
  4. Eschew package level state. No package level variables. Avoid global side effects.

Project Structure

  1. Consider fewer, larger packages Arrange code into files by import statements. Prefer nouns for file names. Eschew elaborate package hierarchies, resist the desire to apply taxonomy
  2. Keep package main small as small as possible

API Design

  1. Design APIs that are hard to misuse. Design APIs for their default use case.
  2. Prefer var args to []T parameters
  3. Let callers define the interface they require
  4. Prefer streaming interfaces
  5. Use type assertions for optional behaviour

Error handling

  1. Elminate handling by eliminating errors
  2. Only handle an error once

Concurrency

  1. Never start a goroutine without when it will stop. When sending or receiving on a channel, consider what happens if the other party never receives the message
  2. Keep yourself busy while waiting for a goroutine. or, do the work yourself.
  3. Leave concurrency to the caller

 

 

 

 

 

by David Cheney

Heptio
资深工程师, 著名Go语言专家

Go is a language designed for engineering teams. It's central themes are simplicity, readability, and maintainability. This talk will provide best practice real world advice for teams building projects in Go covering five areas; idiomatic code, package and api design, error handling, concurrency, and testing. 

交通指南

© 2019 Baidu - GS(2018)5572号 - 甲测资字1100930 - 京ICP证030173号 - Data © 长地万方
想要批量报名或更多优惠?
立即联系票务小姐姐 Ring
或致电:17310043226