L'obiettivo del corso è quello di insegnare le basi della gestione del ciclo di
sviluppo dei progetti software, utilizzando tecnologie come i Version Control Systems
(VCS), Git e altri.
Lezione 1 - Introduzione al corso
Argomenti:
- Motivi per studiare Gestione Progetto;
- Lo sviluppo collaborativo;
-
I Version Control Systems (VCS):
- Caratteristiche principali;
- Parole chiave (commit, branch e merge).
- Introduzione a Git.
|
Materiali
|
|
Slides della lezione
|
(link)
|
Lezione 2 - Fondamenti di Git
Argomenti:
- Cenni storici;
- Configurazione profilo utente;
- Comando
git init;
- Comando
git commit -m "[...]".
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Esercizio 1 - Lo Zoo di Java
|
(link)
|
Lezione 3 - Funzioni di hash e commit
Argomenti:
- Funzioni di hash;
-
Composizione di un commit:
- Intestazione (autore, data e messaggio);
- Modifiche dei file selezionati.
-
Navigazione nello storico dei commit:
- Comando
git checkout;
- Puntatore
HEAD;
- Concetto di detached head.
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Esercizio 2 - La macchina del tempo
|
(link)
|
Lezione 4 - Gestione dei branch
Argomenti:
-
I branch in un VCS:
- Definizione di branch;
- Motivi per creare un branch;
- Esempio: con o senza Git?
-
I branch in Git:
- Creazione di un nuovo branch;
- Visualizzazione dei branch in un repository;
- Navigazione tra i branch;
-
Viaggio tra le dimensioni:
- Detached head;
- Regole di
add e commit;
-
L'operazione di merge:
- Definizione di merge;
- Comandi per Git Bash.
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Esercizio 3 - Viaggio nelle dimensioni (1)
|
(link)
|
Lezione 5 - I conflitti nei merge
Argomenti:
-
L'operazione di merge:
- Definzione;
- Comando
git merge;
- Il commit di merge.
-
I conflitti nell'operazione di merge:
- Come risolvere un conflitto;
- Gestione delle modifiche;
- Differenze tra
HEAD e branch.
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Esercizio 4 - Segreteria dell'Accademia
|
(link)
|
Lezione 6 - Git Flow (parte 1)
Argomenti:
-
Introduzione a Git Flow:
- Modello di funzionamento;
- Elenco dei vari branch.
-
I branch di Git Flow:
- Il branch
development;
- Il branch
feature/[...];
- Il branch
release/[...];
- Il branch
hotfix/[...].
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Dispensa - "Learn Git Branching"
|
(link)
|
Lezione 7 - Git Flow (parte 2)
Argomenti:
-
L'estensione Git Flow:
- Uso del comando
git flow init;
- Configurazione iniziale dei branch.
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Esercizio 5 - Wattpad
|
(link)
|
Lezione 8 - Introduzione a GitHub
Argomenti:
-
Introduzione a GitHub:
- Cenni storici;
- Git + GitHub = VCS ibrido.
-
Creazione del repository:
- Nome e descrizione;
- Visibilità (pubblico / privato);
- Cenni su
.gitignore;
- Cenni sulle licenze.
-
Credenziali e sicurezza:
- Gestione dei Personal Access Tokens;
- Gli Scope di un token;
- Salvataggio delle credenziali su Git.
-
Lavorare sul repository:
- Comandi
git clone e git remote add [...];
- Comando
git pull;
- Comando
git push.
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Esercizio 6 - Hello World (GitHub)
|
(link)
|
Lezione 9 - Gestione delle Pull Request
Argomenti:
-
Concetto di Pull Request (PR):
- Ripasso su operazione di merge;
- Operazione di merge in cloud.
-
Sviluppo condiviso:
- Fasi di approvazione di una PR;
-
Tag(s) della PR:
- Revisori (
Reviewers);
- Assegnatari (
Assignees);
- Etichette (
Labels).
- Chiusura di una PR.
|
Materiali
|
|
Slides della lezione
|
|
Progetto di Natale
|
|
Slides della lezione
|
(link)
|
|
Approfondimento - API REST con PHP + JS
|
(link)
|
|
Approfondimento - Query SQL con PHP
|
(link)
|