Quando se trata de hospedar seus projetos descartáveis ​​pessoais, um serviço e uma estrutura de projeto se destacam? [fechadas]


12

Estou olhando para o Google Code, SourceForge, BitBucket e GitHub, já que eles parecem ser os grandes jogadores. Agora, ainda não decifrei todos os recursos que eles fornecem, mas estou realmente procurando um lugar para colocar vários códigos que escrevo (minhas soluções para o Project Euler, código que devo escrever para o Code Golf / Puzzles de programação Stack Exchange, etc.) em um local centralizado.

Então, minha primeira pergunta é: para uma situação como essa, um serviço se destaca entre os outros?


Depois de escolher um serviço, preciso escolher como vou distribuir o código. Existem algumas opções que eu vejo para configurar os repositórios e projetos. Um único repositório pode conter vários projetos - por exemplo, eu poderia ter um repositório "Project Euler Solutions de Tom Owens" para todas as minhas várias soluções para o Project Euler, com projetos para cada idioma e ambiente nos diretórios deste repositório, outro repositório para minhas várias soluções Code Kata e assim por diante. Ou eu poderia dividir algo assim por linguagem (ter soluções Project Euler em Python em um repositório, soluções PE em Java em outro repositório e soluções Code Kata C ++ em um terceiro repositório).

Minha segunda pergunta: Existem limitações ou convenções para determinar como você deve compartilhar seus exemplos de código que optar por abrir, especialmente em termos de como você cria seus repositórios? Meu pensamento é que isso pode ser ditado pelo serviço que você escolher (com base nas convenções da comunidade).

Respostas:


10

Bitbucket.

Eles oferecem um excelente serviço, repositórios privados em seu pacote gratuito (mais público ilimitado) e são bastante receptivos em seu rastreador de problemas.

O mesmo, menos os repositórios privados gratuitos, são verdadeiros para o Github, mas eu não gosto imensamente do git. Essa é uma preferência pessoal, não estou defendendo o git, se por algum motivo estranho você preferir o hg, o Github é uma opção perfeitamente válida.

Quanto à organização dos repositórios, não misture idiomas, se puder evitá-lo. A maioria dos IDEs é construída com base no pressuposto de que um projeto é construído em um único idioma (exceto em projetos da Web em que é esperada uma combinação de idioma + html, css e js). Não estou dizendo que o IDE não será capaz de lidar, apenas que recursos como a conclusão de código serão um pouco mais lentos, pois o IDE precisará carregar dados sobre como lidar com cada idioma.

Se seus repositórios forem públicos (portanto, ilimitados), eu faria um repositório por idioma por esquema do projeto, como "euler_cpp", "euler_python", etc. Não importa realmente qual serviço você escolher, como organizar seus repositórios depende completamente de você.

Quanto à estrutura de pastas, para soluções de projeto euler:

  • Uma pasta por problema, se você planeja ter soluções diferentes para o mesmo problema
  • Um arquivo por problema, para soluções únicas

Escolha a que se aplica e mantenha-a, se, para um problema, você tiver mais de uma solução, escolha a primeira estrutura, mesmo que não tenha uma segunda solução para qualquer outro problema.

atualizar:

O único arquivo por problema é proposto apenas para quando é realmente aplicável e é sugerido como um esquema potencial para soluções para projetar problemas de euler, pois esse é o único projeto especificado na pergunta.

Conforme o comentário de btilly, estou acrescentando que a estrutura melhor / mais natural deve ser decidida por idioma, pois cada idioma e / ou plataforma possui suas próprias convenções e práticas em relação a arquivos e pastas.


1
A estrutura da pasta deve depender do idioma. Uma pessoa que usa uma linguagem de script freqüentemente escreve código em um arquivo que, em C / C ++, seria escrito naturalmente em vários arquivos de uma pasta.
btilly

@btilly Certo. Estou adicionando seu comentário à resposta ...
yannis

Na verdade, eu não estava procurando especificamente como organizar arquivos em um projeto, mas como organizar vários projetos dentro do serviço usado.
Thomas Owens

@Thomas Quanto à forma de organizar os repos ... . Tradicionalmente, você teria um projeto por repositório. Você está procurando instruções específicas sobre cada serviço?
yannis

O que estou procurando são convenções existentes em cada comunidade, se houver algo fora do comum. Nas minhas experiências, coisas como BitBucket, GitHub e SourceForge são mais comunidades com normas e convenções do que simplesmente serviços (embora algumas pessoas as usem como serviços).
Thomas Owens

3

Você esqueceu uma opção - hospedar seu próprio repositório. Realmente era a única maneira de voar até recentemente.

Se eu tivesse que usar um hoje, eu escolheria o bitbucket principalmente porque eles permitem acordos privados e rochas mercuriais.


Eu fiz isso com o VisualSVN sem muita dor.
Cody Areia

Estive lá feito isso. Você pode se tornar ainda mais eficaz com os appliances turnkeylinux.org . .
Wyatt Barnett

3

Depois de usar o Google Code, SourceForge e GitHub em diferentes momentos, eu diria que o GitHub é muito melhor que os outros dois:

  • Concentra-se completamente no trabalho real de criação e compartilhamento de código.
  • A manipulação de problemas é ativada por padrão e não é apenas simples de usar, mas também bem conectada às solicitações de código e pull.
  • A ajuda para iniciantes é excelente, como instruções passo a passo para iniciar um repositório e lidar com solicitações pull.
  • Não destinado à distribuição binária; isso é melhor tratado por sites especializados como o PyPI.
  • Wiki simples, em vez de ter que desenvolver sua própria página da Web do zero.
  • Excelente suporte de feed - Um feed único para tudo de interessante para mim.
  • Comunicação informal e, portanto, legível.
  • Desenvolvimento muito ativo de novos recursos.

Além disso, o Github é perfeito para armazenar coisas como soluções do Project Euler e codificar trechos de golfe por meio de gists.
Matt Ellen

1

Meus projetos pessoais não são muito grandes (muito texto, sem gráficos), por isso tenho repositórios do Mercurial com os mestres no DropBox. É uma maneira rápida de começar o backup (se o DropBox desaparecer, ainda tenho uma cópia do repositório em cada computador que possuo) e portabilidade.

Supondo que eu tenha um projeto que chegue ao ponto em que eu quero distribuí-lo, sempre posso movê-lo para o Bitbucket para maior visibilidade. Isso não inclui código para as soluções do Projeto Euler.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.