At Atomic, we often create a lot of value for our customers by combining our high-quality custom software with open-source, third-party software libraries. This saves money that would otherwise need to be spent reimplementing core functionality, and it provides the quality that comes with the feedback loop only widely-used software can generate.
Aggregate \Ag”gre*gate\ n. – a mass, assemblage, or sum of particulars; as, a house is an aggregate of stone, brick, timber, etc.
When we first learn a new thing, it’s the particulars that stand out to us. A pre-toddler learning to walk must focus on each and every step. But as we grow, the particulars fade into higher-level ideas and skills. As adults, we rarely think about individual steps; instead, we simply go for a walk.
The same pattern is found in professional fields, such as science. The particulars of orbits and falling things gave way to the aggregate idea of gravity. When scientists first discovered electrons, they imagined them as single, planet-like points orbiting an atomic nucleus. Since then, scientists have given up the idea of point-like electrons, replacing it with the aggregate concept of an electron probability cloud.
Documentation is hard. Like writing code, it is a delicate balancing act of packing information into a format that is both very dense and very readable. Going too far in either direction severely limits its usefulness.
The broken windows theory from criminology applies to source code: If a code base has a bunch of inconsistencies and quality problems, we will take that as the norm and continue the pattern. Here are four things you can do to avoid broken windows in your code, and set a norm of quality and craftsmanship.
Development is generally neatly lumped in as an engineering discipline or as a science, if the title on my diploma is anything to go by. And at its core, it is inherently tied to boolean logic. There’s a satisfying objectivity to developing software, the same way there is to solving an equation—programs either run, and do whatever they’re supposed to do—or they fail.
Years of using the testing framework RSpec has spoiled me. Because you can pass a filename and line number to the RSpec command and it will run only that test, it’s trivial to set up a Vim key binding that runs the test under the cursor. For example,
In recent years I’ve come to deeply appreciate the phrase “don’t make me think.” I will forget how to perform a setup step approximately 7 seconds after I do it, let alone 3 years after I’ve done it (and I know I’m not alone!).