"Robot image"

Essa semana iniciei um projetinho na Resultados Digitais com Ruby, uma ferramenta interna para resolver alguns problemas da nossa infra.

Enfim, percebi que estou adotando uma nova abordagem para tudo que estou fazendo. Automatizo tudo logo que o primeiro comando ‘funciona’!

Comecei a navegar no terminal, precisei criar um arquivo, ou um banco de dados ou configurar alguma coisa.

Logo que inicio crio uma pasta script com um arquivo setup-alguma-coisa dentro e adiciono ao README como usar meu novo script/setup-alguma-coisa.

O processo é mais simples do que simplesmente eu lembrar depois. Então, conforme vou fazendo testes e chegando a exemplos que funcionam, migro os testes para um script bacaninha para reutilizar.

O @pcasaretto escreveu um post massa sobre padronização de setup e como esses padrões entre projetos facilitam a vida. Então de certa forma essa ideia também tem a ver com isso. Sobre manter scripts de script/setup para iniciar o projeto e script/run para rodar.

Sei que meus velhos amigos vão falar: mas nós sempre fizemos o make test, make build, ou make install, não seria isso?

A questão é adotar. Os métodos e práticas precisam ser adotados. Pode se usar make ou uma pasta script com os bons e velhos .sh ou nossos modernos dockers. O importante é não deixar de lado e ferrar o próximo que tentar embarcar no code.

Quanto mais fácil for de fazer o setup, mais fácil será de conseguir contribuições da comunidade.

Quanto mais simples for de fazer o release, mais pessoas vão poder contribuir ao mesmo tempo. Então, antes eu ficava deixando para fazer o Makefile bonitão no final.

Agora estou partindo para um “digito logo existo” estilo TDD.

Digito make test and nada aconteceu? Opa! Hora de criar meu script automatizado :)


Share → Twitter Facebook Linkedin


Hello there, my name is Jônatas Davi Paganini and this is my personal blog.
I'm developer advocate at Timescale and I also have a few open source projects on github.

Check my talks or connect with me via linkedin / twitter / github / instagram / facebook / strava / meetup.