Clean Code (Código Limpo): Um conjunto de práticas focadas em escrever códigos que sejam fáceis de ler, entender e manter por qualquer desenvolvedor.
SOLID: Um acrônimo para cinco princípios de design orientado a objetos que visam tornar o software mais compreensível, flexível e fácil de manter.
DRY (Don’t Repeat Yourself): O princípio de evitar a duplicação de lógica, garantindo que cada pedaço de conhecimento tenha uma representação única dentro do sistema.
KISS (Keep It Simple, Stupid): Uma filosofia que defende que a maioria dos sistemas funciona melhor se forem mantidos simples em vez de complicados.
YAGNI (You Aren’t Gonna Need It): Uma orientação para não adicionar funcionalidades ao código até que elas sejam realmente necessárias, evitando desperdício e complexidade.
Object Calisthenics: Um conjunto de 9 regras de programação focadas em melhorar a qualidade do código orientado a objetos, como “não usar o ‘else'” ou “apenas um ponto por linha”.
GRASP: Padrões que ajudam a atribuir responsabilidades a classes e objetos de forma lógica e organizada.
Refactoring (Refatoração): O processo de reestruturar um código existente sem alterar seu comportamento externo, visando melhorar sua estrutura interna e clareza.
Metodologias de Desenvolvimento e Testes
TDD (Test Driven Development): Técnica onde você escreve um teste unitário antes mesmo de escrever o código da funcionalidade, guiando o desenvolvimento pelo teste.
BDD (Behavior Driven Development): Uma evolução do TDD que foca no comportamento do software sob o ponto de vista do negócio, usando uma linguagem natural (como o Gherkin).
ATDD (Acceptance Test Driven Development): Similar ao BDD, mas focado em critérios de aceitação definidos em conjunto por desenvolvedores, testadores e clientes.
Shift-Left Testing: A prática de realizar testes o mais cedo possível no ciclo de vida do desenvolvimento para encontrar falhas rapidamente.
Mutation Testing (Testes de Mutação): Uma técnica que altera pequenas partes do código fonte para verificar se os testes existentes são capazes de detectar essas mudanças (testando a qualidade dos testes).
Static Analysis (Análise Estática): Verificação do código sem executá-lo, geralmente feita por ferramentas automáticas para encontrar erros de sintaxe, vulnerabilidades ou desvios de padrão.
Dynamic Analysis (Análise Dinâmica): Avaliação do software durante sua execução para medir performance, uso de memória e comportamento em tempo real.
Arquitetura e Infraestrutura
Twelve-Factor App (12-Factor): Uma metodologia para construir aplicações modernas, escaláveis e portáteis, especialmente voltada para ambientes de nuvem (SaaS).
DDD (Domain-Driven Design): Uma abordagem de design de software complexo que foca em alinhar a estrutura do código com o domínio e as regras de negócio.
Design Patterns (Padrões de Projeto GoF): Soluções típicas para problemas comuns que ocorrem no design de software, catalogadas originalmente pelo “Gang of Four”.
Chaos Engineering: A disciplina de realizar experimentos em um sistema para testar sua capacidade de resistir a condições turbulentas e falhas inesperadas em produção.
Processos e Cultura de Entrega
Continuous Integration (CI): A prática de integrar o código de todos os desenvolvedores em um repositório compartilhado várias vezes ao dia, validando-o com builds e testes automáticos.
Continuous Deployment/Delivery (CD): A automação da entrega do software. No Delivery, o código está sempre pronto para ser lançado; no Deployment, ele é lançado automaticamente em produção.
DevOps: Uma cultura e conjunto de práticas que une o desenvolvimento (Dev) e as operações (Ops) para acelerar o ciclo de entrega com alta qualidade.
Site Reliability Engineering (SRE): Uma abordagem do Google que aplica conceitos de engenharia de software para resolver problemas de operações e infraestrutura.
Code Review (Revisão de Código): O processo onde desenvolvedores examinam o código uns dos outros para identificar erros e compartilhar conhecimento.
Pair Programming (Programação em Par): Técnica onde dois desenvolvedores trabalham juntos em uma única estação de trabalho, um escrevendo e o outro revisando em tempo real.
Normas e Modelos de Maturidade
ISO/IEC 25010: Uma norma internacional que define um modelo de qualidade para produtos de software, avaliando características como funcionalidade, usabilidade e segurança.
CMMI: Um modelo de referência que ajuda organizações a melhorar seus processos de desenvolvimento e manutenção de produtos.
MPS.BR: Um modelo brasileiro focado na melhoria de processos de software, adaptado à realidade das empresas nacionais.
TQM (Total Quality Management): Uma abordagem de gestão que busca a qualidade total em todos os processos organizacionais, aplicada aqui ao ciclo de vida do software.