Distributing methods of a class across multiple files
roy at panix.com
Thu Jan 26 09:11:11 EST 2012
In article <mailman.5080.1327510460.27778.python-list at python.org>,
Dennis Lee Bieber <wlfraed at ix.netcom.com> wrote:
> The old convention I'd learned was to keep functions down to a
> (printer) page (classical 6 lines per inch, 11" high, tractor feed -- so
> about 60 lines per function -- possibly extend to a second page if
> really needed.
The generalization of that is "keep a function small enough that you can
see it all at once". In the days of line printers and green-bar, that
meant about 60 lines. As we moved to glass ttys, that started to mean
24 lines. These days, with most people having large high-res monitors,
the acceptable limit (by that standard) is growing again. I can easily
get 60 lines on my laptop screen.
On the other hand, back in the neolithic age, when line printers and
mainframes roamed the world, function calls were expensive. People were
encouraged to write larger functions to avoid function calls. Now,
function calls are cheap. Both because optimizing compilers and better
hardware support have made them cheap, and because hardware in general
has gotten so fast nobody cares about it anymore (nor should they).
So, I'd say the driving principle should be that a function should do
one thing. Every function should have an elevator talk. You should be
able to get on an elevator with a function and when you ask it, "So,
what do you do?", it should be able to explain itself before you get to,
"Sorry, that's my floor". If it takes longer than that to explain, then
it's probably several functions fighting to get out.
More information about the Python-list