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

As maravilhas de CI em projetos Kotlin

Marylly
October 15, 2019

As maravilhas de CI em projetos Kotlin

Marylly

October 15, 2019
Tweet

More Decks by Marylly

Other Decks in Technology

Transcript

  1. Atua com software desde 2005, formada em Sistemas de Informação

    (UMESP, 13), pós-graduada em Gestão Pública (FESPSP, 2015), Facilitadora/instrutora do #MinasProgramam, Consultora de software na ThoughtWorks. Menina e mulher de família simples de cor da região periférica de SP 2 Deixe me apresentar
  2. Por que eu estou aqui? › Ação afirmativa › Desigualdade

    de gênero › Desigualdade racial › Desigualdade social › Melhor networking 3
  3. O que é Continuous Integration? (Ou Integração contínua) › Prática

    de juntar com frequência alterações de código no repositório central/principal, testes são executados para obter feedback rápido sobre a qualidade de uma implementação, originando um processo cultural por um time, num processo automatizado manifestado por um Pipeline. 4
  4. O que é Pipeline? É uma esteira com etapas de

    empacotamento, testes e avaliação de qualidade de uma implementação integrada ao um repositório central/principal. É idealmente interessante considerar as seguintes elementares etapas: › Build (Construção do pacote de entrega) › Lint (Análise estática, sintaxe e qualidade de código) › Testes de Unidade › Testes de Integração › Testes E2E (Jornada do Usuário ou Fim-a-Fim) › Deployment (Entrega em Produção) 5
  5. Mas pra quê isso tudo? › Automatizar o processo de

    avaliação de código de entregas de funcionalidades e bugs através dos feedbacks frequentes expostos no Pipeline antes disponibilizar em produção, melhorando a produtividade e qualidade do software. 6
  6. 8 MARY, ESTOU ACHANDO INCRÍVEL, MAS SÓ DE PENSAR NO

    PROJETO QUE ATUO HOJE, JÁ BATE O DESESPERO. POR ONDE POSSO COMEÇAR?
  7. Algumas possibilidades › Testes, foque em TDD › Análise Estática

    › Coverage › Exercite localmente › Faça gradualmente essas melhorias 9
  8. TechStack da Demo › Kotlin › Ktor › Kotlin-testing ›

    Ktlint › Detekt › Jacoco › CircleCI 10
  9. 11

  10. Próximos passos › Testes de Performance › Testes de Carga

    › Testes de Caos › Continuous Delivery › Continuous Deployment › Métricas de Desempenho › Observability › Melhoria Contínua › Cultura Devops 12
  11. Referências › O que significa integração Contínua: https://aws.amazon.com/pt/devops/continuous-integration/ › Manifesto

    Ágil: https://www.manifestoagil.com.br › Entrega Contínua: O que é e como aplicar: https://www.opus-software.com.br/o-que-e-entrega-continua/ › Ktlint: An anti-bikeshedding Kotlin linter with built-in formatter: https://github.com/pinterest/ktlint › JaCoCo Java Code Coverage Library: https://www.eclemma.org/jacoco › Detekt: Static code analysis for Kotlin: https://github.com/arturbosch/detekt › CircleCI: Continuous Integration and Delivery: https://circleci.com/ 14