Esta wiki contém as diretrizes gerais, boas práticas e ferramentas que governam o desenvolvimento de software no Datasus, em consonância com as diretrizes arquiteturais do Ministério da Saúde. As recomendações descritas aqui devem ser seguidas em todos os projetos e sistemas no âmbito do Datasus e suas parceiras de desenvolvimento.
As orientações apresentadas neste ambiente não são exaustivas: casos omissos serão analisados pela COATIC para que sejam adicionados oportunamente.
A iniciação de novos projetos de desenvolvimento ou de internalização será comunicada pela Coordenação-Geral de Governança e Gestão de Projetos em Tecnologia da Informação e Comunicação (CGGOV/DATASUS).
A COATIC procederá a avaliação e definição arquitetural em conjunto com as equipes de desenvolvimento, mediante apresentação prévia do diagrama de arquitetura e, se possível, do modelo de dados em alto nível, elaborada com base nos documentos de diretrizes arquiteturais.
As equipes de desenvolvimento deverão atualizar informações sobre a arquitetura (design, DNS etc.) em ambiente a ser informado pela COATIC.
As áreas demandantes (fábrica de software, área de negócios etc.) deverão abrir chamado no sistema de demandas de infraestrutura, disponível em https://demandasdatasus.saude.gov.br
A COATIC proverá a infraestrutura necessária ao desenvolvimento, assim composta:
O fluxo de trabalho das equipes de desenvolvimento seguirá o modelo DevSecOps.
A cada entrega de release, a pipeline executará de forma automática a verificação da qualidade e segurança do código, bem como garantir o ofuscamento do código para entrada em produção.
A COATIC comunicará as equipes de desenvolvimento sobre eventuais ajustes das pipelines, que deverão executar as adequações necessárias.
A infraestrutura de desenvolvimento será composta dos seguintes itens:
O banco de dados da aplicação deverá estar no rol homologado pela Coordenação de Gestão de Banco de Dados (COBD/CGIE/DATASUS) e respeitar a Metodologia de Administração de Dados (MAD), disponível em https://datasus.saude.gov.br/metodologia-de-administracao-de-dados-mad/.
A comunicação entre camadas de backend e front-end deverá seguir o padrão REST API.
As integrações entre soluções e a obtenção de dados corporativos deverão ser feitas chamadas REST a web services.
A concepção de novas soluções deverá ser agnóstica com relação à infraestrutura de produção, ou seja, não pode estar vinculada a produtos específicos de provedores nem fornecedores de soluções externas ao Datasus. Além disso, deverá, preferencialmente, seguir a a arquitetura de microsserviços.
O processamento de requisições com duração acima de 10 segundos deverá deverá fazer uso de fila de processamento, de forma assíncrona.
A autenticação de usuários deverá ser feita por meio do mecanismo "GovBR" ou, quando não for possível o seu uso, pelo mecanismo "Autorizador do Datasus".
O controle de permissões de acesso deverá ser feito por meio do Sistema de Cadastro e Permissão de Acesso (SCPA).
Padrões de codificação
O código fonte deverá ser construído com base nas melhores práticas de nomeação adotadas pela linguagem da solução, sugerindo-se as definições apresentadas em https://google.github.io/styleguide/.
A verificação dos padrões de codificação será realizada ao longo da esteira de desenvolvimento.
Não serão aceitos diferentes padrões na mesma solução, por exemplo, nomeação de variáveis ou objetos em diferentes idiomas, nem usando diferentes estilos de codificação: camel case (ex: “camelCase”), snake case (ex: “snake_case”), kebab case (ex: “kebab-case”) etc.
A aceitação definitiva das entregas estará condicionada ao uso das tecnologias abaixo, na versão indicada em cada página.