J'apprends les rails.
Quelque part le long de la ligne, j'ai remarqué que des dossiers et des fichiers apparemment aléatoires apparaissent dans le répertoire de mon application rails. Dans certains dossiers, il y a un concerns
dossier contenant un .keep
fichier. Le .keep
fichier semble vide. Dans les autres dossiers, il n'y a pas de concerns
dossier mais un .keep
fichier vide est présent.
Quelqu'un sait-il quel est le problème avec ces fichiers / dossiers?
git
version-control
Alex Vallejo
la source
la source
.gitignore
? Je préfère ne pas valider les fichiers vides.Les fichiers .keep sont particulièrement utiles lorsque vous souhaitez valider des répertoires vides avec git.
Fait amusant, le nom
.keep
ou.gitkeep
n'a pas de sens. vous pouvez appeler le fichier.foo
pour le même effet, c'est simplement une convention lisible.Les
.keep
fichiers sont également là pour faciliter le portage d'un vcs à un autre, empêchant la suppression de répertoires importants lorsque vous annulez la fusion de quelque chose qui rendrait ces répertoires vides.Par exemple, considérons un script qui tente d'
cd dir
accéder à un répertoire non suivi par git.C'est un paradigme de conception de logiciel qui cherche à réduire le nombre de décisions que les développeurs doivent prendre, en gagnant en simplicité, mais sans nécessairement perdre en flexibilité.
la source
Concerns est un concept simple mais puissant. Il existe pour la réutilisabilité du code. Fondamentalement, l'idée est d'extraire des morceaux de code communs et / ou spécifiques au contexte afin de nettoyer les modèles et d'éviter qu'ils deviennent trop gros et ingérables.
Je voudrais spécifier explicitement que vous devez utiliser des objets de service pour fournir des fonctionnalités qui ne concernent pas l'objet spécifique. Par exemple, une organisation a de nombreux utilisateurs. L'administrateur de l'organisation doit maintenant exporter un fichier CSV de tous les utilisateurs de cette organisation. Ce code peut être placé dans le modèle d'organisation, mais comme ce n'est pas la responsabilité de l'objet d'organisation, ce code doit être placé dans une classe où vous passez simplement l'objet d'organisation et il renvoie le CSV de tous les utilisateurs.
Chaque fois que vous avez besoin de la génération CSV, vous pouvez placer cette logique dans la classe ci-dessus. Cette approche maintient l'objet (dans ce cas, le modèle d'organisation) propre du code qui ne devrait pas être de sa responsabilité. Un principe général que je suis: si le code modifie l'objet self, déplacez le code vers un objet de service.
Remarque: votre question concernait des préoccupations, mais j'ai pensé à ajouter des éléments supplémentaires que je suis pour garder la base de code propre et gérable car cela pourrait aider d'autres programmeurs. Cette approche ci-dessus est discutable.
la source