|Refactoriza: factura de electricidadMedio
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 10:00

info

Importante: Para que se registre el resultado tienes que iniciar sesión.

Refactoriza: factura de electricidad

Medio100 pts·Refactorización
ruleRestricciones de Refactoring
  • radio_button_unchecked
    Sin números mágicos de tarifa
  • radio_button_unchecked
    Sin variables de una sola letra
  • radio_button_unchecked
    Declara constantes en UPPER_SNAKE_CASE
  • radio_button_unchecked
    Extrae al menos una función auxiliar

Enunciado

Contexto

Una empresa de servicios públicos calcula la factura de electricidad de sus clientes según el tipo de contrato y el consumo mensual en kilowatts-hora (kWh).

Tu tarea

Refactoriza la función calculateElectricityBill para que sea limpia, legible y mantenible. El comportamiento debe ser idéntico al original.

Reglas de negocio

  • Residencial: primer tramo hasta 100 kWh a $0.10/kWh, de 101 a 300 kWh a $0.15/kWh, más de 300 kWh a $0.20/kWh
  • Comercial: tarifa plana de $0.18/kWh, con 10% de descuento si el consumo supera 500 kWh
  • Industrial: tarifa plana de $0.12/kWh, con 15% de descuento si el consumo supera 1000 kWh, más un cargo fijo de $50
  • En todos los casos, el monto mínimo a cobrar es $5

Problemas a corregir

  • Elimina los números mágicos y extrae constantes con nombre descriptivo en UPPER_SNAKE_CASE
  • Renombra las variables de una sola letra con nombres que expresen su propósito
  • Extrae funciones auxiliares que encapsulen la lógica por tipo de cliente
  • Aplica el principio de responsabilidad única: cada función debe hacer una sola cosa
Restriccionesexpand_more
  • Dificultad: Medio
  • Completa todos los test cases para obtener los 100 puntos.
  • No modificar la línea export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar console.log() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
7 soluciones · 100% aceptación