In this post I argue that integration-vs-unit is a confused, and harmful, distinction. I provide a more useful two-dimensional mental model instead. The model is descriptive (it allows to think more clearly about any test), but I also include my personal prescriptions (the model shows metrics which are and aren't worth optimizing).| matklad.github.io
If you maintain an open-source project in the range of 10k-200k lines of code, I strongly encourage you to add an ARCHITECTURE document next to README and CONTRIBUTING. Before going into the details of why and how, I want to emphasize that this is not another docs are good, write more docs advice. I am pretty sloppy about documentation, and, e.g., I often use just simplify as a commit message. Nonetheless, I feel strongly about the issue, even to the point of pestering you :-)| matklad.github.io
This is going to be related to software engineering, pinky promise!| matklad.github.io
Rule of thumb: the size of build or CI configuration should be mostly independent of the project size. In other words, adding, say, a new test should not require adding a new line to the build file to build the test, and a new line to .yml to run it on CI.| matklad.github.io
I want to tell you about an idea that has had a huge influence on the way that I write software. And I mean that in the literal sense: it’s changed the way that I write software; it’s re-shaped my development workflow. The idea is this: you can write programs that modify themselves. And I don’t mean macros or metaprogramming or anything fancy like that. I mean that you can write programs that edit their own source code.| ianthehenry.com
Alternative titles: Unit Tests are a Scam Test Features, Not Code Data Driven Integrated Tests| matklad.github.io