Programação - Regras

De FuturaWiki
Ir para: navegação, pesquisa

Nomeclatura

Sempre no singular, unindo os seguintes prefixos na ordem indicada abaixo:

Prefixos indicando o Tipo: (Usado apenas ao mandar salvar a Unit.)

Tipo Abreviatura
Unit u
Formulario i
DataModule m

Prefixos indicando o Subtipo:

Tipo Abreviatura
Classe T
Formulario f
DataModule DM

Prefixos indicando o Grupo:

Tipo Abreviatura
Cadastro Cad
Movimentacao Mov
Relatorio Rel
Consulta Cns
Seleção Sel
Configuração Cfg
Importação Imp
Exportação Exp
Frame Frm
Outros Otr

Categorização do nome:

  • SubstantivoVerbo
  • SujeitoVerbo
  • GrupoSubgrupoVerbo
  • TituloSubtituloSubtitulo2

Exemplos

Nome Nomeclatura no código Nomeclatura da unit no código
Formulario de cadastro de CFOP fCad_CFOP ifCad_CFOP
Classe de cadastro de CFOP TCad_CFOP uTCad_CFOP
Formulario de relatorio de CFOP fRel_CFOP ifRel_CFOP
DataModule do Relatorio de CFOP DM_CFOP mDM_CFOP
- - -
Formulario de Cadastro de cliente * fCad_CadastroCliente ifCad_CadastroCliente
Formulario de Relatorio de cliente * fRel_CadastroCliente ifRel_CadastroCliente
Formulario de Seleção de cliente para inativação * fSel_CadastroClienteInativar ifSel_CadastroClienteInativar
Classe de Seleção de cliente para inativação * TSel_CadastroClienteInativar uTSel_CadastroClienteInativar
Classe para inativação de cliente *** TOtr_CadastroClienteInativar uTOtr_CadastroClienteInativar
- - -
Formulario de movimentação do Contas a Receber ** fMov_ContaReceber ifMov_ContaReceber
Formulario de relatorio do Contas a Receber ** fRel_ContaReceber ifRel_ContaReceber
Formulario de Baixa do Contas a Receber ** fOtr_ContaReceberBaixar ifOtr_ContaReceberBaixar
Classe de Baixa do Contas a Receber ** TOtr_ContaReceberBaixar uTOtr_ContaReceberBaixar
* A tabela que armazena Clientes, Fornecedores, Funcionarios e demais, 

é a mesma, no caso se chama "Cadastro", a palavra "Cadastro" no nome indica essa tabela e NÃO o ato de cadastrar.

** Da mesma forma que a "CADASTRO" o contas a receber e a pagar são armazenados
na tabela de "Contas", se enquadrando na mesma explicação anterior.

*** No caso a classe de seleção apenas localiza os clientes e os marca para serem inativados, 

POREM o codigo para inativar os clientes selecionados ficam numa rotina a parte. O motivo para isso é simples, se for necessario que em uma tela ao inves de selecionar N clientes para serem inativados, for necessario adicionar um botão para inativar apenas 1 cliente, posso reaproveitar o codigo ja montado em "TOtr_CadastroClienteInativar" para inativar aquele cliente apenas, sem ter de antes consultar os clientes com a TSel_CadastroClienteInativar, para em seguida inativar.

Estrutura de Diretorios

Os dpr's e principais arquivos do projeto, ficam armazenados em: h:\Empresa\"NomeDaEmpresa"\Sistemas\"NomeDoPrograma" Os executaveis gerados, devem estar dispostos em: h:\Empresa\"NomeDaEmpresa"\_Exe

Demais arquivos, são organizados em subpastas de 4 niveis em h:\RepTmp\"Grupo"\"Subgrupo"\"Tipo"\"SubTipoEmpresa"

Sendo:

  • Grupo: (Fixo)
Fiscal
Vendas
Compras
Geral
Diverso
Financeiro
Estoque
  • Subgrupo: (Depende do grupo, por exemplo:)
Grupo: "Venda"
Agenda
Geral
PDV
Pedido
Requisicao
  • Tipo
Tipo
Cadastro
Movimentacao
Relatorio
Consulta
Seleção
Outros
  • Subtipo
Subtipo
InterfaceGenerico
RNGenerico
InterfaceCampineira
RNCampineira

Componentes de Layout

Utilizar Componentes das Palhetas Raize: Raize Button, Raize Display, Raize Edits, Raize Lists, etc... Para Grids: Utilizar a DBGrid, da Palheta DataControls

Nomenclatura dos Componentes

Adicionar o prefixo de acordo com o componente, e adicionar um nome de acordo com a função do componente(Prefixo + Nome):

(Não é necessário colocar nome em labels comuns)

Componente Prefixo
RzLabel Lbl_
RzEdit Ed_
RzButton Btn_
RzButtonEdit BtnEd_
RzMaskEdit MskEd_
RzComboBox CmbBox_
RzMemo Mm_
RzPageControl PgCtrl_
RzTabSheet TabSht_
RzMenuButton MenBtn_
RzGroupBox GrpBox_
RzPanel Pn_

Exemplos

Componente Prefixo Nome Nome Final
RzEdit Ed_ CNPJ Ed_CNPJ
RzButtonEdit BtnEd_ Razao Social BtnEd_RazaoSocial


Obs: Para Campos com conexão da base de dados, adicionar "DB" ao Prefixo:

Componente Prefixo Nome Nome Final
RzDBEdit DBEd_ CNPJ DBEd_CNPJ
RzDBButtonEdit DBBtnEd_ Razao Social DBBtnEd_RazaoSocial
RzDBLabel DBLbl_ Sigla DBLbl_Sigla

Variaveis

Váriaveis que serão utilizadas em toda a Unit, são declaradas sempre no PRIVATE e acrescentado o prefixo "F" Exemplo:

 Type
  TUnit1 = class(TComponent)
  private
    FValorTotal: Extended;
  public
  end;
  

Váriaveis Declaradas em Units, que serão usadas em outras Units/Forms, são encapsuladas no PUBLIC, retirando o prefixo da PRIVATE Exemplo:

 Type
  TUnit1 = class(TComponente)
  private
    FValorTotal: Extended;
  public
    property ValorTotal: Extended  Read FValorTotal  Write FValorTotal; 
  end; 

Propriedades das Funções: Prefixo "p" Exemplo:

 Procedure Gerar(pValor: Extended);
 Function  Imprimir(pSegundaVia: Boolean);

Váriaveis Declaradas dentro das Funções: Prefixo "v" Exemplo:

 Procedure Gerar;
 var vValor: Extended; 
 begin
 end;

Váriavel Global: Prefixo "G" Exemplo:

 GDataAtual
 GValor

Obs: Evite utilizar váriaveis GLOBAIS!