Resetting the database between tests by truncating every table costs a statement per table per test, which on forty tables and four hundred tests is sixteen thousand statements.…
Deploying by pulling into the live directory means the site is briefly running half of one release and half of another, and rolling back means pulling again and…
Beanstalkd models a job’s lifecycle explicitly, and the three verbs are the whole API worth knowing. A reserved job returns to the ready queue automatically when its time-to-run…
Installing without dev dependencies and then generating an optimised autoloader in two steps is the ordinary deploy sequence, and doing it in the wrong order produces a class…
A common table expression reads like a named intermediate result, and in MySQL 8.0 it may be merged into the outer query or materialised into a temporary table…
The front-controller pattern gets written as a rewrite with a regular expression roughly as often as it gets written correctly, and try_files expresses the same intent as a…
EXPLAIN shows the plan the optimiser chose and its estimates, and the estimates are frequently wrong — a query planned for 40 rows that reads 400,000 looks fine…
Every build begins by sending the build context to the daemon, and without a .dockerignore that context is the whole directory — including node_modules, the .git history and…
The argument about whether an Order has a delivery address or a billing address is usually two contexts insisting on one word, and the resolution is that they…
The naming decides the coupling. ReserveInventory names a recipient and expects an outcome; OrderPlaced names neither, so a second consumer can be added without touching the publisher. Past…