Giter Site home page Giter Site logo

advpl-coding-standards's Introduction

AdvPL Coding Standards

Arquivo

  • A extensão deve ser minúscula (exemplo: .prw, .apw)

Estilo

  • Tabs somente para indentação, não para separação
  • Sempre use notação húngara em nomes de variáveis
  • Evite nomes de variáveis como nX ou nY (exceto para índices). Seja mais descritivo
  • Palavras-chave da linguagem devem usar UpperCamelCase (exemplos: If, EndIf, While)
  • Ao terminar uma instrução Do While, prefira EndDo ao invés de somente End
  • Ao terminar uma instrução For, prefira Next <variable> ao invés de somente Next
  • Nomes de variáveis locais devem ser em lowerCamelCase (exemplos: cName, nAge)
  • Nomes de funções em notação húngara devem usar lowerCamelCase (exemplo: aAdd)
  • Use as variáveis com nomes iguais em tamanho e caixa (não faça thisIsMyVariable e THISISMYVARI)
  • Nomes de funções sem notação húngara devem usar UpperCamelCase (exemplo: RetSqlName)
  • Deve haver 1 espaço entre os argumentos de função, blocos e arrays (exemplo: RetSqlName( 'STJ' ))
  • Deve haver 1 espaço após cada vírgula (exemplo: { 1, 2, 3 })
  • Deve haver espaço entre parâmetros de funções (use Call( 1, 2, 3 ) e não Call(1,2,3))
  • Evite ultrapassar 80 colunas horizontalmente. Quebre o código quando necessário
  • Valores lógicos devem usar caixa alta (exemplo: .F.)
  • Espaço entre operadores. Use nValue > nExpected ao invés de nValue>nExpected
  • Return indentado, já que faz parte da estrutura da função e não é um terminador
  • Em comentários, 1 espaço após //
  • Idioma padronizado. Evite misturar português e inglês quando possível
  • Deixar 1 linha em branco para cada statement, exceto conjuntos de statements
  • Deixar 1 linha vazia no final de cada arquivo
  • Prefira aspas simples ' ao invés de duplas "
  • Para acesso de índices múltiplos, evite aList[ nI ][ nJ ]. Use aList[ nI, nJ ]
  • Funções não devem receber mais que 6 parâmetros
  • Evite aninhamentos com mais de 3 statements (exemplo: If dentro de If dentro de If)
  • Use != ao invés de <>
  • Não faça == .T.
  • Use ! ao invés de .Not.

Redundância

  • Substitua If dentro de If por .And.

Funcionamento

  • Lembre-se de, ao criar uma tabela temporária, fechá-la com dbCloseArea
  • Lembre-se de fechar o handler para o arquivo com fClose ao usar fOpen
  • Quando deslocar para outro registro utilizando dbSkip, garanta estar posicionado na tabela desejada, caso contrário utilize TABLE->( dbSkip() ) ou então utilize dbSelectArea( TABLE ) antes do dbSkip()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.