Ferramentas do usuário

Ferramentas do site


wiki:terralib

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
wiki:terralib [2008/04/01 13:23] 150.163.3.123wiki:terralib [2009/08/26 11:13] (atual) laercio
Linha 1: Linha 1:
-====== Padronização de Código ====== +====== TerraLib ====== 
-**Padrões de Estilo para Programar em TerraLib**\\+Para informações sobre a TerraLib, consulte a página do [[http://www.terralib.org|projeto]].
  
  
 +===== Estilo de Programação =====
 +[[terralib:padraocodigo|Padrões de Estilo para Programar em TerraLib]]
  
-===== 1. Arquivo =====+===== Terralib5 ===== 
 +[[terralib:Terralib5|Terralib5 Docs]]
  
- +[[terralib:Terralib5:emails|Terralib5 E-Mails]]
-==== Nome ==== +
-    * UpperCamelCase + prefixo **Te** +
-    * Extensão **.h** e **.cpp** +
-    * Mesmo nome da classe, estrutura ou namespace do seu conteúdo +
-    * Para siglas usar todas as letras em maiúsculas +
- +
- +
-==== Estrutura ==== +
-    * ''<Enter>'' na última linha +
-    * Máximo de 80 colunas por linha +
-    * Uma classe ou estrutura por arquivo +
-    * Toda a implentação deve estar no **.cpp** exceto as funções e métodos ''inline'' e que usam templates +
-    * Identação com 2 espaços ao invés da tabulação +
-    * Todo **.h** deve ter a macro associada ao arquivo +
-    * Ordem no **.h**: +
-      - Definição da macro associada ao arquivo +
-      - Definição de outras macros  +
-      - Inclusão de arquivos +
-        - Includes de arquivos C +
-        - Includes de arquivos locais +
-        - Includes de arquivos de plataforma +
-        - Includes de arquivos STL +
-      - Declaração forward +
-      - Namespace +
-    * Inclusão de arquivos +
-      * Usar ''<...>'' para externos e ''"..."'' para locais +
-      * Usar path relativo +
-    * Usar explicitamente os namespace externos. Ex: //std::string +
-// +
- +
- +
- +
- +
- +
- +
- +
- +
-==== Comentário ==== +
-    * Todo **.h** terá um cabeçalho padrão contendo informações sobre licença, parceiros, etc.  +
-    * Os comentários para gerar a documentação DOxygen: +
-       * Devem seguir o estilo Qt (http://www.stack.nl/~dimitri/doxygen/docblocks.html) sem os *'s intermediários  +
-       * Devem seguir o padrão abaixo e ter no mínimo as tags **\file**, **\brief** e **\author**: +
-<code cpp> +
-/*!  +
-    \file   file name +
-    \brief  brief description about the file. +
-            Brief description continued. +
-     +
-     More detailed description. +
- +
-    \author (?) +
-*/ +
-</code>   +
-  +
- +
- +
- +
-==== Exemplo ==== +
-[[terralib:exemplo1|Veja exemplo]] +
- +
- +
- +
- +
-===== Macro ===== +
- +
-==== Nome ==== +
-  * Usar prefixo //TE_// +
-  * Usar UPPERCASE e underscores //(_)// para separar palavras +
-  * Para macros associadas a arquivos **.h** usar a extensão como sufixo //_H// +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
-==== Comentário ==== +
-O comentário para gerar a documentacao DOxygen deve seguir o padrão abaixo. A descrição breve +
-é obrigatória e a descrição detalhada é opcional no caso de macros: +
-<code cpp> +
-//!  A brief description.  +
-/*! +
-     A more elaborate description. +
-*/ +
-</code>   +
- +
- +
-==== Exemplo ==== +
-<code> +
-#ifndef TE_CONNECTION_POOL_H +
-#define TE_CONNECTION_POOL_H +
-.... +
-#define TE_MAX_FLOAT 3.4e37 +
-.... +
-#endif //end TE_CONNECTION_POOL_H +
-</code> +
- +
-[[terralib:exemplo1|Veja exemplo completo]] +
- +
-  +
- +
-===== Namespace ===== +
-Usar sempre o namespace **TerraLib** para todo o kernel. +
- +
- +
- +
- +
- +
- +
- +
-==== Comentário ==== +
-O comentário para gerar a documentacao DOxygen deve seguir o padrão abaixo. A descrição breve +
-é obrigatória e a descrição detalhada é opcional no caso de namespace: +
-<code cpp> +
-//!  A brief description.  +
-/*! +
-     A more elaborate description. +
-*/ +
-</code>   +
- +
-  +
- +
- +
- +
- +
-==== Exemplo ==== +
-[[terralib:exemplo1|Veja exemplo]] +
- +
- +
-===== Classe e Estrutura ===== +
- +
- +
- +
- +
-==== Nome ==== +
-    * Nome +
-       * UpperCamelCase + prefixo **Te** +
-       * Usar substantivo +
-       * Usar o plural para nomes de coleções +
-       * Para siglas usar todas as letras em maiúsculas +
- +
-    * Nome dos membros +
-       * lowerCamelCase + sufixo "_" +
- +
-    * Nome dos métodos +
-       * lowerCamelCase +
-       * Usar sempre os prefixos "get" e "set" para acessar os membros. No caso de membro booleano, usar o prefixo "is" no método para acessá-lo.  +
-        +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
-==== Estrutura ==== +
- +
-  * Os métodos e membros devem seguir a seguinte ordem: +
-    - Métodos públicos +
-    - Métodos protegidos +
-    - Métodos privados +
-    - Membros protegidos +
-    - Membros públicos +
-  * Usar explicitamente a palavra //public// +
-  * No valor de retorno dos métodos usar sempre que possível //const// e referência +
-  * Usar //const// nos métodos que não alteram o estado do objeto, ou seja, que não alteram os valores dos membros +
-  * Nos parâmetros dos métodos usar sempre que possível //const// e referência +
-  * Sempre usar nomes nos parâmetros +
-  * Quando o método retorna uma estrutura, essa deve ser passada como parâmetro do método por referência. Nesse caso, o método não deve limpar essa estrutura antes de preenchê-la +
-  * Usar “other” para nomes de parâmetros nos construtores de cópia e operadores de atribuição +
-  * Usar os mesmos nomes dos membros nos métodos que os acessam diretamente +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
-==== Comentário ==== +
-    * Os comentários para gerar a documentação DOxygen: +
-       * Devem seguir o estilo Qt (http://www.stack.nl/~dimitri/doxygen/docblocks.html) sem os *'s intermediários  +
-        +
-=== Classe e Estrutura === +
-    * No caso de classes e estruturas é obrigatório colocar as descrições breve e detalhada. A tag **\sa** é opcional: +
- +
-<code cpp> +
-//!  A brief description of class or struct.  +
-/*! +
-     A more elaborate description of class or struct. +
-     \sa     other definitions related to the class or struct   +
-*/ +
-</code>   +
- +
-=== Método === +
-    * Os métodos devem conter no mínimo uma descrição breve, a descrição de todos os seus parâmetros (tag **\param**) e do seu valor de retorno (tag **\return**). A descrição detalhada é opcional. +
- +
-<code cpp> +
-//!  A brief description.  +
-/*! +
-     A more elaborate description of class or struct. +
-     \param  name description +
-     \return description +
-*/ +
-</code>   +
- +
-=== Membro === +
-    * A descrição do membro deve vir depois de sua definição. +
- +
-<code cpp> +
-int member01_;   //!< Brief description after the member +
-int member02_;   //!< Brief description after the member +
-</code>   +
- +
- +
-==== Exemplo ==== +
-[[terralib:exemplo1|Veja exemplo]]+
  
wiki/terralib.1207056200.txt.gz · Última modificação: 2008/04/01 13:23 por 150.163.3.123