Child pages
  • LGX - Padrões de Programação

Definições

Nomenclatura

Variáveis

Identificar sempre com um prefixo todos os objetos de programa conforme tabela abaixo:

ObjetoPrefixoExemplo

Variáveis Globais


Tipo simplesg_g_dat_referencia
Tipo registro (RECORD)gr_gr_funcionario
Tipo vetor (ARRAY)ga_ga_valores

Variáveis ModularesTipo simplesm_m_dat_referencia
Tipo registro (RECORD)mr_mr_funcionario
Tipo vetor (ARRAY)ma_ma_valores

Variáveis LocaisTipo simplesl_l_dat_referencia
Tipo registro (RECORD)lr_lr_funcionario
Tipo vetor (ARRAY)la_la_valores

Cursores (CURSOR)Leitura (Query)cq_cq_funcionario
Modificaçãocm_cm_funcionario
Inclusãoci_ci_funcionario
Exclusãoce_ce_funcionario

SQL Preparados (PREPARE)
var_var_funcionario

OBSERVAÇÃO: Refere-se a tipo “simples” os tipos de variáveis diferentes de “RECORD” e “ARRAY”. Exemplos: DATE, CHAR, SMALLINT, INTEGER, DATETIME.


  • Utilizar palavras auto-explicativas para formar o nome de uma variável, para que seja fácil de interpretar o objetivo para qual está sendo definida. Exemplos: 
    • DEFINE l_salario_funcio DECIMAL(17,2)
    • DEFINE mr_aluno RECORD  LIKE aluno.*
  • Utilizar sempre que possível tipo de dado associado a uma coluna de tabela, utilizando a cláusula “LIKE”. Exemplos:
    • DEFINE l_cod_usuario LIKE usuarios.cod_usuario
    • DEFINE mr_aluno RECORD LIKE aluno.*
  • Utilizar a definição das variáveis dentro do escopo do programa, sendo primeiramente as variáveis globais, depois as modulares. As variáveis locais devem ser definidas sempre no início de cada função.
  • Sempre inicializar o valor de variáveis antes de atribuir algum valor a ela pela primeira vez ou quando for necessário (INITIALIZE).

Estrutura do código fonte

Todo código fonte desenvolvido deve respeitar a estrutura conforme as definições abaixo:


  • Todos os comandos próprios da linguagem devem estar em letras maiúsculas e os nomes de variáveis de programa em letras minúsculas (lowercase) separado os elementos utilizando underscore (Snake Case).

  • A identação padrão a ser respeitada entre as estruturas de comandos deve ser de 4 posições sempre utilizando o uso de espaços no lugar de tabulações.

Exemplo:


Funções

A definição de todas as funções dentro de um código fonte deve seguir um padrão de nomenclatura.

Escopo

Por padrão, toda função criada no Logix é pública, ou seja, acessível por qualquer outro programa ou função. Portanto para evitar o uso indevido de uma função que deve ser executada apenas pelo programa ou código fonte em que foi criado, deve-se defini-la como privada.

 Exemplo:

PRIVATE FUNCTION man0310_entrada_dados()

Nomenclatura

O nome de uma função (FUNCTION ou REPORT) deverá sempre ter como prefixo o número completo do programa e deve refletir exatamente o que ela processa, de forma clara e objetiva, para facilitar a interpretação por todos os desenvolvedores.

<numero_programa>_<nome_função>

Exemplo:

Programa = man0310.4gl
Função controle() = man0310_controle()
Função entrada_dados() = man0310_entrada_dados()


A linha de código que contém a definição da função deverá sempre ser precedida e sucedida por uma linha tracejada conforme abaixo para dar mais destaque a lista de funções existentes em um fonte:

#------------------------------------------------------------------------------#
FUNCTION man0310_entrada_dados()
#------------------------------------------------------------------------------#

Anexos

  • No labels