<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 李超</title>
    <description>The latest articles on DEV Community by 李超 (@_fb03c8591aebbe8ce66954).</description>
    <link>https://dev.to/_fb03c8591aebbe8ce66954</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3668386%2F2849418b-b598-48e8-a47e-9cbf3196723b.png</url>
      <title>DEV Community: 李超</title>
      <link>https://dev.to/_fb03c8591aebbe8ce66954</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_fb03c8591aebbe8ce66954"/>
    <language>en</language>
    <item>
      <title>Human-Oriented Architecture (HOA)</title>
      <dc:creator>李超</dc:creator>
      <pubDate>Thu, 18 Dec 2025 07:30:50 +0000</pubDate>
      <link>https://dev.to/_fb03c8591aebbe8ce66954/human-oriented-architecture-hoa-3abb</link>
      <guid>https://dev.to/_fb03c8591aebbe8ce66954/human-oriented-architecture-hoa-3abb</guid>
      <description>&lt;p&gt;If Software Systems Were Human: Thinking About Human-Oriented Architecture (HOA)&lt;/p&gt;

&lt;p&gt;Most systems don’t collapse because they’re “badly written” —&lt;br&gt;
they slowly turn into something nobody dares to touch.&lt;/p&gt;

&lt;p&gt;If you’ve ever maintained a system that’s more than three years old, this feeling is probably familiar:&lt;/p&gt;

&lt;p&gt;The features still work&lt;/p&gt;

&lt;p&gt;Bugs can still be fixed&lt;/p&gt;

&lt;p&gt;But touching the core logic makes everyone nervous&lt;/p&gt;

&lt;p&gt;We’ve tried layered architecture, Clean Architecture, and DDD — yet the same problems keep resurfacing.&lt;/p&gt;

&lt;p&gt;So I started asking a different question:&lt;/p&gt;

&lt;p&gt;Why don’t our software systems behave like living organisms?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The problem isn’t technology — it’s how we understand systems&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most traditional architectures are designed from a technical perspective:&lt;/p&gt;

&lt;p&gt;Controller / Service / Repository&lt;/p&gt;

&lt;p&gt;UI / Domain / Infrastructure&lt;/p&gt;

&lt;p&gt;They look elegant at the beginning. But over time:&lt;/p&gt;

&lt;p&gt;Controllers become “god objects”&lt;/p&gt;

&lt;p&gt;Services accumulate business logic&lt;/p&gt;

&lt;p&gt;State leaks everywhere&lt;/p&gt;

&lt;p&gt;Boundaries slowly disappear&lt;/p&gt;

&lt;p&gt;The root cause isn’t that these architectures are wrong.&lt;/p&gt;

&lt;p&gt;It’s that:&lt;/p&gt;

&lt;p&gt;They don’t align well with human intuition.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A counterintuitive but natural idea: treat the system as a human&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The human body is one of the most successful complex systems we know:&lt;/p&gt;

&lt;p&gt;Clear structure&lt;/p&gt;

&lt;p&gt;Well-defined responsibilities&lt;/p&gt;

&lt;p&gt;Built-in error handling&lt;/p&gt;

&lt;p&gt;Long-term evolution&lt;/p&gt;

&lt;p&gt;So what if:&lt;/p&gt;

&lt;p&gt;Instead of starting from layers, we treated a software system as a human being?&lt;/p&gt;

&lt;p&gt;This idea is the foundation of&lt;br&gt;
Human-Oriented Architecture (HOA).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;System as a human, modules as organs&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In HOA:&lt;/p&gt;

&lt;p&gt;A software system is a complete human being.&lt;/p&gt;

&lt;p&gt;This “person” is closed and protected — the outside world cannot arbitrarily access internal organs.&lt;/p&gt;

&lt;p&gt;Mapping organs to architectural roles&lt;br&gt;
Human Organ Architectural Role  Responsibility&lt;br&gt;
Skin    UI / Presentation   User interaction &amp;amp; feedback&lt;br&gt;
Bones   Structural skeleton Stability and structural constraints&lt;br&gt;
Mouth   Interface layer Input reception &amp;amp; protocol translation&lt;br&gt;
Hands   Use-case layer  Expressing user intent &amp;amp; orchestration&lt;br&gt;
Stomach Business core   Business rules &amp;amp; computation&lt;br&gt;
Brain   State &amp;amp; decision center Global state &amp;amp; complex decisions&lt;br&gt;
Hypothalamus    Coordination center Flow control &amp;amp; command dispatch&lt;br&gt;
Kidneys Error handling system   Exception filtering &amp;amp; recovery&lt;br&gt;
Blood vessels   Data channels   Data and event flow&lt;/p&gt;

&lt;p&gt;This is not a playful metaphor —&lt;br&gt;
it is a strict responsibility model.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How a user action flows through the “human system”&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Take a typical user operation:&lt;/p&gt;

&lt;p&gt;The user interacts through the skin (UI)&lt;/p&gt;

&lt;p&gt;Input enters via the mouth (interface)&lt;/p&gt;

&lt;p&gt;The hands (use cases) interpret user intent&lt;/p&gt;

&lt;p&gt;The hypothalamus coordinates the process&lt;/p&gt;

&lt;p&gt;The stomach (business core) applies business rules&lt;/p&gt;

&lt;p&gt;The brain updates state and makes decisions&lt;/p&gt;

&lt;p&gt;The kidneys handle errors and anomalies&lt;/p&gt;

&lt;p&gt;Data flows back through the blood vessels&lt;/p&gt;

&lt;p&gt;The skin presents the final result&lt;/p&gt;

&lt;p&gt;Each step is explicit, traceable — and cannot overstep its authority.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Why this model resists architectural decay&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;HOA naturally prevents common anti-patterns:&lt;/p&gt;

&lt;p&gt;❌ Controllers containing business logic&lt;br&gt;
(mouths don’t think)&lt;/p&gt;

&lt;p&gt;❌ Services becoming god objects&lt;br&gt;
(stomachs don’t command the body)&lt;/p&gt;

&lt;p&gt;❌ Global try-catch blocks&lt;br&gt;
(errors have kidneys)&lt;/p&gt;

&lt;p&gt;❌ State scattered everywhere&lt;br&gt;
(only the brain decides)&lt;/p&gt;

&lt;p&gt;When you evaluate code through the lens of a “human body,”&lt;br&gt;
bad design often feels instinctively wrong.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How does HOA relate to Clean Architecture or DDD?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;HOA is not a replacement for existing architectures.&lt;/p&gt;

&lt;p&gt;More precisely:&lt;/p&gt;

&lt;p&gt;Clean Architecture tells you how to divide code.&lt;br&gt;
HOA helps you understand what a system should look like.&lt;/p&gt;

&lt;p&gt;HOA is a higher-level architectural mental model.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Where HOA fits — and where it doesn’t
Suitable for:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Long-lived systems&lt;/p&gt;

&lt;p&gt;Complex frontend state management&lt;/p&gt;

&lt;p&gt;Data-heavy and orchestration-heavy domains&lt;/p&gt;

&lt;p&gt;Not suitable for:&lt;/p&gt;

&lt;p&gt;One-off scripts&lt;/p&gt;

&lt;p&gt;Very small demos&lt;/p&gt;

&lt;p&gt;Systems with minimal architectural constraints&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Final thoughts&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Good architecture doesn’t try to look clever —&lt;br&gt;
it feels as natural as a living organism.&lt;/p&gt;

&lt;p&gt;Human-Oriented Architecture is not a silver bullet,&lt;br&gt;
and not a framework.&lt;/p&gt;

&lt;p&gt;It’s simply an attempt to use the system we understand best — ourselves&lt;br&gt;
to stay clear-minded and disciplined when facing software complexity.&lt;/p&gt;

&lt;p&gt;If HOA makes you pause and ask:&lt;/p&gt;

&lt;p&gt;“Would this make sense in a healthy human body?”&lt;/p&gt;

&lt;p&gt;Then it has already served its purpose.&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>discuss</category>
      <category>softwareengineering</category>
      <category>architecture</category>
    </item>
  </channel>
</rss>
