GopherConf 2017于7月13日到15日在美国丹佛举行,我在youtube上看了一些视频,本文是一些视频的观后感。

Ian Schenck - Operability in Go

https://www.youtube.com/watch?v=SIl3wi1iWPE

介绍使用 stuct log(github.com/Sirupsen/logrus)和 expvar库来增强互操作性,其实和互操作性没什么关系,就是讲增强导出log的可读性,并且通过expvar来暴露程序运行时的内部状态。不推荐看。

Jon Bodner - Runtime Generated, Typesafe, and Declarative: Pick Any Three

https://www.youtube.com/watch?v=hz6d7rzqJ6Q

介绍了https://github.com/jonbodner/proteus 项目。这个项目通过使用sturct tag, function generation, reflect和template来实现了一个DAO层。这个DAO层可以用来实现把一种DSL转换成对存储系统的访问。演讲中描述了如何使用这个方法来实现SQL的访问。另外,大家都认为大量使用reflect会很慢,但是作者还现场跑了benchmark,说明对于存储访问这种重IO的操作,reflect带来的影响可以接受,速度是足够快的。

David Crawshaw - Go Build Modes

https://www.youtube.com/watch?v=x-LhC-J2Vbk

介绍了go的8种build mode:

  1. exe(static)
  2. exe(with libc)
  3. exe(with libc and non-Go code)
  4. pie
  5. c-archive
  6. c-shared
  7. shared
  8. plugin 最后介绍了go plugin的一种应用场景。Plugin的模式正在被慢慢改进,不过短期内还不会进入生产ready。

Edward Muller - Go Anti-Patterns

https://www.youtube.com/watch?v=ltqV6pDKZD8

介绍了go的一些反模式,也就是非常规编码模式。不过,这种事情见仁见智,可以参考,不一定全部接受。

Mitchell Hashimoto - Advanced Testing with Go

https://www.youtube.com/watch?v=8hQG7QlcLBk

讲了golang单元测试的一些基本需求以及HashiCorp在这方面对应的技术实现。


知识共享许可协议本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。