长演讲小专题

会议室:百宴厅2
出品人:臧秀涛

45分钟分享不过瘾?我们特设了两个长演讲,给讲师充足的时间把内容讲清楚,也让参会... 展开 >

专题出品人:臧秀涛

InfoQ QCon大会主编

臧秀涛,现就职于InfoQ,任QCon大会主编,负责QCon大会的策划和组织。2010年毕业于中国科学院计算技术研究所。曾先后在完美世界等公司从事软件开发工作。2014年加入InfoQ。业余喜爱读书和翻译,曾翻译出版过《C++ API设计》、《Groovy程序设计》和《Java性能权威指南》等技术图书。业余也维护了一个微信公众号“开发资讯(dev-news)”,欢迎关注。

对QCon大会有任何建议或想法,欢迎通过微博 @臧秀涛 与我联系。

地点:百宴厅2

专题:长演讲小专题

45分钟分享不过瘾?我们特设了两个长演讲,给讲师充足的时间把内容讲清楚,也让参会者充分交流。Go专家Dave Cheney分享《Practical Go》,Kafka专家王国璋分享《Kafka设计过程中踩过的坑》。

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. 

by 王国璋

Confluent
Kafka Streams系统架构师和技术负责人

自从 2011年被捐献给Apache基金会到现在,Kafka项目已经走过了七个年头。从最早的“分布式消息系统”,到现在集成了分发、存储和计算的“流式数据平台”,Kafka经历了哪些挑战?又经过了什么样的演进变化?Kafka 社区踩过哪些“坑”?本次演讲将为你一一道来。

主要内容 & 听众收益

a. 从硬件的发展趋势,展现 Kafka 架构的演进过程。

b. 从Kafka开发和维护经验,分享分布式系统工程实践的通理。

c. 开源数据系统的开发经验,如何维护和发展一个开源社区。

by 王国璋

Confluent
Kafka Streams系统架构师和技术负责人

自从 2011年被捐献给Apache基金会到现在,Kafka项目已经走过了七个年头。从最早的“分布式消息系统”,到现在集成了分发、存储和计算的“流式数据平台”,Kafka经历了哪些挑战?又经过了什么样的演进变化?Kafka 社区踩过哪些“坑”?本次演讲将为你一一道来。

主要内容 & 听众收益

a. 从硬件的发展趋势,展现 Kafka 架构的演进过程。

b. 从Kafka开发和维护经验,分享分布式系统工程实践的通理。

c. 开源数据系统的开发经验,如何维护和发展一个开源社区。

交通指南

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