Refactorizar: Renombrar variables y métodos

 Ejemplo de refactorización usando la técnica Renombrar variables y métodos

Código sin refactorizar:

Python
def calcular_total_compra(productos):
  """
  Calcula el total de una compra a partir de una lista de productos.

  Args:
    productos: Una lista de diccionarios que representan los productos.

  Returns:
    El total de la compra.
  """

  total = 0
  for producto in productos:
    p = producto["precio"]
    c = producto["cantidad"]
    s = p * c
    total += s

  return total

def mostrar_factura(productos):
  """
  Muestra la factura de una compra a partir de una lista de productos.

  Args:
    productos: Una lista de diccionarios que representan los productos.
  """

  total = calcular_total_compra(productos)

  print("Factura:")
  for producto in productos:
    p = producto["precio"]
    c = producto["cantidad"]
    s = p * c
    print(f"- {producto['nombre']}: {c} x {p} = {s}")
  print(f"Total: {total}")

Problemas del código sin refactorizar:

  • Los nombres de las variables y métodos no son muy descriptivos.
  • El código es difícil de entender, ya que no se utiliza una convención de nomenclatura consistente.

Refactorización utilizando la técnica Renombrar variables y métodos:

Python
def calcular_importe_total(productos):
  """
  Calcula el importe total de una venta a partir de una lista de productos.

  Args:
    productos: Una lista de diccionarios que representan los productos vendidos.

  Returns:
    El importe total de la venta.
  """

  total = 0
  for producto in productos:
    precio_unitario = producto["precio_unitario"]
    cantidad_vendida = producto["cantidad_vendida"]
    subtotal = precio_unitario * cantidad_vendida
    total += subtotal

  return total

def mostrar_detalle_venta(productos):
  """
  Muestra el detalle de una venta a partir de una lista de productos vendidos.

  Args:
    productos: Una lista de diccionarios que representan los productos vendidos.
  """

  importe_total = calcular_importe_total(productos)

  print("Detalle de venta:")
  for producto in productos:
    precio_unitario = producto["precio_unitario"]
    cantidad_vendida = producto["cantidad_vendida"]
    subtotal = precio_unitario * cantidad_vendida
    print(f"- {producto['nombre']}: {cantidad_vendida} x {precio_unitario} = {subtotal}")
  print(f"Importe total: {importe_total}")

Beneficios de la refactorización:

  • Los nombres de las variables y métodos son ahora más descriptivos y claros.
  • El código es más fácil de leer y entender.
  • Se ha utilizado una convención de nomenclatura consistente para mejorar la legibilidad del código.

En este ejemplo, la técnica Renombrar variables y métodos ha permitido mejorar la legibilidad y la comprensibilidad del código. Es importante utilizar nombres descriptivos y consistentes para las variables y métodos, ya que esto facilita la comprensión del código para cualquier desarrollador.

Comentarios

Entradas más populares de este blog

Malos olores

Refactorización

Refactorización: Eliminar código muerto