La scelta del giusto code repository è davvero importante, ma come è possibile valutare quale sia la piattaforma più adatta alle proprie esigenze? L'articolo di oggi si focalizza proprio su questo argomento, infatti andremo ad analizzare i bisogni di un team di sviluppatori e le varie feature di alcuni dei più popolari servizi di code repository.
Prima di tutto quali sono le feature essenziali di un servizio di code repository? Andiamo con ordine, possiamo suddividere i Version Control Systems in tre differenti tipologie:
- Locali: tutti i developer hanno accesso al codice e sono nello stesso file system.
- Centralizzati: il team di un progetto ha una singola copia del codice in un server centrale e i vari membri inviano dei commit per eseguire gli aggiornamenti sul codice.
- Distribuiti: gli sviluppatori lavorano sui loro repository locali e i cambiamenti sono condivisi tra i vari repository.
Quindi ecco le feature chiave di un buon repository:
- Possibilità di eseguire Pull request.
- Web-based code review.
- Real-time e collaborative editing.
- Bug tracking.
- Supporto alla sintassi Markdown.
- Autenticazione a due fattori.
- Possibilità di creare fork e cloni del repo.
- Snippets.
- Integrazione con servizi di terze parti.
- Possibilità di importare il codice da vecchi repo.
- Licenza open source.
I servizi preferiti dai developer sono essenzialmente 3 ovvero: Github, Gitlab e Bitbucket.
Github
Partiamo da Github, questo portale è sicuramente il più famoso e utilizzato per i progetti open source. Ecco quali sono gli aspetti di Github che i developer trovano particolarmente comodi:
- Sistema di bug tacking avanzato e collaborativo.
- Tool di ricerca molto veloce.
- Possibilità di condividere il codice non solo tra utenti Github ma anche con soggetti esterni.
- Editing collaborativo.
- Possibilità di integrare Github con vari cloud host service.
- Supporto a Git, SVN, HG e TFS.
Github ha però delle limitazioni, infatti non è un servizio gratuito al 100% e alcune funzionalità sono disponibili solo con account premium.
Gitlab
Passiamo a Gitlab, questo code repository è stato sviluppato basandosi su Git anche se ovviamente le sue funzionalità si sono evolute negli anni e rispecchiano quelle dei competitor. Ecco gli elementi che lo rendono interessante:
- È gratuito, infatti si possono avere tutti i repository che si vogliono senza pagare nulla.
- È sotto licenza open source.
- Ha un ottimo tool di Bug tracking e un buon code editor Web based.
- Integrazione completa con LDAP.
- Supporto all'importazione del codice con Git.
Gitlab ha però anche dei difetti, infatti ha un'interfaccia relativamente poco reattiva e soffrirebbe abbastanza spesso di problemi tecnici con i repository.
Bitbucket
Ultimo servizio di code repository di oggi è Bitbucket. Come interfaccia e feature è molto simile a Github. Bitbucket però è più orientato verso i professional development team che alle community. Questo suo target gli ha consentito di acquisire delle feature particolari:
- Repository privati illimitati.
- Integrazione completa con Jira.
- Tool di codice review avanzati.
- Login con verifica a due fattori.
- Possibilità di eseguire il login con Atlassian ID o con Google ID.
- Integrazione con Trello.
- Possibilità di importazione codice da altri servizi come Github o da file in formato Excel.
- Supporto per Git, CodePlex, Google Code, Mercurial (HG), SourceForge.
- Bitbucket Pipelines, tool che da al developer una visione end-to-end dello sviluppo del codice.
Bitbucket si presenta dunque come un servizio molto completo e con un target definito. Il suo unico "difetto" è la sua licenza che "purtroppo" è proprietaria.
Via Jaxenter