Code Smell 03: Functions Are Too Long - Here's How to Fix That

Written by mcsee | Published 2025/08/20
Tech Story Tags: programming | clean-code | software-development | software-engineering | refactoring | code-smells | functions-that-are-too-long | code-quality

TLDRRefactor and extract functions longer than 5 lines. Here's how.via the TL;DR App

Humans get bored after line five.

TL;DR: Refactor and extract functions longer than 5 lines.

Problems πŸ˜”

  • Low cohesion
  • High coupling
  • Hard to read
  • Low reusability

Solutions πŸ˜ƒ

  1. Refactor
  2. Create small objects to handle specific tasks. Unit-test them.
  3. Compose methods
  4. Divide and conquer

Refactorings βš™οΈ

https://maximilianocontieri.com/refactoring-010-extract-method-object?embedable=true

https://hackernoon.com/refactoring-025-decompose-regular-expressions?embedable=true

https://hackernoon.com/improving-the-code-one-line-at-a-time?embedable=true

Examples

  • Libraries

Context πŸ’¬

When you write a long function, you hide too many details in one place.

You force the reader to hold multiple concepts in mind.

You mix unrelated responsibilities and make the code hard to test.

You create a rigid block that breaks easily when you change it.

Short, focused functions let you read, test, and modify code faster.

Sample Code πŸ“–

Wrong 🚫

<?

function setUpChessBoard() {
    $this->placeOnBoard($this->whiteTower);
    $this->placeOnBoard($this->whiteKnight);
    // A lot more lines
    
    // Empty space to pause definition
    $this->placeOnBoard($this->blackTower);
    $this->placeOnBoard($this->blackKnight);
    // A lot more lines
}

Right πŸ‘‰

<?

function setUpChessBoard() {
    $this->placeWhitePieces();
    $this->placeBlackPieces();
}

Detection πŸ”

  • [x]Automatic

All linters can measure and warn when methods exceed a predefined threshold.

Tags 🏷️

  • Bloaters

Level πŸ”‹

  • [x]Beginner

Why the Bijection Is Important πŸ—ΊοΈ

A real-world action should map to a clear, concise function.

When you pack many actions into one function, you lose that mapping.

Developers must mentally reconstruct the steps, which slows comprehension and increases errors.

AI Generation πŸ€–

AI generators often create long functions if you give them vague prompts.

They tend to cram all logic into one place unless you explicitly request modular code.

AI Detection πŸ₯ƒ

AI tools can fix this smell with the right instructions to split code into small, focused functions.

Try Them! πŸ› 

Remember: AI Assistants make lots of mistakes

Suggested Prompt: Convert it to more declarative

Without Proper Instructions

With Specific Instructions

ChatGPT

ChatGPT

Claude

Claude

Perplexity

Perplexity

Copilot

Copilot

You

You

Gemini

Gemini

DeepSeek

DeepSeek

Meta AI

Meta AI

Grok

Grok

Qwen

Qwen

Conclusion 🏁

Extract long methods into smaller pieces.

Break complex algorithms into parts.

You can also unit test these parts.

Relations πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘¨

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xv

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxi

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xlii

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxii

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xv

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxxi

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xvii

More Information πŸ“•

https://refactoring.guru/es/smells/long-method?embedable=true

Also Known as

  • Long Method

Credits πŸ™

Photo by Hari Panicker on Unsplash


Programs are meant to be read by humans and only incidentally for computers to execute.

Donald Knuth

https://hackernoon.com/400-thought-provoking-software-engineering-quotes?embedable=true


This article is part of the CodeSmell Series.

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-i-xqz3evd?embedable=true


Written by mcsee | I’m a sr software engineer specialized in Clean Code, Design and TDD Book "Clean Code Cookbook" 500+ articles written
Published by HackerNoon on 2025/08/20