Conceptual Overhead
- Similar to cyclomatic complexity 
- Python famously holds as a value “Explicit is better than implicit”. This is not something Rubyists (or many functional programmers) value, instead favoring compactness or “elegance” - More compact the code, or the use of language, library, and framework features (which are not well known) can exclude people from understanding or contributing 
 
- verbosity vs complexity 
- General coding concepts vs less popular coding concepts 
- More complex domain vs less complex domain - this will always be a sticking point, and hard to split apart 
- yes can look at parts of the domain (abstract them - methods, classes), but as a whole you need to combine the parts - but following the flow can be hard 
 
- Cannot remove it as it is part of the requirements 
- Thus having less complex code (syntax/language features/patterns etc) allows your brain to spend more time being able to comprehend the main complexity that the app exists for (the domain) 
 
- Reducing conceptual Overhead - Increases the number of people who can understand the system. This, then, increases the number of people who can make changes to the system 
 
- elegance, beauty, compactness (and any other subjective measure) can be the bane of simplicity - stop writing professional code with this in mind 
 
- Acid test: - When doing some work, need to decide if it is worth adding some pattern, principle, language feature, library, framework etc, if it - Makes the code readable, the allows you to focus on the domain 
- Makes it easy to add domain features 
- Makes it easy to change or fix bugs 
- Makes it easy to find 
 
 
Links
- https://naildrivin5.com/blog/2018/02/02/explicit-code-is-inclusive.html 
- https://naildrivin5.com/blog/2019/06/29/simple-expressions-only.html 
Last updated
Was this helpful?