This content originally appeared on DEV Community and was authored by Maxi Contieri
What happens if you combine 4 code smells?
TL;DR: Avoid Getters, Avoid Setters, Avoid Metaprogramming. Think about Behavior.
Problems
Information Hiding Violation
Fail Fast Principle violation
Duplicate code when setting properties
Solutions
Context
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
Wrong
class Person
{
public string name
{ get; set; }
}
Right
class Person
{
private string name
public Person(string personName)
{
name = personName;
//imutable
//no getters, no setters
}
}
Detection
[X] Automatic
This is a language feature.
We should avoid immature languages or forbid their worst practices.
Tags
- Encapsulation
Conclusion
We need to think carefully before exposing our properties.
The first step is to stop thinking about properties and focus solely on behavior.
Relations
Code Smell 28 - Setters
Maxi Contieri ・ Nov 19 '20 ・ 2 min read
Code Smell 70 - Anemic Model Generators
Maxi Contieri ・ May 18 ・ 2 min read
Code Smell 01 - Anemic Models
Maxi Contieri ・ Oct 20 '20 ・ 2 min read
More Info
Credits
Nothing is harder than working under a tight deadline and still taking the time to clean up as you go.
Kent Beck
Software Engineering Great Quotes
Maxi Contieri ・ Dec 28 '20 ・ 13 min read
This article is part of the CodeSmell Series.
How to Find the Stinky parts of your Code
Maxi Contieri ・ May 21 ・ 4 min read
This content originally appeared on DEV Community and was authored by Maxi Contieri
Maxi Contieri | Sciencx (2021-12-07T03:01:02+00:00) Code Smell 109 – Automatic Properties. Retrieved from https://www.scien.cx/2021/12/07/code-smell-109-automatic-properties/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.