Maxi Contierimaximilianocontieri.com·Feb 12, 2025Code Smell 290 - Refused BequestWhen you ignore your inheritance, you will have trouble with your parents TL;DR: Subclasses should honor ALL their parent’s contract. Problems 😔 Wrong abstraction Subclassification for code reuse Misleading hierarchy Unused or overridden methods ...Code Smellsclean code
Maxi Contierimaximilianocontieri.com·Feb 7, 2025Code Smell 289 - Shy VisitorTL;DR: Avoid combining the Visitor pattern with instanceof checks. Problems 😔 Open/Closed principle violation Tight Coupling Maintainability Code duplication Poor readability Brittle design IFs Solutions 😃 Implement the Visitor pattern correctl...26 readsCode Smellsclean code
Maxi Contierimaximilianocontieri.com·Feb 2, 2025Code Smell 288 - Unthrown ExceptionsTL;DR: Creating a new exception without throwing it leads to silent failures. 👃💩 Problems 😔 Silent failures Unhandled errors Misleading logic Hidden defects Hollow Exceptions Solutions 😃 Always ensure you throw exceptions Check exception usag...Code Smellscode smell
Maxi Contierimaximilianocontieri.com·Jan 23, 2025Refactoring 022 - Extract Common AncestorMake your class hierarchy clear and flexible TL;DR: Extract a common abstract class to mimic real-world structure. Problems Addressed Duplicate Code Inappropriate Inheritance Shotgun Surgery Big Class Feature Envy High Coupling Concrete classes su...Refactoringsrefactoring
Maxi Contierimaximilianocontieri.com·Jan 16, 2025Code Smell 286 - Overlapping MethodsTL;DR: Avoid using private methods in parent classes with names that child classes can use. Problems The least surprise principle violation Unexpected behavior and defects Hidden dependencies Limited extensibility Code ambiguity Open/Closed pr...Code Smellsclean code
Maxi Contierimaximilianocontieri.com·Jan 9, 2025Code Smell 285 - Non-Imperative Functions NamesTL;DR: Functions with unclear names hide intent and confuse readers. Use descriptive, action-oriented names. Problems Unclear function purpose Increased cognitive load Misleading context Reduced readability Difficult collaboration Hidden functional...27 readsCode Smellsclean code
Maxi Contierimaximilianocontieri.com·Dec 28, 2024Refactoring 021 - Remove Dead CodeTL;DR: Eliminate unused functions, constants, and "just-in-case" code. Problems Addressed Dead Code Just-in-case code Reduced maintainability Anchor Boats Cognitive Load Related Code Smells https://maximilianocontieri.com/code-smell-09-dead-c...Refactoringsrefactoring
Maxi Contierimaximilianocontieri.com·Dec 21, 2024Code Smell 284 - Encrypted FunctionsTL;DR: Avoid obfuscated functions in your code. This article is based on a real social hacking disguised as a job interview Problems Hidden vulnerabilities Readability Testability Trust issues Bad Naming Solutions Use clear names Avoid obfu...Code Smellsclean code
Maxi Contierimaximilianocontieri.com·Dec 10, 2024Code Smell 283 - Unresolved Meta TagsTL;DR: Incomplete or null meta tags break functionality and user experience. Problems Tags appear in output Email texts include placeholders between human-readable text Missed placeholders confuse users Websites are rendered with strange characters...30 readsCode Smellsclean code
Maxi Contierimaximilianocontieri.com·Dec 4, 2024Refactoring 019 - Reify Email AddressesSayit once and only once TL;DR: Avoid duplicate email validations. Problems Addressed Repeated email validation logic in multiple places. Risk of inconsistent validation rules. Difficult to maintain validation rules. Bijection violation Primitive ...28 readsRefactoringsrefactoring