DEV Community

Yonatan Karp-Rudin
Yonatan Karp-Rudin

Posted on • Originally published at yonatankarp.com on

Kotlin Code Smell 2 - Functions Are Too Long

ojk816llxyjq794m5m7a.png

TL;DR: Refactor and extract functions longer than 5-10 lines of code.

Problems

  • Low cohesion

  • High coupling

  • Difficult to read

  • Low reuse

Solutions

  • Refactor.

  • Create small objects to handle specific tasks and unit test them.

  • Compose methods.

Examples

  • Libraries

Sample Code

Wrong

class ChessBoard() {
    init {
        placeOnBoard(whiteTower)
        placeOnBoard(whiteKnight)
        // All other white pieces

        // Empty space to pause definition
        placeOnBoard(blackTower)
        placeOnBoard(blackKnight)
        // All other black pieces
    }

    fun placeOnBoard(piece: Piece) = TODO()
}
Enter fullscreen mode Exit fullscreen mode

Right

class ChessBoard() {
    init {
        placeWhitePieces()
        placeBlackPieces()
    }

    private fun placeWhitePieces() = TODO()
    private fun placeBlackPieces() = TODO()
}
Enter fullscreen mode Exit fullscreen mode

Conclusion

Extract long methods into smaller pieces. Break down complex algorithms into parts. This approach allows for easier unit testing and improves readability while ensuring the correct level of abstraction in your method.


Stay updated with my latest thoughts and ideas by registering for my newsletter. Connect with me on LinkedIn or Twitter. Let's stay connected and keep the conversation going!


More info

Credits

Top comments (0)