Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[AgileBR'19] Aprenda a construir uma dev-cli do zero

[AgileBR'19] Aprenda a construir uma dev-cli do zero

No dia-a-dia de um projeto de desenvolvimento de software, temos além da escrita regular de código, muitas outras tarefas como se conectar a uma VPN; atualizar e integrar código; se conectar e fazer consultas em DBs; configurar ambiente de desenvolvimento ou teste; além de investigar problemas. Quando somado, o tempo gasto nessas tarefas é considerável.
Composta por diversos scripts, a dev-cli é uma interface de comando no terminal que visa facilitar a vida e dar um boost na produtividade das pessoas desenvolvedoras. Essa técnica não é nova, no entanto, poucas pessoas desenvolvedoras conhecem e desfrutam de seus benefícios.
Vamos construir uma dev-cli para um projeto open source juntas, a partir de um bootstrap. Tendo colocado a mão na massa, vai ser mais fácil adotar em seu projeto.

Camilla Crispim

September 11, 2019
Tweet

More Decks by Camilla Crispim

Other Decks in Technology

Transcript

  1. # 1 - Entender e se familiarizar com a base

    de código # 2 - Ter conhecimento da aplicação "Quero poder contribuir!" "Quero ajudar com a minha experiência!" "Quero aprender" P E S S O A N O V A
  2. Todos os dias P E S S O A D

    E S E N V O L V E DO R A
  3. "O que é a aplicação? "Como funciona?" Quais casos de

    uso tem?" "Como configurar, instalar e começar a codar?" documentação P E S S O A N O V A
  4. "O que é a aplicação? "Como funciona?" Quais casos de

    uso tem?" "Como configurar, instalar e começar a codar?" documentação L O N G A P E S S O A N O V A
  5. "O que é a aplicação? "Como funciona?" Quais casos de

    uso tem?" "Como configurar, instalar e começar a codar?" documentação L O N G A P E S S O A N O V A M O R O S A
  6. "O que é a aplicação? "Como funciona?" Quais casos de

    uso tem?" "Como configurar, instalar e começar a codar?" documentação L O N G A P E S S O A N O V A M O R O S A D E S A T U A L I Z A D A
  7. "O que é a aplicação? "Como funciona?" Quais casos de

    uso tem?" "Como configurar, instalar e começar a codar?" documentação L O N G A P E S S O A N O V A M O R O S A D E S A T U A L I Z A D A S U B J E T I V A
  8. "O que é a aplicação? "Como funciona?" Quais casos de

    uso tem?" "Como configurar, instalar e começar a codar?" documentação L O N G A P E S S O A N O V A M O R O S A D E S A T U A L I Z A D A S U B J E T I V A P R O P E N S A A E R R O
  9. documentação x dev-cli D O C U M E N

    T A Ç Ã O E X E C U T A V E L Escrever script >>>> Escrever documentação N Ó S D E V C L I
  10. documentação x dev-cli D O C U M E N

    T A Ç Ã O E X E C U T A V E L D O C U M E N T A Ç Ã O A T U A L I Z A D A Escrever script >>>> Escrever documentação N Ó S D E V C L I
  11. dev-cli setup Um exemplo Ú N I C O C

    O M A N D O "Quais dependências preciso?" "Tenho todas instaladas?" "Quais versões mínimas?" P E S S O A N O V A
  12. dev-cli setup Um exemplo S T A T U S

    D O A M B I E N T E L O C A L Ú N I C O C O M A N D O "Quais dependências preciso?" "Tenho todas instaladas?" "Quais versões mínimas?" P E S S O A N O V A
  13. dev-cli setup Um exemplo S T A T U S

    D O A M B I E N T E L O C A L I N S T A L A R C O N F I G U R A R, F A Z E R B U I L D I N I C I A R A A P L I C A Ç Ã O Ú N I C O C O M A N D O "Quais dependências preciso?" "Tenho todas instaladas?" "Quais versões mínimas?" P E S S O A N O V A
  14. automação de tarefas P E S S O A D

    E S E N V O L V E D O R A
  15. automação de tarefas P E S S O A D

    E S E N V O L V E D O R A "Qual o link de…?" "Deixa ver se eu não quebrei nada que tava funcionando..." "Eita, deixa eu ver o erro que deu..." "Não sei porque quebrou no CI. Funciona na minha máquina!"
  16. automação de tarefas P E S S O A D

    E S E N V O L V E D O R A "Qual o link de…?" "Deixa ver se eu não quebrei nada que tava funcionando..." "Eita, deixa eu ver o erro que deu..." "Não sei porque quebrou no CI. Funciona na minha máquina!"
  17. dev-cli url [alias] [all] lista as URLs relevantes para o

    projeto dev-cli test [all] executar todos os testes, em todos os níveis da pirâmide dev-cli dance combinação de git pull -r && build && test all && git push dev-cli ci-server [status] verificar o status atual do servidor de ci; dev-cli git [say-2] [msg-commit] mensagem customizada de commit, para incluir o par que está trabalhando na issue dev-cli * Muitas possibilidades!
  18. dev-cli log [env] imprime logs da app/serviço em determinado ambiente

    dev-cli vpn comando para conectar na VPN dev-cli aws comandos for interacting with Amazon Web Services dev-cli create user comando para criar um usuário do sistema dev-cli ssh [env] comandos para fazer ssh nas instâncias aws dev-cli * Muitas possibilidades!
  19. + Plug and Play - cuidado com a mágica +

    ganhar velocidade e confiança - nem tudo pede automação dev-cli tudo? Hold on
  20. + Plug and Play - cuidado com a mágica +

    ganhar velocidade e confiança - nem tudo pede automação + experiência de desenvolvimento - nem todo projeto precisa de dev-cli dev-cli tudo? Hold on
  21. - Projeto Open Source - Não discrimina pessoas travestis e

    transexuais; - Ajuda na contratação dessas pessoas em busca de emprego e/ou na indicação de serviços verdadeiramente respeitosos com essas pessoas; - A adição de uma dev-cli pode ajudar pessoas desenvolvedoras dispostas a contribuir com esse projeto; - Conheça em: http://transervicos.org Contexto: O projeto https://www.freetheessence.com.br/nova-economia/modelos-disruptivos/transervicos-uma-plataforma- para-quem-nao-discrimina-trans-e-travestis/
  22. Tech Stack R U B Y O N R A

    I L S J A V A S C R I P T C S S H T M L P O S T G R E S D O C K E R
  23. Tech Stack R U B Y O N R A

    I L S J A V A S C R I P T C S S H T M L P O S T G R E S D O C K E R W E B D B D O C K E R C O M P O S E
  24. dev-cli bootstrap B O O T S T R A

    P D E V C L I https://github.com/millafalconi/devcli https://github.com/mavcunha/devcli
  25. M O B P R O G R A M

    M I N G D E S A F I O S
  26. M O B P R O G R A M

    M I N G P A R E A M E N T O D E S A F I O S
  27. M O B P R O G R A M

    M I N G P A R E A M E N T O 5 M I N U T O S D E S A F I O S
  28. M O B P R O G R A M

    M I N G P A R E A M E N T O T R O C A 1 P E S S O A 5 M I N U T O S D E S A F I O S
  29. M O B P R O G R A M

    M I N G P A R E A M E N T O T R O C A 1 P E S S O A 5 M I N U T O S D E S A F I O S C O L A C H E A T S H E E T
  30. M O B P R O G R A M

    M I N G P A R E A M E N T O T R O C A 1 P E S S O A 5 M I N U T O S D E S A F I O S S E T U P D A D E V C L I D E S A F I O #1 C O L A C H E A T S H E E T
  31. dev-cli dev [init] [start] [stop] atalhos para configurar e rodar

    a aplicação no ambiente local de desenvolvimento Os Desafios
  32. dev-cli dev [init] [start] [stop] atalhos para configurar e rodar

    a aplicação no ambiente local de desenvolvimento dev-cli setup atalhos para ajudar com o setup do projeto Os Desafios
  33. Os Desafios dev-cli dev [init] [start] [stop] atalhos para configurar

    e rodar a aplicação no ambiente local de desenvolvimento dev-cli setup atalhos para ajudar com o setup do projeto dev-cli test [unit] [style] [all] atalhos para executar testes
  34. Os Desafios dev-cli dev [init] [start] [stop] atalhos para configurar

    e rodar a aplicação no ambiente local de desenvolvimento dev-cli setup atalhos para ajudar com o setup do projeto dev-cli test [unit] [style] [all] atalhos para executar testes dev-cli url [all] [alias] Lista URLs relevantes
  35. Os Desafios dev-cli dev [init] [start] [stop] atalhos para configurar

    e rodar a aplicação no ambiente local de desenvolvimento dev-cli setup atalhos para ajudar com o setup do projeto dev-cli test [unit] [style] [all] atalhos para executar testes dev-cli url [all] [alias] Lista URLs relevantes dev-cli dance Faz o pull do código mais atual do git, executa os testes, verifica status do CI e faz push do código.
  36. Referências - https://pt.slideshare.net/tdc-globalcode/tdc2018sp-trilha-agile-onboarding-tcnico-integrand o-pessoas-em-times-de-desenvolvimento-agil-de-forma-efetiva - https://www.freetheessence.com.br/nova-economia/modelos-disruptivos/transervicos-uma -plataforma-para-quem-nao-discrimina-trans-e-travestis/ - https://github.com/mavcunha/devcli -

    https://github.com/millafalconi/transervicos - http://iszlai.github.io/post/the_dev_cli/ - https://pt.slideshare.net/AndreiTognolo/agilidade-no-nvel-de-codificao-reduzindo-interrupe s-passivas - https://blog.ninlabs.com/2013/01/programmer-interrupted/ - https://roselmamendes.github.io/tec/entrega-continua-1/ - https://linuxacademy.com/howtoguides/posts/show/topic/14343-automating-common-task s-with-scripts