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: Shotgun Surgery →

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
Bloaters · Antipattern
Long Method
Also known as: Complex Method, God Method, Brain Method
A method so long you scroll past the beginning before reaching the end. Every change requires re-reading the whole thing, every piece of logic is trapped inside, and the side effects could be hiding three screens away.
Bloaters Measured Smells Antipattern Within Class
Relationships
Causes: Large Class, Side Effects
Co-exists: Dubious Abstraction, Side Effects, Long Parameter List
Caused by: Flag Arguments
Refactoring
Extract Method, Replace Conditional with Polymorphism, Replace Method with Command, Introduce Parameter Object, Preserve the Whole Object, Split Loop
Plain Language
Written for developers, not academic journals
Fixable
Concrete refactoring techniques, not just “clean this up”
1 / 6 This is Long Method.
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
271
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.