Checklist Programação

De UniWiki
Revisão de 18h25min de 6 de maio de 2011 por RafaelPires (Discussão | contribs) (Criou página com '==Checklist de Programação== Para manter um código padronizado e conciso,<br/> a Uniware preparou as tabelas a seguir, que <br/> auxiliam a garantir uma escrita comum entre ...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Checklist de Programação

Para manter um código padronizado e conciso,
a Uniware preparou as tabelas a seguir, que
auxiliam a garantir uma escrita comum entre
os colaboradores e as medidas preventivas
antes de inserir alterações no software.

Padrões

Nomeclatura de tabelas Segue o prefixo {:alnum:}{:alnum:}*_ (2 caracterres e 1 underline)

afim de identificar qual projeto a tabela pertence. Exemplos:

LB_ Tabelas do Unilab
SA_ Tabelas do SAC
FN_ Tabelas do Financeiro do Unilab
HP_ Tabelas importadas do Hermes Pardini
AL_ Tabelas importadas do Álvaro
CR_ Tabelas importadas do Criesp
SF_ Tabelas importadas do Sérgio Franco
LOG_ Tabelas de logs de alterações em outras Tabelas
U2U_ Interface Unilab
Nomeclatura de views Utiliza o prefixo {:alnum:}{:alnum:}*V . Exemplos:
Nome Aplicação Principal Tabela da view
LBVPEDI Unilab LB_PEDI
LBVEXAM Unilab LB_EXAM
Nomeclatura de campos Como prefixo, é adicionado uma caracter para definir seu tipo.
C Caracter
N Numérico
D Data e hora
E Enumerado

IMPORTANTE: Não criar campos do tipo booleano, pois
esse tipo possui imcompatibilidade entre SGDB's.
Utilizar um Enumerado de S/N quando for necessário.

Tipos de campo Alguns tipos de campos adotam um padrão em qualquer parte do sistema, são eles:
Monetário DECIMAL(12,2);
Data, hora DATETIME;
Booleano ENUM('S','N');
Tamanho máximo de uma tela MDI 1020x680
Nova Aplicação Certificar-se de que:
  1. Todos os programadores possuem as ferramentas e compiladores necessários para dar manutenção.
  2. Criar uma pasta no subversion para a aplicação e a cada etapa efetivamente concluída, postar os fontes com uma descrição de acordo.
  3. Atualizar o Documento D:\CVS\Documentos\Aplicativos uniware.xls (futuramente Aplicativos Uniware)
  • Quando a aplicação possuir uma versão de release, criar uma pasta no servidor com acesso para o suporte e disponibilizar os binários nela.
  • Atualizar o documento do item 3.
Código fonte Em Delphi, segue os seguintes padrões abaixo:
Tipo Padrão Exemplo
Constantes Caixa alta, espaçamento com "_" VALOR_PAGAMENTO_MINIMO
Variáveis de Classe Iniciar com "F", capitalizado, sem espaçamento FCodiLab
Variáveis do DB utilizar o mesmo nome do DB TUnilabNumeroAmostra.CCODIPOST
Variáveis de function/procedure Iniciar com "v", capitalizado, sem espaçamento

vVersao

Variáveis globais Iniciar com "Global", capitalizado, sem espaçamento GlobalPostoColeta
Parâmetros (function/procedure) Iniciar com "a", capitalizado, sem espaçamento aCodiExpr
function/procedure aninhados Iniciar com "_", capitalizado _PedidoAlterado

Dependências

Criação de nova tabela Verificar possíveis alterações em:
  • ufExcluaDados
  • ufExcluaDadosFinanceiro
  • ufPreparaMov
  • ufManutencao.RecalculaUlibseq
  • uTransmissao
  • ufPostCad (CTRANSTRAN)
  • uTraduzirExcecao
  • Dicionário de dados
Criação de chave Estrangeira Afim de evitar erros nos bancos MySQL hospedados em Linux, deve-se criar separadamente a tabela, a chave e a chave estrangeira. Exemplo:
CREATE TABLE LB_TESTE...
ALTER TABLE LB_TESTE
   ADD CONSTRAINT KEY FK_TESTE_CODI (CCODITESTE)
ALTER TABLE LB_TESTE
   ADD CONSTRAINT FOREIGN KEY FK_TESTE_CODI (CCODITESTE)
   REFERENCES LB_OUTRO (CCODIOUTRO) 
Criar Campo na LB_EXAM *Na tabela ULIBMETA criar um registro com o nome e definição do campo. (TFExamRelHistAlter depende desta tabela pra funcionar)
  • Verificar se para amostra adicional é necessário copiar o valor do campo do pai para os

filhos: CADAntesCommit e CCODIPAIEXAMValidar

  • Ao Criar novos campos na LB_EXAM deve verificar as rotinas UFExamExporta e UFExamImporta para ver se o campo criado pode influenciar na rotina.
Criar campo no configurador na CFEX Incluir carga do conteúdo do campo nos relatórios de lista de exames - UFResuRelLista, UFResuRelListaPaci
Alterar/Criar relatório de fatura Refletir alterações na exportação da fatura p/ excel
Criar nova Unit Verificar se precisa incluir também nos projetos: Unilabw, Unilab_BETA, Unilaudos e unilabSRV
Incluir Campo no TISS
  1. Incluir em todas as versões;
  2. Na impressão parcial/full;
  3. no configurador da guia full
Gravar datahora da coleta Rotinas que gravam coleta:
  • PediCad;
  • UfColeta;
  • UFDesfazColeta;
  • UFRecoleta;
  • UUnilabExpr;
  • PediImp (imprime mapa de não coletado ele põe a data de coleta auto);
  • TercLabCad (qdo inclui no lote um não coletado coleta auto);
Gravar datahora da triagem Rotinas que gravam triagem:
  • UFPedicad
  • UAuxGlobal
  • UFColeta
  • UFTriagem
  • UFRecoleta
  • UnilabExpr
Incluída tabela na transmissão Constante: Versao_do_sistema_de_querypack - Incrementar quando tiver alteração nas funções queryPack e QueryUnPack

Constante: Versao_do_sistema_de_transmissao – Incrementar quando incluir/excluir uma tabela ou informação a ser transmitida

Versão do executável: em Project > Options > Version Info: Incrementar em qualquer nova versão

Versão do Unilab: A versão do Unilab (componente Sys da UFMain) não é considerada pelo programa de transmissão. Mas a versão do Unilab que está no banco é enviada junto no pacote e verificada nas pontas para ver se bate; Mas não precisa recompilar o servidor de transmissão só porque mudou a versão do Unilab.

Update na expr Sempre que fizer um update na expr incrementar a ulibrela