DEV Community

Cover image for Verdades Duras sobre Desenvolvimento de Software

Verdades Duras sobre Desenvolvimento de Software

Arquitetura

  • A arquitetura deve evoluir conforme as necessidades do negócio.
  • Microserviços não são a solução ideal para todos os cenários.
  • A modularização é uma solução atemporal e resolve vários problemas.
  • A adoção de Clean Architecture ou Hexagonal Architecture pode atrasar o projeto.
  • A escolha da arquitetura certa é mais importante do que seguir modas.

Design

  • Abstrações desnecessárias podem aumentar a complexidade.
  • DDD é sobre compreender e lidar com a complexidade do negócio, não sobre siglas ou organização de ficheiros.
  • Design Patterns não são padrões universais de design.
  • Soluções simples têm maior durabilidade.

Complexidade

  • A complexidade cresce com o negócio.
  • Complexidade representa custos, mesmo que não seja visível.
  • A complexidade prematura pode prejudicar a evolução do projeto.
  • Reduzir a complexidade inicial não impede o crescimento futuro.

Modelagem

  • UML ainda apresenta diagramas úteis.
  • Modelar processos reduz custos de implementação.
  • Diagramas claros facilitam o desenvolvimento.
  • Modelar antecipadamente melhora a comunicação da equipa.
  • Modelos bem feitos tornam a manutenção e evolução do sistema mais simples.

Cloud

  • Soluções em cloud podem ser caras e exigem um planeamento cuidadoso.
  • Escalabilidade infinita tem um custo elevado; otimize os recursos sempre que possível.
  • Existe muito hype, mas poucas implementações realmente bem-sucedidas.
  • Nem todos os projetos precisam de soluções baseadas em cloud.

Big Techs

  • Começaram com soluções simples e imperfeitas.
  • As arquiteturas atuais são o resultado de décadas de evolução.
  • Investem milhões para gerir a complexidade.
  • Contam com equipas grandes e especializadas.
  • Não se deve comparar a sua realidade com o contexto delas.

Conheça o Seu Contexto

  • Não é Google, Microsoft, Facebook ou Netflix.
  • Comece pequeno: opte por um monólito e utilize MVC.
  • A complexidade que imagina pode não ser necessária de imediato.
  • Cresça de forma gradual, com base nas necessidades reais.

Top comments (0)