Urs Enzler 🐉<p>1) Understand the domain<br>2) Domain modelling (<a href="https://tooting.ch/tags/ModelInCode" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ModelInCode</span></a>)<br>3) Let a test drive us (<a href="https://tooting.ch/tags/TDD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TDD</span></a>)<br>4) Implement the controller<br>5) Drive the core implementation by a test (TDD again)<br>6) Extend the business logic facade (<a href="https://tooting.ch/tags/HexagonalArchitecture" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HexagonalArchitecture</span></a>)<br>7) Implement the command<br>8) Implement the event projection (<a href="https://tooting.ch/tags/EventSourcing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>EventSourcing</span></a>)<br>9) Implement the database access (<a href="https://tooting.ch/tags/OnionArchitecture" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OnionArchitecture</span></a>)<br>10) Release it (<a href="https://tooting.ch/tags/CI_CD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CI_CD</span></a>)<br>11) See your changes at work (<a href="https://tooting.ch/tags/REPL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>REPL</span></a> <a href="https://tooting.ch/tags/FSI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FSI</span></a>)</p><p>With code samples in <a href="https://tooting.ch/tags/dotnet" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>dotnet</span></a></p>