<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Code Quality on Nalar</title>
    <link>https://nalar.dev/tags/code-quality/</link>
    <description>Recent content in Code Quality on Nalar</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 03 Sep 2026 00:00:00 +0700</lastBuildDate>
    <atom:link href="https://nalar.dev/tags/code-quality/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Designing Invariants That Make Invalid States Hard to Represent</title>
      <link>https://nalar.dev/designing-invariants-that-make-invalid-states-hard-to-represent/</link>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0700</pubDate>
      <guid>https://nalar.dev/designing-invariants-that-make-invalid-states-hard-to-represent/</guid>
      <description>&lt;p&gt;Many software defects are not caused by complicated algorithms. They happen because the program reaches a state that should never have been possible: an order has a negative quantity, a completed job has no completion time, or a configuration contains two options that cannot be enabled together.&lt;/p&gt;&#xA;&lt;p&gt;An invariant is a condition that must remain true for a particular object, module, or operation to be valid. Designing around invariants turns assumptions into enforceable rules. The result is usually less defensive code, clearer interfaces, and failures that occur closer to their cause.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Code Reviews That Improve Change Quality</title>
      <link>https://nalar.dev/code-reviews-that-improve-change-quality/</link>
      <pubDate>Wed, 02 Sep 2026 00:00:00 +0700</pubDate>
      <guid>https://nalar.dev/code-reviews-that-improve-change-quality/</guid>
      <description>&lt;p&gt;Code review is one of the few engineering practices that can improve a change before it reaches production while also spreading knowledge across a team. It can catch defects, expose unclear assumptions, improve maintainability, and help engineers understand parts of the system they did not write.&lt;/p&gt;&#xA;&lt;p&gt;It can also become slow and frustrating when reviewers focus on preferences, authors submit changes that are too large to reason about, or nobody is clear about what approval means.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Feature Flags Without Permanent Complexity</title>
      <link>https://nalar.dev/feature-flags-without-permanent-complexity/</link>
      <pubDate>Wed, 02 Sep 2026 00:00:00 +0700</pubDate>
      <guid>https://nalar.dev/feature-flags-without-permanent-complexity/</guid>
      <description>&lt;p&gt;Feature flags let teams separate deploying code from exposing behavior. A change can reach production while remaining disabled, then be enabled for internal users, a small percentage of traffic, or a selected customer group.&lt;/p&gt;&#xA;&lt;p&gt;That flexibility reduces release risk, but every flag also creates another possible execution path. If flags are added casually and never removed, the codebase accumulates conditional behavior that becomes difficult to reason about and test.&lt;/p&gt;&#xA;&lt;p&gt;The engineering goal is therefore not to maximize the number of flags. It is to use flags as temporary control points with explicit ownership and a planned end state.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
