A subroutine that grows too large tends to aggregate too many responsibilities. Such subroutine inevitably become harder to understand and
therefore harder to maintain. Above a specific threshold, it is strongly advised to refactor into smaller subroutines which focus on well-defined
tasks. Those smaller subroutines will not only be easier to understand, but also probably easier to test.