
Sign up to save your podcasts
Or


I talk about what I'd love to see coming to web development. While WebAssembly can be used as an alternative to JavaScript, I believe we're not looking into the real problems related to building web application.
It has been a rough last 4 months for me and I finally get a chance to restart publishing episodes.
In this episode I talk a bit about what I've seen so far as process / flow for deploing software in production. Going from the old days when I started as a junior software dev where we were pushing straight into prod to what I discovered at a big organization where putting something in production spread accross multiple days and involves a lot of people.
I'd like to hear how things are working for you, what is your process from bug fix/new feature to production. I'm genuinely curious after the experience I had seeing how thins can be tedious for this process.
This is the last episode of 2022. Those are my thoughts about how I think we should try to help more as user of open source project and librairies.
This episode content was inspired by the Gorilla Web Tool Kit archiving their Go projects.
On that note, I'll be back with more Go content on January, and will try to keep my 1 episode per two weeks plan for 2023.
Thank you!
Go's worker queue pattern:
type WorderPool struct {
queue chan int
}
func (wp *WorkerPool) start() {
for i := 0; i < 500; i++ {
go funcIO {
for id := range wp.queue {
doSomething(id)
}
}()
}
}
func (wp *WorkerPool) add(id int) {
wp.queue <- id
}
Best way to show support for the pod is by sharing it around and buying my course.
Let's talk about Go's concurrency. It's a powerful tool to have at your disposal but a hard one to master and use correctly.
If you want to support the pod the best way is to purchase my course (thanks).
At beginning I was deploying my Go servers to a DigitalOcean droplet. But for the last 3 years I'm enjoying Render, which listen to my git push and automatically deploy app for me in a blue-green deployment.
If you enjoy my podcast have a look at the following:
- Build SaaS apps in Go, my course on building web application in Go
- StaticBackend, an open-source Go backend server API
- @dominicstpierre on Twitter
I recently created an exportable Go package from StaticBackend, an open source backend API which was self-hosted.
I ended up using the internal package way to heavily and this design decision bite me when I decided to create an exportable package. Now all things that needed to be expose that was in the internal package had to be refactored into their own packages.
Links:
Usage of -ldflags:
go build -ldflags "-X main.varName=from_build" -o mycli
Inside your code:
var varName string
func main() {
fmt.Println(varName) // prints "from_build"
}
Here's what I'm using for StaticBackend -v flag:
go build -ldflags \
"-X github.com/staticbackendhq/core/config.BuildTime=$(shell date +'%Y-%m-%d.%H:%M:%S') \
-X github.com/staticbackendhq/core/config.CommitHash=$(shell git log --pretty=format:'%h' -n 1) \
-X github.com/staticbackendhq/core/config.Version=$(shell git describe --tags)" \
-o staticbackend
Links:
If you'd like to join the dev of StaticBackend a Firebase alternative I'm building in Go you're welcome, there's a discord if you'd want to chat. https://github.com/staticbackendhq/core
If you'd like to checkout my course called Build SaaS apps in Go or want to support this show, that's the best way.
If you're on Twitter make sure to follow me: https://twitter.com/dominicstpierre
sqlx: https://github.com/jmoiron/sqlx
sqlboiler: https://github.com/volatiletech/sqlboiler
If you're looking to learn how to build web API with Go, checkout my course on building SaaS in Go.
From the publisher's feed

16 Listeners