Programação, Genexus
Referenciado por: Análise para terminais de pré-venda web | Dicas Técnicas | Funções e Métodos Úteis no Genexus | Métodos de Atualização de Dados em Genexus |
Os seguintes itens são visados com a implantação deste padrão:
- Aumentar a velocidade de programação;
- Facilitar a manutenção do sistema;
- Reduzir erros de programação;
- Identificar e localizar mais rapidamente os erros de execução e programação;
- Facilitar o desenvolvimento em conjunto;
- Melhorar a qualidade dos sistemas.
Organização da KB
De maneira geral as KBs devem ser organizadas da seguinte forma:
Objects/
>>> ContextManagement/
>>> DataProviders/
>>> DataSelectors/
>>> <Funcionalidade>/
>>> <Funcionalidade><Tipo de Objeto>/
>>> Java/
>>> Procedures_<Funcionalidade>/
>>> SDTs/
>>> Security/
>>> SubTipos/
>>> <Divisão por Categorias, Grupos do Alfabeto, Funcionalidades, etc.>/
>>> Transacoes/
>>> WebPanels/
Observe que é interessante agrupar objetos de uma determinada funcionalidade.
É essencial não misturar em uma mesma pasta objetos de diferentes DataStores.
ContextManagement
Tratar aqui as várias informações que podem ser armazenadas no contexto.
Se a funcionalidade só se tratar de objetos do mesmo tipo, ou pouco objetos, como é o caso do ContextManagement, não é necessário criar subdivisões por tipo de objeto.
Procedures_
Essa é uma forma interessante de subdividir objetos em funcionalidades sem criar muitos níveis.
SubTipos
Como subtipos existem em grande quantidades, é interessantes subdividi-los de alguma forma.
Transacoes
Colocar aqui dentro as Transactions, Data Views e deixar os prompts gerados automaticamente.
Prompts manuais devem ser passados para a pasta WebPanels.
WebPanels
Colocar aqui WebPanels e WebComponents.
Nomenclatura dos Objetos
Deve-se atentar para as seguintes orientações na hora de criar um nome de um objeto.
| Tipo de objeto | Descrição | Exemplos |
|---|---|---|
| Procedures | Procedures em Genexus podem ser função e podem ter sua estrutura de parâmetro modificada rapidamente. | GravaTabela |
| WebPanels | Em telas normais utilizar o prefixo "WP_". | WP_Config |
| WebComponents | Utilizar o prefixo "WC_". | WC_CaixaTotais |
| DataProviders | É incentivado o uso de DataProviders para reaproveitamento de pesquisas e organização do código. | DP_Clientes |
| SDTs (StructuredDataTypes) | Utilizar o prefixo "Sdt_". | Sdt_Registros |
| DataSelectors | Usar prefixo "DS_". | dsBuscaCliente |
| SubtypeGroups | Nome pode ser a concatenação da tabela de origem com tabela de destino. | Cliente_Usuario |
Boas Práticas
- Usar DataProviders para reaproveitamento de consultas.
- Criar variáveis de transação mais amigáveis. Ex.: transação TT_CLI criar &TtCli ou &cli.
- Evitar uso de letras maiúsculas no código fonte.
- Usar log em arquivo texto para não interferir nas transações de banco.
- Tratar erros de gravação.
- Usar nomenclaturas de acordo com a tabela deste artigo.
- Usar nomes simples e claros para Procedures.
- Em webpanels ou procedures, agrupar variáveis por prefixo. Parâmetros podem começar com p [pCodfil]. Variáveis de tela podem começar com f [fCodfil].
- Usar SDTs em parâmetros de Procedure. Obs.: os SDTs são sempre inOut, independentemente do que está definido no Parm. WebPanels não recebem SDTs como parâmetro de entrada.
Outros Artigos
Veja também: