💾 Archived View for gmi.si3t.ch › sm4llth1ng › 2021-02-24.gmi captured on 2023-06-14 at 14:10:49. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-01-08)
-=-=-=-=-=-=-
It's refreshing to build a new piece of software using as few
dependencies as possible. And to see where it will lead us.
For a new project, I chose Golang to change from my day to day python
programming, as well as to be able to deploy a single static self
contained executable. In addition, the ambition is to use vanilla Go,
talk directly SQL w/o an ORM, and talk http w/ only Go http library.
Using pair programming and test driven development, Go provides enough
testing support for our needs. Go is fast for compiling and running
tests. Part of this speed is achieved by caching everything that is not
changed bettween two runs.
During a session, we tried to run several time our tests without flushing
the database, removing a transaction begin/rollback in our tests. And we
sratched our head for a loooong time not understanding why the number of
rows was not increasing in the database, and the value of the first uuid
was not changing between runs...
It took us time to remember that when the source code of the test is not
modified, the test is not ran again. Only its result is displayed... as
the result is cached to only run the parts of the test suite that has
changed.
Bitten by the cache...
Our makefile has been updated to tell test runner not to use the cache,
it is currently fast enough to run every tests on each run.
test: @go test -count=1 ./...
It is great to learn / be reminded every day. :)