Pergunta

Então, eu venho fazendo Java para um número de anos, mas agora estou começando um projeto C ++. Eu estou tentando determinar as melhores práticas para a criação de dito projeto.

Dentro do projeto, como você geralmente estruturar o seu código? Você fazê-lo estilo de Java com as pastas de namespace e acabar com sua fonte dessa maneira? Você manter seus cabeçalhos públicos em um include diretório para referência fácil?

Eu vi ambos e outras maneiras mencionado, mas o que é um método bom para um grande projeto?

Além disso, como você lida com recursos / pastas na sua estrutura de aplicação? É tudo muito bem para o projeto final para instalar com uma pasta log para armazenar os logs, talvez uma pasta lib para arquivos de biblioteca, talvez uma pasta data de dados, mas como você controla os bits dentro do projeto? Existe uma maneira de definir que assim quando você construir a solução que constrói a estrutura para você? Ou, você simplesmente tem que entrar em suas pastas de configuração construídos (Debug, Release, etc.), e construir a estrutura do arquivo manualmente, garantindo assim caminhos de seu arquivo EXE está esperando para encontrar estejam posicionadas corretamente?

Foi útil?

Solução

tendem a fazer com que cada solução de um componente, contendo um ou mais projectos (ou sub-componentes) e um projecto de ensaio. O projeto de teste contém todos os testes de unidade.

Em seguida, organizar as soluções em uma árvore com base em módulos e componentes, por exemplo:

//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution

A solução, então, conter vários projetos do Visual Studio:

//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution/Something
//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution/SomethingElse
//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution/TestTheSolution

Pode haver mais profundidade à árvore, ou menos, dependendo do número de componentes / sub-componentes que existem. Nós também tendem a ter uma solução "Geral" no sistema de sub e sub nível de componente com coisas geral re-utilizável.

Temos, então, uma solução em nível de sistema sub que os laços tudo juntos para construir o sistema de sub.

Não usar ou exportar para um diretório "incluir". Nós vamos Visual construção Studio e link dentro de nossas caixas de proteção. Temos um sandbox "Release" em separado para garantir que não acidentalmente ligar a biblioteca errada.

Outras dicas

Eu tenho um relacionado, mas pergunta diferente acontecendo por aqui também. I nmake estado, mas realmente é qualquer sistema de compilação: Scons, Bakefile, nmake, Formiga, vcproj

A maneira que eu geralmente estruturar meu código é de "módulo" dentro de um aplicativo ou DLL. Eu não tendem a namespaces de uso, mas isso não significa que você não deve.

Dentro do IDE eu tenho algo parecido com isto:

/solution
   /prj1
      /headers
        /module1
        /module2
      /resource
      /source
        /module 1
        /module 2
      /test
   /prj2
      /headers
        /module1
        /module2
      /resource
      /source
        /module 1
        /module 2
      /test

No sistema de arquivos eu tenho algo parecido com isto:

/solution
    /prj1
       /bin
       /build
       /include
          /module1
          /module2
       /lib
       /res
       /src
          /module1
          /module2
       /test
    /prj2
       /bin
       /build
       /include
          /module1
          /module2
       /lib
       /res
       /src
          /module1
          /module2
       /test
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top