Quando si tratta di ospitare i tuoi personali progetti di proiezione, una struttura di servizio e di progetto si distingue? [chiuso]

12

Sto guardando Google Code, SourceForge, BitBucket e GitHub, poiché sembrano essere i grandi giocatori. Ora, non ho ancora scomposto tutte le funzionalità che forniscono, ma sono davvero alla ricerca di un posto dove inserire vari codici che scrivo (le mie soluzioni per Project Euler, codice che potrei scrivere per il Code Golf / Programmazione di puzzle Stack Exchange e così via) in una posizione centralizzata.

Quindi, la mia prima domanda è: per una situazione come questa, un servizio spicca tra gli altri?

Una volta che ho scelto un servizio, devo quindi scegliere come distribuire il codice. Ci sono alcune opzioni che vedo per l'impostazione di repository e progetti. Un singolo repository può contenere un numero qualsiasi di progetti - ad esempio, potrei avere un repository "Tom Owens's Project Euler Solutions" per tutte le mie varie soluzioni a Project Euler, con progetti per ogni lingua e ambiente nelle directory all'interno di questo repository, un altro repository per le mie varie soluzioni Code Kata e così via. Oppure potrei rompere qualcosa del genere per lingua (ho le soluzioni Project Euler in Python in un repository, soluzioni PE in Java in un altro repository e soluzioni Code Kata C ++ in un terzo repository).

La mia seconda domanda: Esistono limitazioni o convenzioni esistenti per determinare come condividere i campioni di codice che si sceglie di rendere aperti, specialmente in termini di come si creano i repository? Il mio pensiero è che questo possa essere dettato dal servizio che scegli (basato sulle convenzioni della comunità).

    
posta Thomas Owens 01.06.2011 - 18:53
fonte

4 risposte

10

Bitbucket.

Forniscono un servizio eccellente, repository privati nel loro pacchetto gratuito (oltre a un pubblico illimitato) e sono piuttosto reattivi nel tracker dei problemi.

Lo stesso, meno i repository privati gratuiti, sono veri per Github, ma mi piace immensamente git. Questa è una preferenza personale, non sto sostenendo contro git, se per qualche motivo strano lo preferisci su hg, allora Github è una scelta perfettamente valida.

Per quanto riguarda come organizzare i repository, non mescolare le lingue se puoi evitarlo. La maggior parte degli IDE è basata sul presupposto che un progetto sia costruito su una singola lingua (eccetto per i progetti web in cui è prevista una combinazione di linguaggio + html, css & js). Non sto dicendo che l'IDE non sarà in grado di far fronte, solo che funzionalità come il completamento del codice saranno un po 'più lente in quanto l'IDE dovrà caricare i dati su come gestire ciascuna lingua.

Se i tuoi repository sono pubblici (quindi illimitati), opterei per un repository per lingua per schema di progetto, cioè "euler_cpp", "euler_python", ecc. Non importa quale servizio scegli, come organizzare i tuoi repository dipende interamente da te.

Per quanto riguarda la struttura delle cartelle, per le soluzioni euler del progetto:

  • Una cartella per problema, se hai intenzione di avere soluzioni diverse per lo stesso problema
  • Un file per problema, per soluzioni singole

Scegli quello che si applica e seguilo, se per un problema hai più di una soluzione, scegli la prima struttura anche se non hai una seconda soluzione per nessun altro problema.

aggiornamento:

L'unico file per problema viene proposto solo quando è effettivamente applicabile e viene suggerito come uno schema potenziale per le soluzioni per la risoluzione dei problemi di euler, poiché questo è l'unico progetto specificato nella domanda.

Come da commento di btilly, aggiungo che la migliore / più naturale struttura dovrebbe essere decisa per lingua, poiché ogni lingua e / o piattaforma ha le proprie convenzioni e amp; pratiche relative a file e cartelle.

    
risposta data 01.06.2011 - 19:25
fonte
3

Hai dimenticato una opzione - ospitare il tuo repository. Era davvero l'unico modo per volare fino a poco tempo fa.

Se dovessi usarne uno oggi, sceglierei bitbucket principalmente perché consentono repository privati e rocce mercuriali.

    
risposta data 01.06.2011 - 23:33
fonte
3

Dopo aver utilizzato Google Code, SourceForge e GitHub in momenti diversi, direi che GitHub è molto meglio degli altri due:

  • Si concentra completamente sull'effettivo lavoro di creazione e condivisione del codice.
  • La gestione dei problemi è abilitata per impostazione predefinita e non è solo semplice da utilizzare, ma è ben connessa sia con le richieste di codice che di pull.
  • La guida per principianti è eccellente, ad esempio istruzioni dettagliate per iniziare con un repository e per gestire le richieste di pull.
  • Non inteso per la distribuzione binaria; questo è gestito meglio da siti specializzati come PyPI.
  • wiki semplice invece di dover sviluppare la tua pagina web da zero.
  • Supporto feed eccellente - Un feed singolo per tutto ciò che è interessante per me.
  • Comunicazione informale e quindi leggibile
  • Sviluppo molto attivo di nuove funzionalità.
risposta data 03.06.2011 - 10:54
fonte
1

I miei progetti personali non sono molto grandi (un sacco di testo, nessuna grafica), quindi ho repository Mercurial con i master in DropBox. È un modo rapido per iniziare con il backup (se DropBox va via, ho ancora una copia del repository su ogni computer che possiedo) e la portabilità.

Supponendo di avere un progetto che arriva al punto in cui voglio distribuirlo, posso sempre spostarlo su Bitbucket per maggiore visibilità. Questo non include il codice per le soluzioni Euler Project.

    
risposta data 01.06.2011 - 23:41
fonte