Code smell
A code smell is a recognizable symptom in source code suggesting a potential design, implementation, or maintainability problem without necessarily indicating a defect.
Grokking Simplicity
A code smell is a characteristic of source code that may indicate deeper design or maintenance problems.
- How it is used
- Uses smells as practical signals for finding duplication, misplaced abstractions, and opportunities to refactor code.
- How deep it goes
- Defines smells, identifies their characteristics, and gives step-by-step refactorings, but does not provide a complete taxonomy.
- Examples
- Uses shipping calculations, repeated cart setters, and a mixed DOM-and-cart update function as diagnostic examples.
- What you can do after
- Diagnose potential design problems and apply refactorings that expose arguments, reduce duplication, and separate responsibilities.
"Looks Good to Me"
A code smell is a recognizable symptom in source code that suggests a possible design, maintainability, or implementation problem.
- How it is used
- Uses code smells as maintainability signals during pull-request review and automated quality checks.
- How deep it goes
- Defines symptoms and review handling, then extends to automated detection and refactoring without cataloging specific smell patterns.
- Examples
- Uses pull-request approval decisions, AI review findings, refactoring suggestions, and recurring-review feedback as examples.
- What you can do after
- Diagnose code-quality signals, calibrate blocking decisions, and use automated feedback to refactor recurring problems earlier.
Related concepts
- implicit argumentincludes · An implicit argument is a function input supplied through invocation context, naming convention, or language mechanisms rather than explicitly at the call site.
- code duplicationincludes · Code duplication is the presence of equivalent or substantially similar source code or implementation logic in multiple locations within a software system.
- shotgun surgeryincludes · Shotgun surgery is a code smell in which one logical change requires many separate modifications across a software system.
- refactoringaddressed by · Refactoring is the restructuring of existing software or code to change its internal organization and improve its design, typically while preserving externally observable behavior.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.

