Development process

16
Development Process & Tools Una serie di regole e accorgimenti che ci possono aiutare nel semplificare e velocizzare il processo di sviluppo

description

A small introduction to tools and conventions needed for an agile development process

Transcript of Development process

Page 1: Development process

Development Process & Tools

Una serie di regole e accorgimenti che ci possono aiutare nel semplificare e velocizzare il processo di sviluppo

Page 2: Development process

1. Sviluppo

2. Condivisione e versioning del codice

3. Test e pubblicazione

Page 3: Development process

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….

Page 4: Development process

Server di sviluppocontrollo 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!”

Page 5: Development process

Server di sviluppo

Va usato….

Page 6: Development process

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.

Server di sviluppo

Page 7: Development process

Ma così come collaboriamo?

Come condividiamo le modifiche?

Page 8: Development process

Usa git… Luke!

Page 9: Development process

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!!

Page 10: Development process

Occhio però…

Se usato “A cazzo di cane!” non ci aiuta e può anche causare diversi problemi!

(Chiedete al P.O. per conferme)

Page 11: Development process

Git flow

Ovvero, come organizzare il nostro flusso di lavoro in

git evitando di avere codice di produzione

non funzionante

Page 12: Development process

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)

Page 13: Development process

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

Page 14: Development process

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?!)

Page 15: Development process

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

Page 16: Development process

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!