GopherCon 2017 观后感(2)
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:
- exe(static)
- exe(with libc)
- exe(with libc and non-Go code)
- pie
- c-archive
- c-shared
- shared
- 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在这方面对应的技术实现。