Estoy aprendiendo rieles.
En algún momento a lo largo de la línea, me di cuenta de que aparecen carpetas y archivos aparentemente aleatorios en el directorio de mi aplicación rails. En algunas carpetas hay una concerns
carpeta con un .keep
archivo dentro. El .keep
archivo parece estar vacío. En otras carpetas no hay concerns
carpeta pero hay un .keep
archivo vacío .
¿Alguien sabe cuál es el problema con estos archivos / carpetas?
git
version-control
Alex Vallejo
fuente
fuente
.gitignore
? Prefiero no enviar archivos vacíos.Los archivos .keep son especialmente útiles cuando desea confirmar directorios vacíos con git.
Dato curioso, el nombre
.keep
o no.gitkeep
tiene sentido. puede llamar al archivo.foo
para obtener el mismo efecto, es simplemente una convención legible.Los
.keep
archivos también están allí para ayudar a la transferencia de un vcs a otro, evitando la eliminación de directorios importantes cuando se deshace algo que haría que esos directorios estuvieran vacíos.Por ejemplo, considere un script que intenta
cd dir
ingresar a un directorio que git no rastrea.Es un paradigma de diseño de software que busca disminuir la cantidad de decisiones que los desarrolladores deben tomar, ganando simplicidad, pero no necesariamente perdiendo flexibilidad.
fuente
Preocupaciones es un concepto simple pero poderoso. Existe para la reutilización del código. Básicamente, la idea es extraer fragmentos de código comunes y / o específicos del contexto para limpiar los modelos y evitar que se vuelvan demasiado gordos e inmanejables.
Me gustaría especificar explícitamente que debe utilizar los objetos de servicio para proporcionar una funcionalidad que no es de interés para el objeto específico. Por ejemplo, una organización tiene muchos usuarios. Ahora, el administrador de la organización debe exportar un archivo CSV de todos los usuarios de esta organización. Este código se puede colocar en el modelo de organización, pero como no es responsabilidad del objeto de la organización, este código debe colocarse en una clase en la que simplemente se pasa el objeto de la organización y devuelve el CSV de todos los usuarios.
Siempre que necesite la generación de CSV, puede colocar esa lógica en la clase anterior. Este enfoque mantiene el objeto (en este caso, el modelo de organización) limpio del código que no debería ser su responsabilidad. Un principio general que sigo es: si el código modifica el objeto self, mueva el código a un objeto de servicio.
Nota: Su pregunta era sobre inquietudes, pero pensé en agregar algunas cosas adicionales que sigo para mantener la base del código limpia y manejable, ya que podría ayudar a otros programadores. Ese enfoque anterior es discutible.
fuente