Skip to content

Latest commit

 

History

History
160 lines (127 loc) · 7.94 KB

File metadata and controls

160 lines (127 loc) · 7.94 KB

Guia de Conceitos de Software

Conceitos essenciais que todo desenvolvedor de software deve conhecer para criar sistemas mais robustos, manuteníveis e escaláveis.


Fundamentos de Programação


Padrões de Projeto (Design Patterns)

  • Strategy: Permite que algoritmos sejam selecionados em tempo de execução.
  • Chain of Responsibility: Encadeia objetos para processar uma requisição.
  • Fluent API: Técnica para criar APIs mais legíveis e expressivas.
  • Builder: Separa a construção de objetos complexos de sua representação.
  • Factory: Centraliza a criação de objetos, promovendo flexibilidade.
  • Singleton: Garante que uma classe tenha apenas uma instância.
  • Observer: Notifica objetos sobre mudanças de estado.
  • Decorator: Adiciona comportamentos a objetos dinamicamente.
  • Adapter: Permite que classes com interfaces incompatíveis trabalhem juntas.
  • Facade: Simplifica a interação com subsistemas complexos.

Arquitetura de Software


Banco de Dados


Desenvolvimento de Software


Resiliência e Escalabilidade


Observabilidade e Monitoramento


Outros Conceitos Importantes


Padrões de Projeto Adicionais

  • Proxy: Controla o acesso a um objeto.

  • Composite: Trata objetos individuais e compostos de forma uniforme.

  • State: Permite que um objeto altere seu comportamento quando seu estado muda.

  • Template Method: Define o esqueleto de um algoritmo, permitindo que subclasses redefinam etapas específicas.

  • Clean Architecture: Organização de código que promove separação de responsabilidades e independência de frameworks, interfaces e detalhes de implementação.


Java