# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hanfak.gitbook.io/workspace/general-paradigms/principles/conceptual-overhead.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
