Diretrizes para Desenvolvimento Web

Filtros


Atalhos para busca

Premissas

  • Este documento deve ser seguido rigorosamente e atualizado na ocasião de novas definições.

Objetivos

  • Garantir a produção de códigos de fácil entendimento, manutenibilidade e testabilidade.

  • Auxiliar na garantia de qualidade dos nossos softwares.

Regras Gerais

  • Seguir as demais diretrizes de desenvolvimento de software vigentes.
  • Implementar processos de liberação de recursos e memória a exemplos de método dispose, utilização do using e cancelation token, quando de cada caso de uso.
  • Referências de bibliotecas externas ao projeto devem ser feitas diretamente dos repositórios oficiais, quando no .Net Core, a referência de projetos e bibliotecas, devem vir sempre do nível mais baixo da referência, evitando problemas de versões nos assemblies, ou seja, só fazer a referência no primeiro projeto que utiliza a dependência. Utilizar sempre as referências do NuGet e do nosso repositório oficial do Artifacts no DevOps da Consinco.
  • Para todos os efeitos de data e hora, deverão ser considerados como padrão a data, hora e fuso horário do banco de dados, evitando assim problemas de consistência.
  • Utilizar os recursos disponibilizados pelos frameworks para aumentar a produtividade, evitar implementações novas se o frameworks atende, e evitar implementações complexas, quando uma simples pode resolver.
  • Quando implementar um design pattern, observar se está sendo corretamente implementado, a sua necessidade e adequação ao caso.
  • Seguir os princípios do S.O.L.I.D.:

    • [S]ingle Responsibility Principle (Princípio da Responsabilidade Única)

      • “uma classe deve ter apenas um motivo para mudar”.

    • [O]pen/Closed Principle (Princípio do Aberto/Fechado)

      • “as entidades de software (classes, módulos, funções etc.) devem ser abertas para extensão, mas fechadas para modificação”.

    • [L]iskov Substitution Principle (Princípio da Substituição de Liskov)

      • “as classes derivadas devem ser substituíveis pelas suas classes bases”.

    • [I]nterface Segregation Principle (Princípio da Segregação de Interfaces)

      • “muitas interfaces específicas são melhores do que uma interface geral”.

    • [D]ependency Inversion Principle (Princípio da Inversão de Dependências)

      • “dependa de abstrações e não de classes concretas”.

  • Refatorar o código sempre que possível.
Este artigo foi útil para você?
Sim
Não
Confirmar que o artigo não foi útil