Cuando se trata de alojar sus proyectos personales desechables, ¿se destaca un servicio y la estructura del proyecto? [cerrado]

12

Estoy mirando Google Code, SourceForge, BitBucket y GitHub, ya que parecen ser los grandes jugadores. Ahora, aún no he desglosado todas las características que proporcionan, pero realmente estoy buscando un lugar para colocar varios códigos que escribo (mis soluciones para el Proyecto Euler, código que podría escribir para Code Golf / Programación de intercambio de pila de rompecabezas, etc.) en una ubicación centralizada.

Entonces, mi primera pregunta es: para una situación como esta, ¿un servicio se destaca entre los demás?


Una vez que he elegido un servicio, tengo que elegir cómo voy a distribuir el código. Hay algunas opciones que veo para configurar los repositorios y proyectos. Un único repositorio puede contener cualquier número de proyectos; por ejemplo, podría tener un repositorio "Tom Euwe's Project Euler Solutions" para todas mis diversas soluciones para Project Euler, con proyectos para cada idioma y entorno en directorios dentro de este repositorio, otro repositorio para mis diversas soluciones de Code Kata, etc. O podría desglosar algo así por idioma (tener soluciones de Project Euler en Python en un repositorio, soluciones PE en Java en otro repositorio y soluciones Code Kata C ++ en un tercer repositorio).

Mi segunda pregunta: ¿Existen limitaciones o convenciones que existan para determinar cómo debe compartir sus ejemplos de código que elige abrir, especialmente en términos de cómo crea sus repositorios? Mi opinión es que esto podría ser dictado por el servicio que elijas (según las convenciones de la comunidad).

Thomas Owens
fuente

Respuestas:

10

Bitbucket

Proporcionan un excelente servicio, repositorios privados en su paquete gratuito (más público ilimitado) y responden bastante bien en su rastreador de problemas.

Lo mismo, menos los repositorios privados gratuitos, son ciertos para Github, pero no me gusta mucho git. Esa es una preferencia personal, no estoy abogando contra git, si por alguna extraña razón lo prefieres a hg, entonces Github es una opción perfectamente válida.

En cuanto a cómo organizar los repositorios, no mezcle idiomas si puede evitarlo. La mayoría de los IDE se basan en el supuesto de que un proyecto se construye en un solo idioma (a excepción de los proyectos web donde se espera una combinación de idioma + html, css y js). No estoy diciendo que el IDE no podrá hacer frente, solo que características como la finalización del código serán un poco más lentas ya que el IDE tendrá que cargar datos sobre cómo manejar cada idioma.

Si sus repositorios son públicos (por lo tanto, ilimitados), elegiría un repositorio por idioma por esquema de proyecto, es decir, "euler_cpp", "euler_python", etc. Realmente no importa qué servicio elija, cómo organice sus repositorios Depende completamente de usted.

En cuanto a la estructura de carpetas, para las soluciones de proyecto euler:

  • Una carpeta por problema, si planea tener diferentes soluciones para el mismo problema
  • Un archivo por problema, para soluciones individuales

Elija la que corresponda y manténgala, si para un problema tiene más de una solución, elija la primera estructura incluso si no tiene una segunda solución para cualquier otro problema.

actualizar:

El único archivo por problema se propone solo para cuando es realmente aplicable y se sugiere como un esquema potencial para soluciones a problemas de proyecto euler, ya que este es el único proyecto que se especifica en la pregunta.

Según el comentario de btilly, estoy agregando que la estructura mejor / más natural debe decidirse por idioma, ya que cada idioma y / o plataforma tiene sus propias convenciones y prácticas con respecto a los archivos y carpetas.

Yannis
fuente
1
La estructura de la carpeta debe depender del idioma. Una persona que usa un lenguaje de script con frecuencia escribe código en un archivo que en C / C ++ se escribiría naturalmente en varios archivos en una carpeta.
btilly
@btilly bien.
Agregaré
En realidad, no estaba buscando específicamente cómo diseñar archivos dentro de un proyecto, sino cómo diseñar una serie de proyectos dentro del servicio utilizado.
Thomas Owens
@Thomas En cuanto a la forma de organizar los repositorios ... . Tradicionalmente tendrías un proyecto por repositorio. ¿Estás buscando instrucciones específicas sobre cada servicio?
Yannis 01 de
Lo que estoy buscando son convenciones que existan dentro de cada comunidad, si hay algo fuera de lo común. En mis experiencias, cosas como BitBucket, GitHub y SourceForge son más comunidades con normas y convenciones que simples servicios (aunque algunas personas los usan como servicios).
Thomas Owens
3

Olvidó una opción: alojar su propio repositorio. Realmente era la única forma de volar hasta hace poco.

Si tuviera que usar uno hoy, elegiría bitbucket principalmente porque permiten repositorios privados y rocas mercuriales.

Wyatt Barnett
fuente
Hice esto con VisualSVN sin mucho dolor.
Cody Sand
He estado allí hecho eso. Puede ser aún más efectivo con los dispositivos turnkeylinux.org . .
Wyatt Barnett
3

Después de usar Google Code, SourceForge y GitHub en diferentes momentos, diría que GitHub es mucho mejor que los otros dos:

  • Se enfoca completamente en el trabajo real de crear y compartir código.
  • El manejo de problemas está habilitado de manera predeterminada, y no solo es fácil de usar, sino que está bien conectado tanto con el código como con las solicitudes de extracción.
  • La ayuda para novatos es excelente, como las instrucciones paso a paso para comenzar con un repositorio y para manejar las solicitudes de extracción.
  • No es para distribución binaria; esto es mejor manejado por sitios especializados como PyPI.
  • Wiki simple en lugar de tener que desarrollar su propia página web desde cero.
  • Excelente soporte de alimentación: una alimentación única para todo lo que me interesa.
  • Comunicación informal, y por lo tanto legible.
  • Desarrollo muy activo de nuevas características.
l0b0
fuente
Además, Github es perfecto para almacenar cosas como las soluciones de Project Euler y los fragmentos de código de golf mediante el uso de lo esencial.
Matt Ellen
1

Mis proyectos personales no son muy grandes (mucho texto, sin gráficos), así que tengo repositorios de Mercurial con los maestros en DropBox. Es una forma rápida de comenzar con la copia de seguridad (si DropBox desaparece, todavía tengo una copia del repositorio en cada computadora que poseo) y la portabilidad.

Suponiendo que tengo un proyecto que llega al punto donde quiero distribuirlo, siempre puedo moverlo a Bitbucket para una mayor visibilidad. Esto no incluye código para las soluciones de Euler Project.

David Thornley
fuente