General

Power Types es una gema desarrollada por Platanus que promueve el uso de estos poderosos patrones: Services, Commands, Utils y Values.
Estos se basan en el SRP (Single Responsability Principe), que nos dice que cada clase debe tener 1 sola función. Por ejemplo, si tenemos un modelo con operaciones complejas como este:
class User
def upgrade_membership
# ...
end
def notify_external_system
# ...
end
def register_payment_card
# ...
end
end
Deberíamos llevar cada una de sus funciones a Commands o Services independientes:
class UpgradeMembership < Command
# ...
end
class ExternalNotifierService < Service
# ...
end
class RegisterPaymentCard < Command
# ...
end
Estructurando nuestro código de forma modular y desacoplada tenemos las siguientes ventajas:
  • Menos riesgo: Aislar errores, no pisar variables
  • Más claridad, que hace cada clase
  • DRYness
  • Unit Testing de cada funcionalidad

Referencias

Para mayor información sobre esta gema, visita los siguientes vínculos:
Última actualización 10mo ago