Estou aprendendo trilhos.
Em algum lugar ao longo da linha, percebi que pastas e arquivos aparentemente aleatórios estão aparecendo no diretório do meu aplicativo Rails. Em algumas pastas, há uma concerns
pasta com um .keep
arquivo dentro dela. O .keep
arquivo parece estar vazio. Em outras pastas, não há concerns
pasta, mas um .keep
arquivo vazio está presente.
Alguém sabe o que está acontecendo com esses arquivos / pastas?
git
version-control
Alex Vallejo
fonte
fonte
.gitignore
? Prefiro não enviar arquivos vazios.Os arquivos .keep são especialmente úteis quando você deseja comprometer diretórios vazios com o git.
Curiosidade, o nome
.keep
ou.gitkeep
não tem sentido. você pode chamar o arquivo.foo
para o mesmo efeito, é apenas uma convenção legível.Os
.keep
arquivos também estão lá para ajudar a portagem de um vcs para outro, evitando a exclusão de diretórios importantes quando você desfaz a mesclagem de algo que faria com que esses diretórios ficassem vazios.Por exemplo, considere um script que tenta
cd dir
entrar em um diretório que não é rastreado pelo git.É um paradigma de design de software que busca diminuir o número de decisões que os desenvolvedores precisam tomar, ganhando simplicidade, mas não necessariamente perdendo flexibilidade.
fonte
Preocupações é um conceito simples, mas poderoso. Ele existe para reutilização de código. Basicamente, a ideia é extrair pedaços de código comuns e / ou específicos do contexto para limpar os modelos e evitar que fiquem muito gordos e incontroláveis.
Gostaria de especificar explicitamente que você deve usar objetos de serviço para fornecer funcionalidade que não é a preocupação do objeto específico. Por exemplo, uma organização tem muitos usuários. Agora, o administrador da organização precisa exportar um CSV de todos os usuários desta organização. Este código pode ser colocado no modelo de organização, mas como não é de responsabilidade do objeto da organização, este código deve ser colocado em uma classe onde você apenas passa o objeto da organização e ele retorna o CSV de todos os usuários.
Sempre que você precisar de geração de CSV, você pode colocar essa lógica na classe acima. Essa abordagem mantém o objeto (neste caso, o modelo de organização) limpo do código que não deveria ser de sua responsabilidade. Um princípio geral que sigo é: se o código está modificando o objeto self, mova o código para um objeto de serviço.
Observação: sua pergunta era sobre preocupações, mas pensei em adicionar algumas coisas extras que sigo para manter a base de código limpa e gerenciável, pois pode ajudar outros programadores. Essa abordagem acima é discutível.
fonte