go-mockgen-tool
whatgotdone
Our great sponsors
go-mockgen-tool | whatgotdone | |
---|---|---|
1 | 5 | |
0 | 138 | |
- | - | |
0.0 | 7.7 | |
about 2 years ago | 9 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
go-mockgen-tool
-
Back to basics: Writing an application using Go and PostgreSQL
For testing I wrote https://github.com/jamesrr39/go-mockgen-tool to generate mock implementations of a given interface. It's a different approach from the normal reflect and interface{}... heavy libraries. Might be interesting!
whatgotdone
- What Got Done
- How to monetize an open-source project?
- Any free database for new saas
-
Keep a Knowledge Log
I wrote a tool specifically for this, mostly inspired by the Snippets tool at Google. I've been publishing my weekly log in it every week for almost three years:
https://whatgotdone.com/michael/2021-12-03
The code is all open source if you're interested in playing around with it:
https://github.com/mtlynch/whatgotdone
-
Back to basics: Writing an application using Go and PostgreSQL
I had the same objection to SQLite, and then I heard about Litestream, and it won me over.[0]
Litestream watches your SQLite database and then streams changes to a cloud storage provider (e.g., S3, Backblaze). You get the performance and simplicity of writing SQLite to the local filesystem, but it's syncing to the cloud. And the cool part is that you don't have to change any of your application code to do it - as far as your app is concerned, it's writing to a local SQLite file.
I wrote a little log uploading utility for my business that uses Litestream, and it's been fantastic.[1] It essentially carries around its data with it, so I can deploy my app to Heroku, blow away the instance and then launch it on fly.io, and it pops up with the exact same data.[2]
I'm currently in the process of rewriting an open-source AppEngine app to use SQLite + Litestream instead of Google Firestore.[2] It's such a relief to get away from all the complexity of GCP and Firestore and get back to simple SQLite.
[0] https://litestream.io/
[1] https://mtlynch.io/litestream/
[2] https://asciinema.org/a/I2HcYheYayeh7aHj23QSY9Vyf/embed?size...
[3] https://github.com/mtlynch/whatgotdone/pull/639
What are some alternatives?
sqlc - Generate type-safe code from SQL
pgxtutorial - Example of how to build a web service using Go, PostgreSQL, and gRPC
dockertest - Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work.
impl - impl generates method stubs for implementing an interface.
litestream - Streaming replication for SQLite.
sqlx - 🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.
go - The Go programming language
pgx - PostgreSQL driver and toolkit for Go
faunadb-js - Javascript driver for FaunaDB v4