<?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: Code Atlas</title>
    <description>The latest articles on DEV Community by Code Atlas (@codeatlas).</description>
    <link>https://dev.to/codeatlas</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4027379%2F4a0a2f3e-9ed4-473f-9d17-c84828ecfa3c.png</url>
      <title>DEV Community: Code Atlas</title>
      <link>https://dev.to/codeatlas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codeatlas"/>
    <language>en</language>
    <item>
      <title>Naming Things Without Pain</title>
      <dc:creator>Code Atlas</dc:creator>
      <pubDate>Tue, 21 Jul 2026 08:01:07 +0000</pubDate>
      <link>https://dev.to/codeatlas/naming-things-without-pain-2ao9</link>
      <guid>https://dev.to/codeatlas/naming-things-without-pain-2ao9</guid>
      <description>&lt;h2&gt;
  
  
  Naming Things Without Pain
&lt;/h2&gt;

&lt;p&gt;Naming things is one of the two hard problems in computer science (the other being cache invalidation and off-by-one errors). We've all stared at a variable or function, unable to think of a good name. Here are practical strategies to reduce that pain.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Intention-Revealing Names
&lt;/h3&gt;

&lt;p&gt;A name should answer "why it exists, what it does, and how it is used." Avoid generic names like &lt;code&gt;data&lt;/code&gt;, &lt;code&gt;info&lt;/code&gt;, &lt;code&gt;temp&lt;/code&gt;, or &lt;code&gt;flag&lt;/code&gt;. Instead, be specific.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Bad
&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;86400&lt;/span&gt;  &lt;span class="c1"&gt;# what does this mean?
&lt;/span&gt;
&lt;span class="c1"&gt;# Good
&lt;/span&gt;&lt;span class="n"&gt;seconds_in_a_day&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;86400&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Pronounceable Names
&lt;/h3&gt;

&lt;p&gt;If you can't say it in a conversation, it's a bad name. &lt;code&gt;genymdhms&lt;/code&gt; (generate date, year, month, day, hour, minute, second) is impossible to pronounce. Use &lt;code&gt;generation_timestamp&lt;/code&gt; instead.&lt;/p&gt;

&lt;h3&gt;
  
  
  Avoid Disinformation
&lt;/h3&gt;

&lt;p&gt;Don't use names that imply something different. For example, &lt;code&gt;account_list&lt;/code&gt; should be a &lt;code&gt;List&lt;/code&gt;, not a &lt;code&gt;HashMap&lt;/code&gt;. If it's a set, call it &lt;code&gt;account_set&lt;/code&gt; or &lt;code&gt;accounts&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Consistent Naming Conventions
&lt;/h3&gt;

&lt;p&gt;Pick a style and stick to it. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;camelCase&lt;/strong&gt; for JavaScript variables and functions: &lt;code&gt;getUserById&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;snake_case&lt;/strong&gt; for Python variables: &lt;code&gt;get_user_by_id&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PascalCase&lt;/strong&gt; for classes: &lt;code&gt;UserService&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Consistency reduces cognitive load.&lt;/p&gt;

&lt;h3&gt;
  
  
  Distinguish Names Meaningfully
&lt;/h3&gt;

&lt;p&gt;Avoid number-series naming like &lt;code&gt;a1&lt;/code&gt;, &lt;code&gt;a2&lt;/code&gt;, &lt;code&gt;a3&lt;/code&gt; unless they have specific meaning (e.g., coordinates). Also avoid noise words like &lt;code&gt;ProductInfo&lt;/code&gt; vs &lt;code&gt;ProductData&lt;/code&gt; they are interchangeable. Instead, use &lt;code&gt;Product&lt;/code&gt; and &lt;code&gt;ProductDetails&lt;/code&gt; if they differ.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Searchable Names
&lt;/h3&gt;

&lt;p&gt;Single-letter names are only acceptable for short-lived loop counters. Otherwise, use names that can be easily searched. &lt;code&gt;e&lt;/code&gt; is hard to find; &lt;code&gt;error_message&lt;/code&gt; is easy.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Bad&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// what does e mean?&lt;/span&gt;

&lt;span class="c1"&gt;// Good&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;max_items_per_page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Class and Function Naming
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Classes&lt;/strong&gt; should have noun or noun phrase names: &lt;code&gt;Customer&lt;/code&gt;, &lt;code&gt;WikiPage&lt;/code&gt;, &lt;code&gt;Account&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Functions&lt;/strong&gt; should have verb or verb phrase names: &lt;code&gt;save&lt;/code&gt;, &lt;code&gt;delete&lt;/code&gt;, &lt;code&gt;getAddress&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Rule of Three
&lt;/h3&gt;

&lt;p&gt;If you write a name and later find it doesn't fit, rename it. Don't live with a bad name. Refactoring tools make renaming easy. The rule of three: if you use a name three times and it feels wrong, change it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example Refactoring
&lt;/h3&gt;

&lt;p&gt;Let's refactor a poorly named function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Original&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;x&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// After&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;calculatePriceWithTax&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;basePrice&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;taxRatePercent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;basePrice&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;basePrice&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;taxRatePercent&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second version is self-documenting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Summary
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Names should reveal intent.&lt;/li&gt;
&lt;li&gt;Be consistent with conventions.&lt;/li&gt;
&lt;li&gt;Make names pronounceable and searchable.&lt;/li&gt;
&lt;li&gt;Rename when the name doesn't fit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Naming is hard, but with practice it becomes easier. Start with these guidelines and your code will be more readable and maintainable.&lt;/p&gt;

</description>
      <category>cleancode</category>
      <category>naming</category>
      <category>bestpractices</category>
      <category>programming</category>
    </item>
    <item>
      <title>Stop memorizing frameworks. Learn these 5 engineering skills instead.</title>
      <dc:creator>Code Atlas</dc:creator>
      <pubDate>Mon, 13 Jul 2026 14:26:28 +0000</pubDate>
      <link>https://dev.to/codeatlas/stop-memorizing-frameworks-learn-these-5-engineering-skills-instead-e1h</link>
      <guid>https://dev.to/codeatlas/stop-memorizing-frameworks-learn-these-5-engineering-skills-instead-e1h</guid>
      <description>&lt;p&gt;Frameworks come and go. Strong engineering skills stay valuable.&lt;/p&gt;

&lt;p&gt;If you invest time in these, you'll improve regardless of the stack you're using:&lt;/p&gt;

&lt;p&gt;📐 System design: understand how services communicate and scale.&lt;br&gt;
🧪 Testing: write code that you can change with confidence.&lt;br&gt;
📊 Observability: logs, metrics, and tracing save hours of debugging.&lt;br&gt;
⚡ Performance: measure first, optimize second.&lt;br&gt;
📚 Documentation: future you (and your team) will thank you.&lt;/p&gt;

&lt;p&gt;Tools change.&lt;/p&gt;

&lt;p&gt;Engineering principles don't.&lt;/p&gt;

&lt;p&gt;What skill has had the biggest impact on your career?&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
