<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Architecture on crazyoptimist</title><link>https://crazyoptimist.net/categories/architecture/</link><description>Recent content in Architecture on crazyoptimist</description><generator>Hugo</generator><language>en</language><managingEditor>hey@crazyoptimist.net (crazyoptimist)</managingEditor><webMaster>hey@crazyoptimist.net (crazyoptimist)</webMaster><lastBuildDate>Thu, 09 Apr 2026 21:51:27 -0500</lastBuildDate><atom:link href="https://crazyoptimist.net/categories/architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>Reflections on Clean Architecture</title><link>https://crazyoptimist.net/post/2026/reflections-on-clean-architecture/</link><pubDate>Thu, 09 Apr 2026 21:51:27 -0500</pubDate><author>hey@crazyoptimist.net (crazyoptimist)</author><guid>https://crazyoptimist.net/post/2026/reflections-on-clean-architecture/</guid><description>&lt;p>Looking back at &lt;strong>Clean Architecture&lt;/strong> by Uncle Bob. Funny how these principles are starting to feel like brand-new concepts again. :)&lt;/p>
&lt;h3 id="uncle-bob">Uncle Bob&lt;/h3>
&lt;ul>
&lt;li>The goal of software architecture is to minimize the human resources required to build and maintain the required system.&lt;/li>
&lt;li>The only way to go fast, is to go well.&lt;/li>
&lt;li>Any organization that designs a system will produce a design whose structure is a copy of the organization&amp;rsquo;s communication structure. (Conway&amp;rsquo;s law)&lt;/li>
&lt;/ul>
&lt;h3 id="solid">SOLID&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>SRP: &lt;em>Each software module has one, and only one, reason to change. (This is NOT &amp;ldquo;A function should do one, and only one, thing, and do it well.&amp;rdquo;)&lt;/em> A module should be responsible to one, and only one, actor. (actor == user or stakeholder)&lt;/p></description></item></channel></rss>