Algunos Tips para el Desarrollo en Rails

septiembre 15, 2008

Como continuación de las ayuda-memoria, y ahora entrando firmemente en el desarrollo de experienciaSD, voy a dejar algunos tips para desarrollo orientadas a acelerar el perfomance de una aplicación, o derechamente mejorar la velocidad del sistema.

En relación al estilo de escribir código

  • Evitar el uso excesivo de helpers, ya que agregarlos es sinónimo de sobrecarga;
  • Considerar el uso de memcached para guardar en la memoria cache los resultados que arroje el calculo de algún modelo o librería;
  • Usa un archivo de configuración propio para guardar contraseñas o claves API en vez de usar el repositorio subversion para almacenarlas. Usar YAMN y copiar el mismo estilo de database.yml
  • Usar constantes cuando sea necesario. En vez de repetir cadenas, como la dirección de un cliente, es mejor definirla de una vez como constante (en enviroment.rb, o en el archivo de ambiente apropiado) y usarla a través de toda la aplicación.
  • Ser cuidadoso con los campos binarios. Por defecto, en una consulta se devuelven todos los campos, incluyendo el contenido completo de un campo binario. Usar :select para devolver los campos que se necesitan.
  • Evitar controladores gigantescos. En vez de acumular acciones en un controlador, limitarse a 10 acciones por controlador puede ser una buena receta, de otra manera, mejor replantearse el diseño.
  • Mantener controladores y vistas lo menos recargados. La mayoría del código debería estar en el modelo, no en los controladores o las vistas.
  • No guardar objetos en la sesión. Si es necesario, mejor usar un entero, o una cadena corta, y entonces sacar el objeto apropiado desde la base de datos mientras dure la solicitud.
  • Usar ar_mailer para la cola de mensajes en vez de enviarlos durante el ciclo de respuesta.
  • Monitorear los servicios con el plugin exception_notification, munin, monit, u otra herramienta.
  • Minimizar la dependencia en relación a los graficos. Si la aplicación solo necesita unos pocos thumbnails, no se justifica gastar memoria importando grandes librerias gráficas. Hay que hecharle un vistaso a mini-magick, o imagescience para hacer liviana estas tareas.
  • Evitar la repitición excesiva de partials pequeños.
  • Usar CSS en vez de inline tags para aplicar diseño selectivo.
  • Usar attr_protected :fieldname en el modelo para proteger los campos de la base de datos de ser manipulados desde un formulario, o desde cualquier otra llamada a Model.update_attributes(params[:model])).
  • Usar las clases de Ruby y su anidación para rehacer el código repetido en un controlador
  • Usar técnicas de no intrusivas de Javascript para separar comportamiento de lenguaje de marcas.
  • Empaquetar las clases autosuficientes en plugins o RubyGems.
  • Guardar en el cache los datos accesados y el contenido entregado frecuentemente, en la medida de lo posible.
  • Rotar los archivos log de Rails y Mongrel usando el demonio logrotate en Linux.
  • Automatizar la materialización y la mantención con Capistriano o Vlad.
  • Hacer métodos cortos. Si un método tiene más de 10 líneas de código, entonces hay que rehacerlo.
  • Correr flog para determinar métodos y clases demasiado complejas.
  • Hacerse amigo de los plugins más populares. En vez de reinventar la rueda, mejor ahorrarse tiempo, usando estos archi-probados y populares plugins.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: