Ferramentas do usuário

Ferramentas do site


twsg:dicas:code_conventions

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
twsg:dicas:code_conventions [2009/01/07 16:55] – Header file guard emersontwsg:dicas:code_conventions [2009/03/29 01:00] (atual) emerson
Linha 26: Linha 26:
  
 Estes componentes são discutidos brevemente nas subseções seguintes. Estes componentes são discutidos brevemente nas subseções seguintes.
 +
 +
  
 ==== License header ==== ==== License header ====
Linha 53: Linha 55:
 </code> </code>
  
 +Para adicionar o //License header// a um conjunto de arquivos já existentes numa pasta, você pode usar o seguinte comando no Linux: <code bash>
 +for i in `find . -name "*.js"`; do cp $i $i.bkp; cat ../header.txt $i.bkp > $i; rm -f $i.bkp; done
 +</code>
 +Apenas altere o ''*.js'' para a extensão dos seus arquivos e crie o arquivo ''header.txt'' na pasta abaixo, com o conteúdo descrito neste tópico. Para personalizar ainda mais o comando basta olhar o funcionamento do comando ''find'' do shell. Por exemplo, você quer colocar o //License header// em todos os arquivos .h e .cpp de uma pasta, então você pode criar o ''header.txt'' com o conteúdo correto (lembrar de deixar uma linha em branco no final) e executar o seguinte comando nesta pasta: <code bash>
 +for i in `find . -name "*.h" -or -name "*.cpp"`; do cp $i $i.bkp; cat header.txt $i.bkp > $i; rm -f $i.bkp; done
 +</code>
  
 ==== File identification ==== ==== File identification ====
Linha 65: Linha 73:
  */  */
 </code> </code>
 +
 +
  
  
 ==== Header file guard ==== ==== Header file guard ====
  
-As convenções do File header guard estão descritas no documento de referência. A pŕincipal alteração é a troca do prefixo ''OGWS'' por ''TERRAOGC'', segundo exemplo abaixo:+As convenções do File header guard estão descritas no documento de referência. A principal alteração é a troca do prefixo ''OGWS'' por ''TERRAOGC'', segundo exemplo abaixo:
 <code cpp> <code cpp>
 #ifndef  __TERRAOGC_COMMON_INTERNAL_TECGIUTILS_H #ifndef  __TERRAOGC_COMMON_INTERNAL_TECGIUTILS_H
 #define  __TERRAOGC_COMMON_INTERNAL_TECGIUTILS_H #define  __TERRAOGC_COMMON_INTERNAL_TECGIUTILS_H
 +
 </code> </code>
 +
  
 ==== Includes section ==== ==== Includes section ====
  
-==== Classes declaration ====+A seção de includes deve seguir os seguintes princípios: 
 +  - Usar, sempre que possível, //forward declarations// 
 +  - Colocar primeiro os arquivos do mesmo pacotes (diretório fonte) através de aspas 
 +  - Colocar depois os arquivos de outros pacotes (outros diretórios) através de ''<'' e ''>'' 
 +  - Iniciar cada lista de pacotes (inclusive do atual) com um comentário 
 + 
 +Exemplo: 
 +<code cpp> 
 +// TerraOGC WFS Utils include files 
 +#include "TeWFSUtilsConfig.h" 
 + 
 +// TerraOGC GML include files 
 +#include <gml/TeGMLQuerier.h> 
 + 
 +// Shapelib include files 
 +#include <shapefil.h> 
 + 
 +</code> 
 + 
 +==== Namespace declaration ==== 
 + 
 +Apenas inserir a declaração do namespace padrão do grupo. As //forward declarations// ocorrem antes e/ou depois desta declaração, dependendo do namespace ao qual as classes pertencem. Veja os exemplos: 
 + 
 +  - Namespace sem //forward declarations//: <code cpp> 
 + 
 +namespace TeOGC 
 +
 + 
 +</code> 
 +  - Namespace com //forward declarations//: <code cpp> 
 +// Forward declarations 
 +class TeTable; 
 + 
 +namespace TeOGC 
 +
 +    // Forward declarations 
 +    class TeWFSInsertElement; 
 +    class TeWFSUpdateElement; 
 + 
 + 
 +</code> 
 + 
 +==== Classes and Functions declarations ==== 
 + 
 +Seguir o manual. Existem vários exemplos no próprio CVS.
  
-==== Functions declaration ==== 
  
 ==== End header file ==== ==== End header file ====
  
-==== Level 3 Headline ====+Apenas um fecho para o arquivo. Contém o final das declarações do namespace e do file header guard. Exemplo: 
 +<code cpp> 
 +}    // end namespace TeOGC 
 + 
 +#endif  // __TERRAOGC_COMMON_INTERNAL_TECGIUTILS_H 
 + 
 + 
 +</code> 
 +Sempre lembrar de deixar **uma linha em branco** no final do arquivo 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
  
  
twsg/dicas/code_conventions.1231347316.txt.gz · Última modificação: 2009/01/07 16:55 por emerson