For the complete documentation index, see llms.txt. This page is also available as Markdown.

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