Incluyendo archivos en preguntas Ruby
Pregunta
- Soy muy nuevo en Ruby, ¿podría sugerir la mejor práctica para separar archivos e incluirlos?
- ¿Cuál es la estructura de diseño preferida del diseño del archivo? ¿Cuándo decide separar el algoritmo en un nuevo archivo?
- ¿Cuándo usa cargar para incluir otros archivos y cuándo usa require ?
- ¿Y hay un impacto en el rendimiento cuando incluye archivos?
Gracias.
Solución
-
Hago un archivo por clase, excepto las clases que son clases auxiliares pequeñas, que otros archivos no necesitan. También separo mis diferentes módulos en subdirectorios.
-
La diferencia entre
load
yrequire
esrequire
solo cargará el archivo una vez, incluso si se llama varias veces, mientras queload
lo cargará nuevamente independientemente de si se ha cargado antes. Casi siempre querrás usarrequire
, excepto tal vez enirb
cuando quieras recargar manualmente un archivo. -
No estoy seguro del impacto en el rendimiento. Cuando
carga
orequiere
un archivo, el intérprete tiene que interpretar el archivo. La mayoría de Ruby lo compilará en código de máquina virtual después de ser requerido. Obviamente,require
es más eficiente cuando el archivo puede haber sido incluido una vez, porque es posible que no tenga que volver a cargarlo.