<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Aspect-Oriented Programming on Coderrob</title><link>https://coderrob.com/tags/aspect-oriented-programming/</link><description>Recent content in Aspect-Oriented Programming on Coderrob</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 20 Jul 2026 16:00:00 -0500</lastBuildDate><atom:link href="https://coderrob.com/tags/aspect-oriented-programming/index.xml" rel="self" type="application/rss+xml"/><item><title>Aspect-Oriented Programming in TypeScript: Where It Fits and Where It Doesn't</title><link>https://coderrob.com/posts/aspect-oriented-programming-in-typescript/</link><pubDate>Mon, 20 Jul 2026 16:00:00 -0500</pubDate><guid>https://coderrob.com/posts/aspect-oriented-programming-in-typescript/</guid><description>&lt;p&gt;Some concerns are &lt;strong&gt;cross-cutting&lt;/strong&gt; by nature.&lt;/p&gt;
&lt;p&gt;Logging, authorization, transaction boundaries, retries, caching, and tracing can apply across dozens of otherwise unrelated operations. Copying each concern into every method creates repetition. Hiding them behind enough machinery can make the application feel haunted.&lt;/p&gt;
&lt;p&gt;That tension is where &lt;strong&gt;Aspect-Oriented Programming&lt;/strong&gt;, or AOP, enters the conversation. But TypeScript is not AspectJ, and putting an &lt;code&gt;@&lt;/code&gt; above a method does not automatically turn the code into AOP.&lt;/p&gt;</description></item></channel></rss>