Taq

Eustáquio Rangel

Desenvolvedor, pai, metalhead

Ambiente mínimo - repositórios de código

Publicado em Developer

Chapeiro

Esse é o segundo artigo de uma série falando de ambiente mínimo, o primeiro foi sobre o uso do terminal e navegador. Nesse eu quero comentar sobre como que podemos lidar com nossos repositórios de código, também levando em conta a questão de um ambiente mínimo e enxuto.

Algum tempo atrás eu estava tarde da noite em um posto de rodovia e decidi pedir um lanche, se não me engano, um bauru, enquanto esperava o ônibus retornar a viagem. Havia acabado de acordar e enquanto o chapeiro fazia o lanche, fiquei observando como ele executava todos os procedimentos necessários. O rapaz era de uma eficiência tremenda, pegava os pedidos no balcão, via quais eram os grelhados necessários, e enquanto lidava com os que já estavam na chapa, tomando cuidado para não passarem do ponto, colocava os novos e ia montando os lanches com os que já estavam prontos. Naquela hora da madrugada, devia ser lá pelas 2 ou 3 da manhã, havia um movimento até considerável, era um posto ótimo, e eu que havia acordado faziam poucos minutos ficava vendo esse procedimento todo de forma quase hipnótica. No final, após todos os lanches prontos, o rapaz, mantendo a velocidade e eficiência, pega a espátula, raspa e limpa toda a chapa, jogando algumas poucas sobras no local reservado para isso. Nessa hora, me bateu a idéia de uma analogia com o desenvolvimento de software.

Com a facilidade e praticidade da utilização de repositórios de código, seja em um computador próprio, seja na nuvem com serviços como o Github, Bitbucket ou Gitlab, algumas vezes nós temos o hábito de clonar o repositório e trabalhar nele em nossos computadores pessoais por meses, ou até anos, somente fazendo nossos commits e pushes para o repositório remoto. Isso funciona sem problemas, mas não exercitamos algo que na minha opinião é primordial para ter um repositório enxuto e um projeto que não apresenta surpresas: apagar o repositório remoto após fazer o seu trabalho, enviando seus commits para o repositório remoto.

Já faz anos que eu sigo essa prática. No meu computador, não tem absolutamente nada de código de qualquer projeto que eu trabalhe, seja nos da minha empresa, a Bluefish, seja nos dos clientes à que nós prestamos serviço. Minha rotina é chegar no trabalho, clonar o projeto, trabalhar nele e no final do período enviar os commmits para o repositório remoto e fazer igual o rapaz da chapa: apagar o código e limpar o ambiente, deixando pronto para a próxima rodada. Isso nos dá alguns benefícios:

Deixar o código muito tempo parado no mesmo lugar, sem exercitar ele dessa forma, acaba fazendo com que ele crie "vícios" e raízes com o ambiente onde ele está sendo desenvolvido. Existe o termo code smell, que se refere à alguns sintomas no código fonte que podem indicar um problema mais profundo, se referindo à como o código é desenvolvido, as métricas envolvidas, etc.

Nesse caso, tomo a liberdade de chamar esse tipo de reflexo de código que fica muito tempo em um ambiente sem se exercitar em um ambiente limpo de code taste, ou seja, código que fica tanto tempo em um mesmo lugar que começa a criar um determinado "sabor", um "gosto", pois está ficando "defumado", "marinado", impregnado com todo o ambiente em que ele se encontra, ambiente esse que não foi devidamente sanitizado entre todos os projetos que ele contém e acaba "contaminando" um projeto seja com o ambiente já "azeitado" seja contaminando com outro.

O esquema é fazer parecido com o rapaz da chapa: assim que termina uma determinada "leva" de grelhados, na qual ele não grelha mais que 2 ou 3, ele limpa o ambiente, o deixando pronto para a próxima rodada, sem deixar resquícios que possam interferir nos outros. Pedir um bauru e vir um pedaço de hambúrguer seria estranho, assim como um filé de frango com gosto de costela. Cuidar e limpar o ambiente de trabalho é uma necessidade para a produção de melhores resultados.

Experimentem, não deixem o seu código criar um gosto estranho.

Tags:




Comentários

Sem nenhum comentário.

comments powered by Disqus