<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Architecture on Thomas Cothran</title><link>https://thomascothran.tech/tags/architecture/</link><description>Recent content in Architecture on Thomas Cothran</description><generator>Hugo</generator><language>en</language><copyright>2023, Thomas Cothran</copyright><lastBuildDate>Wed, 27 Nov 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://thomascothran.tech/tags/architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>What do I want from a codebase?</title><link>https://thomascothran.tech/2024/11/what-do-i-want-from-a-codebase/</link><pubDate>Wed, 27 Nov 2024 00:00:00 +0000</pubDate><guid>https://thomascothran.tech/2024/11/what-do-i-want-from-a-codebase/</guid><description>&lt;p&gt;Carson Gross&amp;rsquo; &lt;a href="https://htmx.org/essays/codin-dirty/"&gt;&amp;ldquo;Codin&amp;rsquo; Dirty&amp;rdquo;&lt;/a&gt; essay is designed to provoke controversy. Although I will critique the essay, I want to make it clear that I am (on this Thanksgiving eve) grateful for Carson Gross&amp;rsquo;s work.&lt;/p&gt;
&lt;p&gt;Gross writes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I’m &amp;hellip; not trying to convince you to code dirty with this essay. Rather, I want to show that it is possible to write reasonably successful software this way and, I hope, offer some balance around software methodology discussions.&lt;/p&gt;</description></item><item><title>Top-Down Imperative Clojure Architectures</title><link>https://thomascothran.tech/2024/07/top-down-imperative-clojure-architectures/</link><pubDate>Mon, 22 Jul 2024 00:00:00 +0000</pubDate><guid>https://thomascothran.tech/2024/07/top-down-imperative-clojure-architectures/</guid><description>&lt;p&gt;When I first became interested in functional programming, a more experienced engineer told me: &amp;ldquo;you know functional programming doesn&amp;rsquo;t really amount to much more than procedural programming.&amp;rdquo; As I insisted on the benefits of &lt;code&gt;map&lt;/code&gt;, &lt;code&gt;filter&lt;/code&gt; and &lt;code&gt;reduce&lt;/code&gt;, he simply shook his head. &amp;ldquo;You&amp;rsquo;re thinking in the small. Go look at a large real-world application.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;It took some time for me to see what he meant. My preferred language, Clojure, is a functional language. But too often it is used to build top-down, imperative applications. This negates the value proposition of functional programming: isolating side effects, local reasoning, and system composition.&lt;/p&gt;</description></item><item><title>Brittle Clojure: Creating Legacy Clojure Systems</title><link>https://thomascothran.tech/2023/07/brittle-clojure/</link><pubDate>Sun, 23 Jul 2023 00:00:00 +0000</pubDate><guid>https://thomascothran.tech/2023/07/brittle-clojure/</guid><description>Avoid writing brittle Clojure with tactics for flexibility and robustness.</description></item></channel></rss>