dotGo 2019
who it's for
Go developers, backend engineers, systems programmers, performance engineers, compiler engineers, DevOps engineers
topics
hexagonal architecture for Go; Go 2 error values and wrapping; constant expressions for machine word size; RISC-V platform support for Go; Go as a Linux scripting language; benchmarking and allocation optimization; TensorFlow bindings for Go; reflect and unsafe usage patterns; generating x86 assembly with Go; Go WebAssembly (wasm) target; runtime memory tuning with GOGC
| title | author | length |
|---|---|---|
| Achieving maintainability with hexagonal architecture | Kat Zień | 18m |
Claim: hexagonal architecture makes Go apps maintainable, testable and easy to change. It uses dependency injection and interfaces so the domain defines ports… | ||
| Go For Phallic Object Generation | Ellen Körbes | 17m |
Claims a working pipeline that generates 3D printable dilators from code using Go: SDF primitives and Bezier profiles compose shapes, go-gl renders previews… | ||
| Go 2 error values today | Marcel van Lohuizen | 17m |
Proposal entering Go 1.13 adds concrete APIs and an implementation in the source tree: errors.Is walks wrapped errors and matches sentinel or dynamic… | ||
| Constant Time | Dave Cheney | 17m |
Explains concrete tricks: constant expressions compute machine word size at compile time, shows how to make standard file descriptor values truly immutable by… | ||
| A dive into RISC-V | Jessica Frazelle | 17m |
Overview of what RISC-V actually does and what was built: RISC-V defines an open instruction set with a minimal base plus extensions that vendors can add… | ||
| Go as a scripting language in Linux | Ignat Korchagin | 15m |
Claim: Go can be a practical scripting language if specific problems are solved — go run refuses a shebang so exit codes and kernel-level execution break… | ||
| Optimizing Go code without a blindfold | Daniel Martí | 14m |
A collection of concrete lessons and numbers: a naive slice copy reduces from 10 allocations to one and becomes 70% faster when preallocated; a JSON decode… | ||
| TensorFlow and Go | Natalie Pistunovich | 04m |
Shows that TensorFlow’s Go API actually runs real models: uses stable 1.13 and 2.0 Alpha, can target CPUs, GPUs and TPUs, and supports training and serving… | ||
| Shattered Mirror: An Introduction to Reflect and Unsafe | James Bowes | 18m |
A custom state machine executor is built that wires step functions together with runtime dependency injection using reflect.MakeFunc and inspection of function… | ||
| Better x86 Assembly Generation with Go | Michael McLoughlin | 17m |
Claim: generating Go assembly with a Go program makes libs smaller, safer, and reviewable. Uses AO to emit plan-like assembly, with a built-in register… | ||
| Get Going With WebAssembly | Johan Brandhorst | 18m |
Go’s wasm target compiles real Go code for the browser using GOOS=js GOARCH=wasm and wasm_exec.js, and demos show working examples: hello world, DOM… | ||
| Go Tune Your Memory | Bryan Boreham | 19m |
Go exposes one tunable: the GOGC environment variable that sets allowed heap growth relative to the last GC and defaults to GOGC=100. Setting GOGC=50 forces GC… | ||
| Multi-Module Repositories | Jean de Klerk | 15m |
Shows that Go’s MVS uses the max rule of MVS (choose the highest major/minor) and that carving multiple go.mod files from one repo creates an ambiguous import… | ||
| Semaphores | Valentin Deleplace | 04m |
Shows two Go semaphore designs built on buffered channels: a token pool preloaded with N tokens that goroutines take, and a zeroed channel where goroutines… | ||
| A day at | 01m | |
Filmed at dotGo 2019 in Paris, this short slot reads like a lightning demo: a blazing hitter shared among 14 other speakers that makes a concrete claim about… | ||
| The monsters inside the sync.Locker | Roberto Clapis | 04m |
Explains that a Go mutex implements both read and write memory barriers by using atomic compare-and-swap and atomic add in the hot path, so locking guarantees… | ||
| ONNX-Go, neural networks made easy | Olivier Wulveryck | 05m |
A Go package that reads and executes ONNX models and exposes them as regular Go values, relying on an execution backend (cornea is used as the working… | ||
| Joan López de la Franca Beltran - Dockerization of Go | 04m | |
Nowadays, containers are one of the most popular paradigms to run software applications in all kind of environments (development, testing, production, etc)… | ||
| nothing matches | ||