A corollary to my previous dictum that a method may make a decisions OR do something is that you want to cut a larger into smaller pieces. And each piece generally looks like the following:
sub doing_something {
my( $self ) = @_;
$self->prepare_something;
if( $self->is_it_time_to_do_something ) {
$self->before_something;
$self->something;
$self->after_something;
}
$self->unprepare_something;
}
In the above, something is just the name of the particular small piece of the larger task. The prepare_something/unprepare_something calls are there to avoid all possible side-effects in is_it_time_to_do_something. I would use before_something/after_something are there for things logging, timing, transactions and other "admin" actions that aren't related to something.
I feel like I've been infected by all the Java I did last spring.
No comments:
Post a Comment