What Can a Java Developer Learn from Golang?
summary
Golang promotes explicit simplicity: code is formatted with gofmt, built with go build and linted with go vet, and concurrency uses goroutines plus atomic integers for correct visibility. A concrete movie‑rental service is wired by constructor injection with tiny consumer‑side interfaces, tested with in‑memory replacements (10,000 repeated unit runs finish in 38 ms), eliminating heavy mocks. Java alternatives shown include Spotless for enforced formatting and ArcUnit to prevent import cycles, and Go’s errors‑as‑values model replaces unchecked exceptions.
AI-written summary · about
chapters (9)
- 0:00Introduction to Go and Java
- 1:17Golang simplicity and syntax
- 5:17Reducing bikeshedding
- 10:18Pragmatism and memory models
- 15:59Interface design and DI
- 23:43Testing without mocks
- 34:33Hexagonal architecture
- 36:03Managing dependency cycles
- 41:32Errors as values








