Uma abordagem de pensamento sistêmico para introduzir Kanban
Você está pensando introduzir o método Kanban na sua empresa ou onde …
A linguagem Go tem uma gama de CLIs que facilitam a vida do desenvolvedor, uma das mais usadas com toda certeza é o get
.
go get <url do pacote sem o protocolo>
O get
é responsável por baixar os pacotes, bibliotecas que nossos projetos em Go, ele utiliza controle de versão para baixar os pacotes, então para usarmos o get
além do Go precisamos ter algum sistema de controle de versão, como por exemplo o git
, instalado em nossa máquina.
Isso a primeira vista parece gênial, o nosso código Go que está em um github ou em qualquer outra plataforma de controle de versão já está disponível para o uso da comunidade e a recíproca é verdadeira!
Quando executamos o comando get
em nossa máquina ele realiza o clone do repositório em nosso $GOPATH
e quando quisermos é possível atualizar o repositório executando o mesmo commando que executamos anteriormente passando o paramêtro -u
.
go get -u <url do pacote sem o protocolo>
Nosso projeto projeto não utiliza somente a biblioteca padrão do Go, usa também bibliotecas como o Gizmo e também uma base de testes bem grande, por isso usamos o Travis CI para rodar nossos testes a cada commit no Github para garantir que tudo está funcionando a cada alteração que fazemos.
O Travis cria um novo container, com o Go e todas as nossas dependências a cada commit, resumindo ele faz executa o go get
para todas as nossas dependências a cada commit, e se alguma biblioteca fizer alguma atualização que quebre compatibilidade nossos testes vão falhar, nosso build vai quebrar, e agora?
Alterar nosso código? Deixar de usar bibliotecas da comunidade e usar só a padrão fornecida pelo Go, já que o google garante a compatibilidade na vesão 1.x?
Calma lá, não precisamos fazer nada disso, podemos usar ferramentas como o Godep que soluciona para nós esse tipo de problema.
Vou explicar o que o Godep
faz em linhas gerais e entro com mais detalhes nele em um próximo post.
O Godep básicamente guarda o hash o commit que usamos de cada biblioteca que usamos e quando vamos executar um comando, como por exemplo godep go test ./...
e lê volta o commit no repositório de cada biblioteca para o commit que usamos para depois executar o go test
.
Espero que tenham gostado e até o próximo post.