SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Development
Process & Tools
Una serie di regole e accorgimenti che
ci possono aiutare nel semplificare e
velocizzare il processo di sviluppo
1. Sviluppo
2. Condivisione e versioning
del codice
3. Test e pubblicazione
Server di sviluppo
facilmente manutenibile (c’è tutto e
va bene per tutti i componenti del
team)
minor costo di startup del progetto
piace ai designer
ma….
Server di sviluppo
controllo di versione MANUALE! -> “Ho fatto
delle modifiche, prima di cominciare
controlla…”
collaborazione difficile se non impossibile ->
“Mi lasci il server che devo provare una cosa?!”
rallentamento nello sviluppo -> Modifica,
pubblica, testa, rimodifica e ripubblica…. E
rimodifica….
minore libertà nello sviluppo -> “Chi ha
modificato il codice?! Non funziona niente!”
Server di sviluppo
Va usato….
Server di sviluppo
Quando è impossibile testare una
funzionalità in locale (es. integrazione con
sistemi esterni)
Quando è finito lo sviluppo e dobbiamo
testare in un ambiente simile alla
produzione. Così non potremo dire “da me
funzionava” :)
Test di carico
etc.
Ma così come
collaboriamo?
Come condividiamo
le modifiche?
Usa git… Luke!
Perché Git?
Sistema di versioning distribuito (copia
in locale della repository)
Versioning locale e remoto (commit e
push)
Branching veloce
Usato da molti PAAS per la pubblicazione
(in produzione con un push)
Aiuta nelle CODE REVIEW!!
Occhio però…
Se usato “A cazzo di cane!”
non ci aiuta e può anche
causare diversi problemi!
(Chiedete al P.O. per
conferme)
Git flow
Ovvero, come
organizzare il nostro
flusso di lavoro in
git evitando di avere
codice di produzione
non funzionante
Git flow (2)
master: codice in produzione
develop: branch “base” da cui
partire per sviluppare
hotfix: utilizzati per fix
urgenti in produzione
feature: branches contenenti
nuove funzionalità in
sviluppo
release: nuove versioni da
pubblicare (possibilmente a
fine sprint)
Git flow (3)
Quando deve
rientrare del codice
dai branch in release
e develop usiamo le
PULL REQUEST
perché ci permettono
di fare
CODE REVIEW
wordpress + git
startup
cloniamo la repository di wordpress
inizializziamo la nostra su wp-content
modifichiamo il .gitignore escludendo
tutto quello che non deve essere sotto
controllo di versione
… (suggeriment?!)
E alla fine
pubblichiamo…
Una volta che i fix o features sono pronti,
possiamo pubblicare su un server di “testing”
Se abbiamo git sul server, facciamo un push
delle modifiche
Se abbiamo ssh possiamo utilizzare tools per il
publishing (es. capistrano)
Se abbiamo solo ftp (DOH!!), possiamo (che si
legge DOBBIAMO) automatizzare con degli script
E alla fine
pubblichiamo… (2)
Se tutto funziona in “testing” possiamo
andare in produzione
La pubblicazione in produzione è uguale a
quella in testing (occhio ai file di
configurazione)
Il codice in produzione non DEVE
differire da quello di testing, altrimenti si
rompe tutto!

Contenu connexe

Similaire à Development process

DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
 
Automatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesAutomatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesGian Maria Ricci
 
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Gerardo Di Iorio
 
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS BuildGian Maria Ricci
 
GUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & AnjutaGUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & Anjutadelfinostefano
 
Progettato per specialisti del web
Progettato per specialisti del webProgettato per specialisti del web
Progettato per specialisti del webEugenio Uccheddu
 
Fiera di Pordenone 26/04/2014 - Testing in Ubuntu
Fiera di Pordenone 26/04/2014 - Testing in UbuntuFiera di Pordenone 26/04/2014 - Testing in Ubuntu
Fiera di Pordenone 26/04/2014 - Testing in UbuntuCarla Sella
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationAlessandro Alpi
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperStefano Ottaviani
 
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...Giulio Vian
 
Lavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.comLavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.comSimone Chiaretta
 
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...Marco Parenzan
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceAndrea Dottor
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERDotNetCampus
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automationDotNetCampus
 

Similaire à Development process (20)

DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
 
Standard Dev Workflow
Standard Dev WorkflowStandard Dev Workflow
Standard Dev Workflow
 
Automatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesAutomatically deployment to Azure Web Sites
Automatically deployment to Azure Web Sites
 
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
 
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS Build
 
GUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & AnjutaGUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & Anjuta
 
Xamarin DevOps
Xamarin DevOpsXamarin DevOps
Xamarin DevOps
 
Progettato per specialisti del web
Progettato per specialisti del webProgettato per specialisti del web
Progettato per specialisti del web
 
Fiera di Pordenone 26/04/2014 - Testing in Ubuntu
Fiera di Pordenone 26/04/2014 - Testing in UbuntuFiera di Pordenone 26/04/2014 - Testing in Ubuntu
Fiera di Pordenone 26/04/2014 - Testing in Ubuntu
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous Integration
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software Developer
 
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
 
Lavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.comLavorare con applicazioni Brownfield: il caso di 39x27.com
Lavorare con applicazioni Brownfield: il caso di 39x27.com
 
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita felice
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVER
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql Server
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automation
 

Development process

  • 1. Development Process & Tools Una serie di regole e accorgimenti che ci possono aiutare nel semplificare e velocizzare il processo di sviluppo
  • 2. 1. Sviluppo 2. Condivisione e versioning del codice 3. Test e pubblicazione
  • 3. Server di sviluppo facilmente manutenibile (c’è tutto e va bene per tutti i componenti del team) minor costo di startup del progetto piace ai designer ma….
  • 4. Server di sviluppo controllo di versione MANUALE! -> “Ho fatto delle modifiche, prima di cominciare controlla…” collaborazione difficile se non impossibile -> “Mi lasci il server che devo provare una cosa?!” rallentamento nello sviluppo -> Modifica, pubblica, testa, rimodifica e ripubblica…. E rimodifica…. minore libertà nello sviluppo -> “Chi ha modificato il codice?! Non funziona niente!”
  • 6. Server di sviluppo Quando è impossibile testare una funzionalità in locale (es. integrazione con sistemi esterni) Quando è finito lo sviluppo e dobbiamo testare in un ambiente simile alla produzione. Così non potremo dire “da me funzionava” :) Test di carico etc.
  • 7. Ma così come collaboriamo? Come condividiamo le modifiche?
  • 9. Perché Git? Sistema di versioning distribuito (copia in locale della repository) Versioning locale e remoto (commit e push) Branching veloce Usato da molti PAAS per la pubblicazione (in produzione con un push) Aiuta nelle CODE REVIEW!!
  • 10. Occhio però… Se usato “A cazzo di cane!” non ci aiuta e può anche causare diversi problemi! (Chiedete al P.O. per conferme)
  • 11. Git flow Ovvero, come organizzare il nostro flusso di lavoro in git evitando di avere codice di produzione non funzionante
  • 12. Git flow (2) master: codice in produzione develop: branch “base” da cui partire per sviluppare hotfix: utilizzati per fix urgenti in produzione feature: branches contenenti nuove funzionalità in sviluppo release: nuove versioni da pubblicare (possibilmente a fine sprint)
  • 13. Git flow (3) Quando deve rientrare del codice dai branch in release e develop usiamo le PULL REQUEST perché ci permettono di fare CODE REVIEW
  • 14. wordpress + git startup cloniamo la repository di wordpress inizializziamo la nostra su wp-content modifichiamo il .gitignore escludendo tutto quello che non deve essere sotto controllo di versione … (suggeriment?!)
  • 15. E alla fine pubblichiamo… Una volta che i fix o features sono pronti, possiamo pubblicare su un server di “testing” Se abbiamo git sul server, facciamo un push delle modifiche Se abbiamo ssh possiamo utilizzare tools per il publishing (es. capistrano) Se abbiamo solo ftp (DOH!!), possiamo (che si legge DOBBIAMO) automatizzare con degli script
  • 16. E alla fine pubblichiamo… (2) Se tutto funziona in “testing” possiamo andare in produzione La pubblicazione in produzione è uguale a quella in testing (occhio ai file di configurazione) Il codice in produzione non DEVE differire da quello di testing, altrimenti si rompe tutto!