A function that grows too large tends to aggregate too many responsibilities. Such function inevitably become harder to understand and therefore harder to maintain.

Above a specific threshold, it is strongly advised to refactor into smaller functions which focus on well-defined tasks.

Those smaller functions will not only be easier to understand, but also probably easier to test.

## Exceptions

This function ignores Immediately Invoked Function Expressions (IIFE), functions which are created and invoked without ever being assigned a name.

     (function () { // Ignored by this rule

      function open() {  // Classic function declaration; not ignored
        // ...
      }

      function read() {
        // ...
      }

      function readlines() {
        // ...
      }
    })();