En este módulo, aprenderás sobre las mejores prácticas y convenciones de estilo de código en Ruby. Seguir estas convenciones no solo hará que tu código sea más legible y mantenible, sino que también facilitará la colaboración con otros desarrolladores.
- Importancia del Estilo de Código
El estilo de código es crucial por varias razones:
- Legibilidad: Un código bien estructurado y consistente es más fácil de leer y entender.
- Mantenibilidad: Facilita la identificación de errores y la implementación de cambios.
- Colaboración: Permite que otros desarrolladores comprendan y trabajen con tu código más fácilmente.
- Convenciones de Nombres
2.1 Variables y Métodos
- Variables locales y métodos: Utiliza
snake_case
.user_name = "John" def calculate_total # código end
2.2 Clases y Módulos
- Clases y Módulos: Utiliza
CamelCase
.class UserAccount # código end module PaymentGateway # código end
2.3 Constantes
- Constantes: Utiliza
UPPER_SNAKE_CASE
.MAX_ATTEMPTS = 5
- Indentación y Espaciado
3.1 Indentación
- Utiliza 2 espacios para la indentación. No uses tabulaciones.
def example_method if condition # código end end
3.2 Espaciado
-
Espacios alrededor de operadores:
total = price + tax
-
Sin espacios después de
(
,[
y antes de]
,)
:some_method(arg1, arg2) array = [1, 2, 3]
- Longitud de Línea
- Mantén las líneas de código a un máximo de 80 caracteres. Si una línea es demasiado larga, considera dividirla.
def some_long_method_name(argument_one, argument_two, argument_three) # código end
- Comentarios
5.1 Comentarios en Línea
- Utiliza comentarios para explicar el por qué del código, no el qué.
# Calcula el total incluyendo impuestos total = price + tax
5.2 Comentarios de Bloque
- Para comentarios más largos, usa comentarios de bloque.
=begin Este método realiza una serie de cálculos complejos y devuelve el resultado final. =end
- Estructura de Archivos
6.1 Organización de Archivos
- Coloca cada clase en su propio archivo.
# archivo: user_account.rb class UserAccount # código end
6.2 Requiriendo Archivos
- Utiliza
require
orequire_relative
para incluir otros archivos.require_relative 'user_account'
- Ejemplo de Código Bien Formateado
# archivo: user_account.rb class UserAccount MAX_ATTEMPTS = 5 def initialize(user_name) @user_name = user_name @login_attempts = 0 end def login(password) if @login_attempts >= MAX_ATTEMPTS raise "Account locked" end if authenticate(password) reset_attempts true else increment_attempts false end end private def authenticate(password) # lógica de autenticación end def reset_attempts @login_attempts = 0 end def increment_attempts @login_attempts += 1 end end
- Ejercicio Práctico
Ejercicio
Refactoriza el siguiente código para que siga las convenciones de estilo de Ruby:
class person def initialize(name,age) @Name=name @Age=age end def getInfo() return "Name: #{@Name}, Age: #{@Age}" end end
Solución
class Person def initialize(name, age) @name = name @age = age end def get_info "Name: #{@name}, Age: #{@age}" end end
Conclusión
Seguir las convenciones de estilo de código en Ruby es esencial para escribir código limpio, legible y mantenible. A medida que avances en tu carrera como desarrollador, estas prácticas te ayudarán a colaborar de manera más efectiva y a mantener un código de alta calidad. En el próximo tema, exploraremos técnicas de refactorización para mejorar aún más la calidad de tu código.
Curso de Programación en Ruby
Módulo 1: Introducción a Ruby
Módulo 2: Conceptos Básicos de Ruby
Módulo 3: Trabajando con Colecciones
Módulo 4: Programación Orientada a Objetos en Ruby
- Clases y Objetos
- Variables y Métodos de Instancia
- Variables y Métodos de Clase
- Herencia
- Módulos y Mixins
Módulo 5: Conceptos Avanzados de Ruby
- Bloques, Procs y Lambdas
- Metaprogramación
- Manejo de Excepciones
- Entrada/Salida de Archivos
- Expresiones Regulares
Módulo 6: Introducción a Ruby on Rails
- ¿Qué es Ruby on Rails?
- Configuración del Entorno Rails
- Creando una Aplicación Simple en Rails
- Arquitectura MVC
- Enrutamiento
Módulo 7: Pruebas en Ruby
- Introducción a las Pruebas
- Pruebas Unitarias con Minitest
- Desarrollo Guiado por Comportamiento con RSpec
- Mocking y Stubbing
Módulo 8: Mejores Prácticas en Ruby
- Estilo de Código y Convenciones
- Refactorización
- Optimización del Rendimiento
- Mejores Prácticas de Seguridad