About — Code Smells Catalog Skip to content

The catalog that names
what’s wrong with your code

Built for the developer who knows something’s wrong with the code but can’t name it yet. 56 smells, five dimensions, every relationship mapped.

0
Code Smells
0
Dimensions
0
Sources
0
on Google
Today’s smell: Side Effects →

Why This Catalog Exists

I spent the better part of a year reading every academic paper I could find on code smells. What I found was frustrating:

  • Papers buried them in academic prose nobody had time to parse.
  • Books scattered them across chapters with no unified view.
  • Blog posts covered the same handful — always Long Method, always God Class.

Nowhere had all of them in one place.

So I built one.

I turned it into my Master’s thesis at Wroclaw University of Science and Technology, published alongside a Springer Nature research paper. One goal: read everything, classify everything, and make it all browsable.

Every entry has a paper trail. Who named it, when, where. Which smells it causes and which cause it. What it breaks, and how to fix it.

What I wished existed — five ways to look at every smell, and a map of how they’re all connected.

Five Ways to Look at Every Smell

Most lists give you a name and move on. This catalog classifies each smell across five independent dimensions — start from what’s blocking you, where it shows up, or how deep it goes.

“Yes, classifying code smells along five dimensions is perhaps a bit obsessive.”

Anatomy of a Smell

Every smell gets the same treatment. Here’s what you get.

Classified
Five independent dimensions — filter from any angle
Cause Chains
Mapped to the smells it triggers — and the ones that trigger it
Dispensables · Code Smell
Duplicated Code
Also known as: Clones, Code Clone, Duplicate Code
The same logic in five places. Change one, miss another, and watch the behavior quietly diverge. According to Fowler, this is the single worst smell in a codebase.
Dispensables Duplication Code Smell Within Class
Relationships
Co-exists: Alternative Classes With Different Interfaces, Oddball Solution
Caused by: Incomplete Library Class, Magic Number, Required Setup/Teardown Code, Type Embedded In Name
Refactoring
Extract Class, Extract Function, Pull Up Method, Slide Statement, Form Template Method
Plain Language
Written for developers, not academic journals
Fixable
Concrete refactoring techniques, not just “clean this up”
1 / 6 This is Duplicated Code.
That’s the surface. Every one of the 56 goes this deep.
Explore the Catalog →

The Research & the Author

This whole thing started because I couldn’t find a single place that collected all the smells. So I spent the better part of a year reading the papers, and published the taxonomy through Springer Nature. If it’s been useful, the citation goes a long way.

Springer

Code Smells: A Comprehensive Online Catalog and Taxonomy

Marcel Jerzyk, Lech Madeyski 2023 Springer Nature · Studies in Systems, vol 462

What happens when you read 40+ papers about code smells and organize everything into one place? 56 named smells across 5 taxonomy dimensions — with every causal relationship mapped.

Citation
Jerzyk, M., Madeyski, L. (2023). Code Smells: A Comprehensive Online Catalog and Taxonomy. In: Studies in Systems, Decision and Control, vol 462. Springer, Cham. https://doi.org/10.1007/978-3-031-25695-0_24
272
GitHub stars
25
Academic citations
56
Smells cataloged
40+
Papers surveyed
MJ

Papers don’t write themselves. Catalogs don’t either.

Marcel Jerzyk

Marcel Jerzyk

Senior Software Engineer & Smell Taxonomist
Springer Nature, 2023·Wrocław University of Science and Technology

I read 40 papers about code smells so you don’t have to. Then I built this catalog because the research deserved better than a PDF nobody opens.

Engineer, researcher, music producer. Pattern recognition is the thread.

Questions about the taxonomy? Open an issue or say hi.