They add (at least in Ruby) a few lines of code to a program; and take things like Email out of the User model and put them in a more appropriate place.
And you'd never know that they existed if you look at the user model...
My stance is that things like sending email should be explicit calls so they are obvious. Sending email when registering a new user, for example, should be in the if user.save branch in your controllers or, if you have a more SOAish app, in the service that creates users.
def create
user = User.create(params[:user])
if user.save
Emailer.new_user_email.deliver
render 'welcome'
else
render 'oh shit'
end
end
Or, refactor that out a bit (ONLY IF NECESSARY!)
def create
user = UserService.create_user_from(params[:user])
if user
render 'welcome'
else
render 'oh shit'
end
My stance is that things like sending email should be explicit calls so they are obvious. Sending email when registering a new user, for example, should be in the if user.save branch in your controllers or, if you have a more SOAish app, in the service that creates users.
def create user = User.create(params[:user])
endOr, refactor that out a bit (ONLY IF NECESSARY!)
def create user = UserService.create_user_from(params[:user])
end