Olá, pessoas!
Trilha Design de Código
JOGO RÁPIDO!
Participantes online
podem responder
“Sim” no chat!
➔ Quem considera a sustentabilidade importante?
➔ Quem se preocupa com sustentabilidade no
código fonte?
Seu código fonte é
sustentável?
Isaac Felisberto de Souza
Engenheiro de Software
ROTEIRO
DE HOJE!
1
O que é sustentabilidade
em desenvolvimento de software?
2 Situações não sustentáveis.
3 Implementando código sustentável.
O que é sustentabilidade
em desenvolvimento de software?
1
O que é
sustentabilidade?
Satisfazer as necessidades atuais
sem comprometer a capacidade
das gerações futuras de satisfazerem
suas próprias necessidades.
➔ Ambiental
➔ Social
➔ Econômico
Em desenvolvimento
de software,
onde a sustentabilidade
se aplica?
➔ Eficiência energética.
➔ Design e arquitetura.
➔ Impacto ambiental.
➔ Ética e responsabilidade social.
➔ Manutenção e descontinuação
responsáveis
Vamos focar em
Design e arquitetura.
Isso nos leva ao
código fonte sustentável!
Satisfazer as necessidades atuais
sem comprometer a capacidade
das gerações futuras
de satisfazerem
suas próprias necessidades.
CÓDIGO para
satisfazer as necessidades atuais
sem comprometer a capacidade
dos PROFISSIONAIS futuros
de satisfazer
NOVAS necessidades.
O que é sustentabilidade… no código fonte?
Código Sustentável
envolve:
Adoção de padrões e práticas
que promovam a modularidade,
a reutilização de componentes,
a escalabilidade e a flexibilidade.
➔ Clean Code.
➔ Design Patterns.
➔ Architectural Patterns.
➔ SOLID.
➔ Dentre outros…
Isso permite a adaptação do software
a novas necessidades
e a minimização do retrabalho,
reduzindo desperdício
e aumentando a eficiência no
desenvolvimento de software.
Só padrões e boas práticas
não garantem um código sustentável
Ser sustentável requer que nossas ações
estejam focadas em NÃO comprometer
a capacidade de outros profissionais
trabalharem no código.
Sustentabilidade
É um conceito mais
abstrato e amplo.
Ser sustentável
É uma ação
concreta e individual.
Situações não sustentáveis.
2
Você
já se deparou com,
ou fez…
Um projeto sem instruções
para compilar e/ou executar.
Você
já se deparou com,
ou fez…
Um projeto com instruções
mas que
haviam passos omitidos.
Você
já se deparou com,
ou fez…
Um projeto cujo scripts
funcionavam “ou não”
de acordo com:
sistema operacional,
versão da linguagem,
versão de ferramentas,
sem isso estar documentado.
Você
já se deparou com,
ou fez…
Um projeto onde não havia
instruções de como
utilizar o software.
Você
já se deparou com,
ou fez…
Um projeto onde não havia
como testar se
as alterações funcionavam.
Você
já se deparou com,
ou fez…
Um projeto
com testes automatizados,
mas sem confiança neles.
Você
já se deparou com,
ou fez…
Um projeto onde não havia
instruções de como atualizar
os ambientes em execução.
Você
já se deparou com,
ou fez…
Um projeto onde
a documentação não condizia
com a situação real do código.
Você
já se deparou com,
ou fez…
Um projeto com dependência
de ferramentas as quais não
havia instruções de uso.
Você
já se deparou com,
ou fez…
Um projeto onde
a organização do código
não fazia sentido, não seguia
um padrão e não havia
explicações sobre.
Você
já se deparou com,
ou fez…
Um projeto sem
versionamento adequado do
código e entregas.
Você
já se deparou com,
ou fez…
Um projeto onde era
necessário fazer perguntas a
outros profissionais para
conseguir trabalhar
Ou… o profissional que sabia
não estava mais presente.
Essas situações não envolvem
só a legibilidade do código
e o uso de design patterns…
Mas tornam o código “não sustentável”
Implementando
código sustentável.
3
Código sustentável
é influenciado e influencia
outros temas relacionados a
engenharia de software.
Arquitetura
➔ Deve considerar aspectos de
negócio como criticidade,
segurança, etc..
➔ Deve suportar o crescimento do
software e do time.
➔ Deve considerar o custo de
execução quando escalar.
Linguagens e
Ferramentas
➔ Deve considerar “o mercado de
desenvolvedores”.
➔ Deve considerar o custo de uso.
➔ Deve considerar a continuidade e
médio e longo prazo.
Código fonte
➔ Não deve depender “de pessoas”.
➔ Documentação deve ser objetiva,
e responder “as perguntas que
todo mundo faz”.
➔ Deve possuir testes confiáveis.
➔ Deve ser possível "rodar
localmente”.
➔ Todos aspectos de
sustentabilidade para o seu
código, vale para seu review.
Integração Contínua
➔ Deve facilitar o merge de código
de diferentes profissionais.
➔ Deve ser automatizada, sem
dependência direta de pessoas.
Entrega Contínua ➔ Deve dar clareza sobre quais
artefatos são entregues
➔ Deve possuir ambientes definidos
e de fácil atualização.
➔ Deve possibilitar versionamento
das entregas.
Pessoas ➔ Deve haver comunicação.
➔ Deve haver clareza das
responsabilidades.
➔ Devem absorver a entrada e saída
de profissionais.
Código só é sustentável quando
além dos padrões e boas práticas
permite que novos profissionais
possam dar manutenção e evoluí-lo!
Isaac Felisberto de Souza
Engenheiro de Software
isaacsouza@gmail.com
linkedin.com/in/isaacfsouza
Obrigado!
Dúvidas?
Visite:
www.guia.dev
Conheça:
PARA EMPRESAS
Siga e compartilhe:
@guia_dev
Guia Dev

Seu código fonte é sustentável?

  • 1.
  • 2.
    JOGO RÁPIDO! Participantes online podemresponder “Sim” no chat! ➔ Quem considera a sustentabilidade importante? ➔ Quem se preocupa com sustentabilidade no código fonte?
  • 3.
    Seu código fonteé sustentável? Isaac Felisberto de Souza Engenheiro de Software
  • 4.
    ROTEIRO DE HOJE! 1 O queé sustentabilidade em desenvolvimento de software? 2 Situações não sustentáveis. 3 Implementando código sustentável.
  • 5.
    O que ésustentabilidade em desenvolvimento de software? 1
  • 6.
    O que é sustentabilidade? Satisfazeras necessidades atuais sem comprometer a capacidade das gerações futuras de satisfazerem suas próprias necessidades. ➔ Ambiental ➔ Social ➔ Econômico
  • 7.
    Em desenvolvimento de software, ondea sustentabilidade se aplica? ➔ Eficiência energética. ➔ Design e arquitetura. ➔ Impacto ambiental. ➔ Ética e responsabilidade social. ➔ Manutenção e descontinuação responsáveis
  • 8.
    Vamos focar em Designe arquitetura. Isso nos leva ao código fonte sustentável!
  • 9.
    Satisfazer as necessidadesatuais sem comprometer a capacidade das gerações futuras de satisfazerem suas próprias necessidades. CÓDIGO para satisfazer as necessidades atuais sem comprometer a capacidade dos PROFISSIONAIS futuros de satisfazer NOVAS necessidades. O que é sustentabilidade… no código fonte?
  • 10.
    Código Sustentável envolve: Adoção depadrões e práticas que promovam a modularidade, a reutilização de componentes, a escalabilidade e a flexibilidade. ➔ Clean Code. ➔ Design Patterns. ➔ Architectural Patterns. ➔ SOLID. ➔ Dentre outros… Isso permite a adaptação do software a novas necessidades e a minimização do retrabalho, reduzindo desperdício e aumentando a eficiência no desenvolvimento de software.
  • 11.
    Só padrões eboas práticas não garantem um código sustentável Ser sustentável requer que nossas ações estejam focadas em NÃO comprometer a capacidade de outros profissionais trabalharem no código.
  • 12.
    Sustentabilidade É um conceitomais abstrato e amplo. Ser sustentável É uma ação concreta e individual.
  • 13.
  • 14.
    Você já se deparoucom, ou fez… Um projeto sem instruções para compilar e/ou executar.
  • 15.
    Você já se deparoucom, ou fez… Um projeto com instruções mas que haviam passos omitidos.
  • 16.
    Você já se deparoucom, ou fez… Um projeto cujo scripts funcionavam “ou não” de acordo com: sistema operacional, versão da linguagem, versão de ferramentas, sem isso estar documentado.
  • 17.
    Você já se deparoucom, ou fez… Um projeto onde não havia instruções de como utilizar o software.
  • 18.
    Você já se deparoucom, ou fez… Um projeto onde não havia como testar se as alterações funcionavam.
  • 19.
    Você já se deparoucom, ou fez… Um projeto com testes automatizados, mas sem confiança neles.
  • 20.
    Você já se deparoucom, ou fez… Um projeto onde não havia instruções de como atualizar os ambientes em execução.
  • 21.
    Você já se deparoucom, ou fez… Um projeto onde a documentação não condizia com a situação real do código.
  • 22.
    Você já se deparoucom, ou fez… Um projeto com dependência de ferramentas as quais não havia instruções de uso.
  • 23.
    Você já se deparoucom, ou fez… Um projeto onde a organização do código não fazia sentido, não seguia um padrão e não havia explicações sobre.
  • 24.
    Você já se deparoucom, ou fez… Um projeto sem versionamento adequado do código e entregas.
  • 25.
    Você já se deparoucom, ou fez… Um projeto onde era necessário fazer perguntas a outros profissionais para conseguir trabalhar Ou… o profissional que sabia não estava mais presente.
  • 26.
    Essas situações nãoenvolvem só a legibilidade do código e o uso de design patterns… Mas tornam o código “não sustentável”
  • 27.
  • 28.
    Código sustentável é influenciadoe influencia outros temas relacionados a engenharia de software.
  • 29.
    Arquitetura ➔ Deve consideraraspectos de negócio como criticidade, segurança, etc.. ➔ Deve suportar o crescimento do software e do time. ➔ Deve considerar o custo de execução quando escalar.
  • 30.
    Linguagens e Ferramentas ➔ Deveconsiderar “o mercado de desenvolvedores”. ➔ Deve considerar o custo de uso. ➔ Deve considerar a continuidade e médio e longo prazo.
  • 31.
    Código fonte ➔ Nãodeve depender “de pessoas”. ➔ Documentação deve ser objetiva, e responder “as perguntas que todo mundo faz”. ➔ Deve possuir testes confiáveis. ➔ Deve ser possível "rodar localmente”. ➔ Todos aspectos de sustentabilidade para o seu código, vale para seu review.
  • 32.
    Integração Contínua ➔ Devefacilitar o merge de código de diferentes profissionais. ➔ Deve ser automatizada, sem dependência direta de pessoas.
  • 33.
    Entrega Contínua ➔Deve dar clareza sobre quais artefatos são entregues ➔ Deve possuir ambientes definidos e de fácil atualização. ➔ Deve possibilitar versionamento das entregas.
  • 34.
    Pessoas ➔ Devehaver comunicação. ➔ Deve haver clareza das responsabilidades. ➔ Devem absorver a entrada e saída de profissionais.
  • 35.
    Código só ésustentável quando além dos padrões e boas práticas permite que novos profissionais possam dar manutenção e evoluí-lo!
  • 36.
    Isaac Felisberto deSouza Engenheiro de Software isaacsouza@gmail.com linkedin.com/in/isaacfsouza Obrigado! Dúvidas? Visite: www.guia.dev Conheça: PARA EMPRESAS Siga e compartilhe: @guia_dev Guia Dev