Keep your experiments separate
- Dominant language
- JavaScript
- Stars
- 291
- Forks
- 25
- PR merge metrics
- No merged PRs in 30d
Description
Fellow **dwyler** Jessica Kerr @jessitron recently published this _excellent_ post [jessitron.com/2022/06/07/keep-your-experiments-separate/](https://jessitron.com/2022/06/07/keep-your-experiments-separate/ ) [**5 min read**] that _superbly_ summarises the _reason_ we have "_so many_" example, tutorial and demo apps **`@dwyl`** ...
The gist is: "_keep it simple, to focus on each new concept or experiment._"
# "_Keep your experiments separate_." ~ [Eric Evans](https://www.domainlanguage.com/)
> "_Eric forks the repository each time, and adds the new feature to the base game.
That way, the learning is not complicated by feature interaction._"
In other words each time Eric adds a feature to his game he isolates it as its' own experiment.
That way the _interaction_ of features can be tested one "variable" at a time instead of trying to observe
_Obviously_ there are always people on HackerNews who haven't quite understood the benefits of simplicity and the scientific method:
https://news.ycombinator.com/item?id=31702975 🙄 these are the same people who claim that [automated] "Testing is too hard".
The world is full of people who skipped learning about science and the [scientific method](https://en.wikipedia.org/wiki/Scientific_method).
***Why***? because it's more _difficult_ in the _short-term_ to adopt the more _rigorous_ approach.
## “_Any intelligent fool can make things bigger, more complex, and more violent.
It takes a touch of genius — and a lot of courage to move in the opposite direction_.”
~ [E.F. Schumacher](https://en.wikipedia.org/wiki/E._F._Schumacher)
By _isolating_ the individual element of a technology, tool, technique or feature we are trying to understand/experiment with we better understand what is going on and can _explain_ it to others.
We have _individual_ "**learn-_xyz_**" repositories for each element of our technology stack.
These are **_beginner_-focussed** ("your first hour with X tech") notes
When we build a module ourselves e.g: [**`elixir-auth-google`**](https://github.com/dwyl/elixir-auth-google), we create the corresponding ***demo*** App: [**dwyl/elixir-auth-google-_demo_**](https://github.com/dwyl/elixir-auth-google-demo)
Finally we _assemble_ the component elements into an **example** apps, e.g: [dwyl/**phoenix-chat-_example_**](https://github.com/dwyl/phoenix-chat-example)
I increasingly feel like I should just short-cut everything and do exactly/whatever Jessica ❤️ says and will save myself a heap of effort! 😜
## Todo
+ [ ] Write this up better and publish it.
Contributor guide
Assessment
This issue has not been assessed yet.