Code Smell 109 - Automatic Properties

Code Smell 109 - Automatic Properties

What happens if you combine 4 code smells?

Maxi Contieri
·Dec 7, 2021·

2 min read

Subscribe to my newsletter and never miss my upcoming articles

Play this article

Table of contents

  • Problems
  • Solutions
  • Context
  • Sample Code
  • Detection
  • Tags
  • Conclusion
  • Relations
  • More Info
  • Credits

TL;DR: Avoid Getters, Avoid Setters, Avoid Metaprogramming. Think about Behavior.



  1. Remove automatic setters and getters


Setters and getters are a bad industry practice.

Many IDEs favor this code smell.

Some languages provide explicit support to build anemic models and DTOs.

Sample Code


class Person
  public string name 
  { get; set; }


class Person
  private string name  

  public Person(string personName)
    name = personName;
    //no getters, no setters


[X] Automatic

This is a language feature.

We should avoid immature languages or forbid their worst practices.


  • Encapsulation


We need to think carefully before exposing our properties.

The first step is to stop thinking about properties and focus solely on behavior.


More Info


Photo by Kony on Unsplash

Nothing is harder than working under a tight deadline and still taking the time to clean up as you go.

Kent Beck

This article is part of the CodeSmell Series.

Share this