Crit Russell

February 26, 2018

Application Specific Error Handling

Go’s standard error is extremely simple to use which is a feature I like. It lets you add context by implementing its interface only when your application needs to. This can make cross boundary design simple and flexible. An API/RPC web service might be a good illustration. Some assumptions about this example are that your clients are mostly HTTP and care about the HTTP Status Code returned from the server. Also, that you are trying to separate your business logic from your web logic. ... Read more

January 20, 2018

Go and MySQL

I’ve been using Gorm for a while and wanted to see what it would look like to use the standard database/sql package instead. My main concern was development time since Gorm makes it simple to create the structures needed for simple queries. Basically a lot less typing. My exploration yielded a pattern that I’ve enjoyed so far. Also, my (not yet very thorough) benchmarks indicate that removing Gorm’s heavy reflection from the program yielded better application performance for large queries. ... Read more

January 19, 2018

Go Tests and Databases

I had a talk with a friend about unit and integration testing today. They were pointing out that their “tests basically generate 200mb of ‘helloworld’ bytes and write them to a temp file that gets cleaned up after the test.” That reminded me of a pattern that I’ve been using for my new startup to cleanup database rows after integration testing. It’s a really simple thing that is paying off in local (to my laptop) record management. ... Read more

© Crit Russell