O documento discute a importância da sustentabilidade no desenvolvimento de software. Apresenta o conceito de código sustentável e como ele envolve a adoção de padrões e práticas que promovam a modularidade, reutilização e flexibilidade. Também descreve situações não sustentáveis como falta de instruções ou documentação e como implementar práticas de código sustentável como arquitetura, ferramentas e processos que permitam a evolução contínua do software.
2. JOGO RÁPIDO!
Participantes online
podem responder
“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?
Satisfazer as 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,
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
9. 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?
10. 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.
11. 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.
14. Você
já se deparou com,
ou fez…
Um projeto sem instruções
para compilar e/ou executar.
15. Você
já se deparou com,
ou fez…
Um projeto com instruções
mas que
haviam passos omitidos.
16. 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.
17. Você
já se deparou com,
ou fez…
Um projeto onde não havia
instruções de como
utilizar o software.
18. Você
já se deparou com,
ou fez…
Um projeto onde não havia
como testar se
as alterações funcionavam.
19. Você
já se deparou com,
ou fez…
Um projeto
com testes automatizados,
mas sem confiança neles.
20. Você
já se deparou com,
ou fez…
Um projeto onde não havia
instruções de como atualizar
os ambientes em execução.
21. Você
já se deparou com,
ou fez…
Um projeto onde
a documentação não condizia
com a situação real do código.
22. Você
já se deparou com,
ou fez…
Um projeto com dependência
de ferramentas as quais não
havia instruções de uso.
23. 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.
24. Você
já se deparou com,
ou fez…
Um projeto sem
versionamento adequado do
código e entregas.
25. 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.
26. 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”
29. 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.
30. 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.
31. 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.
32. Integração Contínua
➔ Deve facilitar 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 ➔ Deve haver 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 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