Scelta degli strumenti e delle metodologie per migliorare i tempi e la qualità del software. Conoscere le potenzialità che TYPO3 ci offre sia con le modalità di sviluppo classico (tslib_pibase), sia con lo sviluppo MVC (ExtBase).
1. L'analisi e le scelte
nello sviluppo di un
plugin
Scelta degli strumenti e delle metodologie per
migliorare i tempi e la qualità del software.
Conoscere le potenzialità che TYPO3 ci offre
sia con le modalità di sviluppo classico
(tslib_pibase), sia con lo sviluppo MVC
(ExtBase).
Federico Bernardin <federico@bernardin.it>
T3Camp Italia Bologna 27/28 Ottobre
L’evento italiano dedicato a 2011
2. About me
About me
Sono libero professionista e mi occupo
di consulenza informatica.
In particolare seguo i progetti web per
l’agenzia Pallino & Co. di Padova, dove
coordino il team di sviluppatori su
Mi occupo di progettazione e dello sviluppo di siti web con TYPO3 dal
2004, ho all’attivo alcuni plugin, tra cui xflextemplate, da Aprile 2010 sono
TYPO3 Certified Integrator.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
4. Obiettivi
Possibilità di riportarmi ad una versione precedente alle ultime
modifiche.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
5. Obiettivi
Possibilità di riportarmi ad una versione precedente alle ultime
modifiche.
Possibilità di lavoro in team, dove più persone modificano lo
stesso file (non le stesse righe).
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
6. Obiettivi
Possibilità di riportarmi ad una versione precedente alle ultime
modifiche.
Possibilità di lavoro in team, dove più persone modificano lo
stesso file (non le stesse righe).
Comodità nella scrittura del codice, aiuto nella scrittura delle
funzioni.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
7. Obiettivi
Possibilità di riportarmi ad una versione precedente alle ultime
modifiche.
Possibilità di lavoro in team, dove più persone modificano lo
stesso file (non le stesse righe).
Comodità nella scrittura del codice, aiuto nella scrittura delle
funzioni.
Sistemi di controllo della sintassi.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
8. Obiettivi
Possibilità di riportarmi ad una versione precedente alle ultime
modifiche.
Possibilità di lavoro in team, dove più persone modificano lo
stesso file (non le stesse righe).
Comodità nella scrittura del codice, aiuto nella scrittura delle
funzioni.
Sistemi di controllo della sintassi.
Integrazione con FTP o gestione di cartelle remote.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
10. Obiettivi
Processo di controllo della pubblicazione e dello sviluppo
mediante task control, features e milestone.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
11. Obiettivi
Processo di controllo della pubblicazione e dello sviluppo
mediante task control, features e milestone.
Aiuto nell'analisi del plugin.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
12. Obiettivi
Processo di controllo della pubblicazione e dello sviluppo
mediante task control, features e milestone.
Aiuto nell'analisi del plugin.
Sistemi di refactoring.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
13. Obiettivi
Processo di controllo della pubblicazione e dello sviluppo
mediante task control, features e milestone.
Aiuto nell'analisi del plugin.
Sistemi di refactoring.
Sistemi di test e controllo.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
14. Obiettivi
Processo di controllo della pubblicazione e dello sviluppo
mediante task control, features e milestone.
Aiuto nell'analisi del plugin.
Sistemi di refactoring.
Sistemi di test e controllo.
Utilizzo delle funzioni integrate in TYPO3.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
16. Analisi e briefing
La prima operazione e forse la più complessa e delicata è la
raccolta delle informazioni per sviluppare un’estensione
effettivamente attinente alle richieste del cliente.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
17. Analisi e briefing
La prima operazione e forse la più complessa e delicata è la
raccolta delle informazioni per sviluppare un’estensione
effettivamente attinente alle richieste del cliente.
Errori in questa fase si ripercuotono poi in maniera altamente
traumatica sulla fase di sviluppo, richiedendo a volte la
necessità di un refactoring dell’applicazione.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
19. Strumenti
IDE (Integrated Development Environment) è l’applicazione con
cui lavoriamo principalmente durante lo sviluppo e che ci deve
fornite tutte le funzioni di cui abbiamo bisogno durante la
scrittura del codice.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
20. Strumenti
IDE (Integrated Development Environment) è l’applicazione con
cui lavoriamo principalmente durante lo sviluppo e che ci deve
fornite tutte le funzioni di cui abbiamo bisogno durante la
scrittura del codice.
Sistema di versioning. Questa applicazione ci deve dare tutte le
funzioni per poter gestire il versionamento del codice,
soprattutto in una modalità multi utente.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
21. Strumenti
IDE (Integrated Development Environment) è l’applicazione con
cui lavoriamo principalmente durante lo sviluppo e che ci deve
fornite tutte le funzioni di cui abbiamo bisogno durante la
scrittura del codice.
Sistema di versioning. Questa applicazione ci deve dare tutte le
funzioni per poter gestire il versionamento del codice,
soprattutto in una modalità multi utente.
Sistema di gestione del processo con task, bugs, features, con
integrazione del processo di versionamento e pubblicazioni
delle modifiche.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
23. Strumenti
Sistema di test e controlli, per poter ridurre il carico di lavoro in
caso di modifiche al codice.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
24. Strumenti
Sistema di test e controlli, per poter ridurre il carico di lavoro in
caso di modifiche al codice.
Sistema di pubblicazione mediante protocollo FTP
dell’applicazione su server remoti.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
25. Subversion definizione e
vantaggi
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
26. Subversion definizione e
vantaggi
Subversion è un’applicazione server per la gestione multi utente
del versionamento.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
27. Subversion definizione e
vantaggi
Subversion è un’applicazione server per la gestione multi utente
del versionamento.
SVN garantisce la possibilità di riportarsi ad una qualsiasi
versione salvata precedentemente o confrontare due revisioni.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
28. Subversion definizione e
vantaggi
Subversion è un’applicazione server per la gestione multi utente
del versionamento.
SVN garantisce la possibilità di riportarsi ad una qualsiasi
versione salvata precedentemente o confrontare due revisioni.
SVN garantisce la possibilità di effettuare la fusione (merge) del
codice, magari sviluppato da persone diverse.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
29. Subversion definizione e
vantaggi
Subversion è un’applicazione server per la gestione multi utente
del versionamento.
SVN garantisce la possibilità di riportarsi ad una qualsiasi
versione salvata precedentemente o confrontare due revisioni.
SVN garantisce la possibilità di effettuare la fusione (merge) del
codice, magari sviluppato da persone diverse.
SVN permette di creare delle patch che permettono
l’aggiornamento del codice da una revisione a quella attuale.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
33. Eclipse-Aptana definizione
e vantaggi
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
34. Eclipse-Aptana definizione
e vantaggi
Eclipse è uno strumento inizialmente sviluppato da IBM per
JAVA. Oggi è un IDE ottimizzato per l’uso di svariati linguaggi,
come ad esempio PHP.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
35. Eclipse-Aptana definizione
e vantaggi
Eclipse è uno strumento inizialmente sviluppato da IBM per
JAVA. Oggi è un IDE ottimizzato per l’uso di svariati linguaggi,
come ad esempio PHP.
Aptana è un plugin di Eclipse che permette di utilizzare FTP, e
di avere un editor PHP integrato con SVN e Mylyn plugin.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
36. Eclipse-Aptana definizione
e vantaggi
Eclipse è uno strumento inizialmente sviluppato da IBM per
JAVA. Oggi è un IDE ottimizzato per l’uso di svariati linguaggi,
come ad esempio PHP.
Aptana è un plugin di Eclipse che permette di utilizzare FTP, e
di avere un editor PHP integrato con SVN e Mylyn plugin.
Aptana e il suo editor PHP (PDT) permettono la gestione del
template e dell’autocomplete, rendendo meno gravoso la
scrittura del codice da parte dell’utente.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
37. Eclipse-Aptana definizione
e vantaggi
Eclipse è uno strumento inizialmente sviluppato da IBM per
JAVA. Oggi è un IDE ottimizzato per l’uso di svariati linguaggi,
come ad esempio PHP.
Aptana è un plugin di Eclipse che permette di utilizzare FTP, e
di avere un editor PHP integrato con SVN e Mylyn plugin.
Aptana e il suo editor PHP (PDT) permettono la gestione del
template e dell’autocomplete, rendendo meno gravoso la
scrittura del codice da parte dell’utente.
Aptana (Eclipse) possiede moltissimi plugin che estendono le
funzionalità base come ad esempio il debugger e la gestione del
refactoring.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
40. TYPO3 Forge definizione e
vantaggi
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
41. TYPO3 Forge definizione e
vantaggi
Forge raggiungibile all’indirizzo http://forge.typo3.org è un
servizio che l’associazione mette a disposizione per poter avere
un ambiente dove sviluppare e mantenere le proprie estensioni
pubbliche.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
42. TYPO3 Forge definizione e
vantaggi
Forge raggiungibile all’indirizzo http://forge.typo3.org è un
servizio che l’associazione mette a disposizione per poter avere
un ambiente dove sviluppare e mantenere le proprie estensioni
pubbliche.
Forge si basa su Redmine un application project framework per
la gestione dei progetti scritto in ruby on rails.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
43. TYPO3 Forge definizione e
vantaggi
Forge raggiungibile all’indirizzo http://forge.typo3.org è un
servizio che l’associazione mette a disposizione per poter avere
un ambiente dove sviluppare e mantenere le proprie estensioni
pubbliche.
Forge si basa su Redmine un application project framework per
la gestione dei progetti scritto in ruby on rails.
Automaticamente viene creato un’ambiente pronto per
mantenere le nostre estensioni con un repository svn compreso.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
44. TYPO3 Forge definizione e
vantaggi
Forge raggiungibile all’indirizzo http://forge.typo3.org è un
servizio che l’associazione mette a disposizione per poter avere
un ambiente dove sviluppare e mantenere le proprie estensioni
pubbliche.
Forge si basa su Redmine un application project framework per
la gestione dei progetti scritto in ruby on rails.
Automaticamente viene creato un’ambiente pronto per
mantenere le nostre estensioni con un repository svn compreso.
E’ possibile gestire nuove richieste per bug fixing, features e
task.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
45. TYPO3 Forge definizione e
vantaggi
Forge raggiungibile all’indirizzo http://forge.typo3.org è un
servizio che l’associazione mette a disposizione per poter avere
un ambiente dove sviluppare e mantenere le proprie estensioni
pubbliche.
Forge si basa su Redmine un application project framework per
la gestione dei progetti scritto in ruby on rails.
Automaticamente viene creato un’ambiente pronto per
mantenere le nostre estensioni con un repository svn compreso.
E’ possibile gestire nuove richieste per bug fixing, features e
task.
Il sistema si integra perfettamente con Eclipse potendo
recuperare la lista delle segnalazioni da remoto tramite il plugin
Mylyn.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
53. TYPO3 come framework
TYPO3 non è solo un CMS ma bensì un framework, fornendo
una serie di librerie che aiutano a gestire le varie funzionalità,
senza la necessità di scrivere ridondanti funzioni.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
54. TYPO3 come framework
TYPO3 non è solo un CMS ma bensì un framework, fornendo
una serie di librerie che aiutano a gestire le varie funzionalità,
senza la necessità di scrivere ridondanti funzioni.
L’estensione extdeveval, permette di aggiungere nella barra
superiore di TYPO3 un’icona che permette di vedere le varie
classi e funzioni che TYPO3 mette a disposizione per gli
sviluppatori
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
55. TYPO3 come framework
TYPO3 non è solo un CMS ma bensì un framework, fornendo
una serie di librerie che aiutano a gestire le varie funzionalità,
senza la necessità di scrivere ridondanti funzioni.
L’estensione extdeveval, permette di aggiungere nella barra
superiore di TYPO3 un’icona che permette di vedere le varie
classi e funzioni che TYPO3 mette a disposizione per gli
sviluppatori
Un’alternativa è andare ad api.typo3.org, dove potete trovare la
lista completa delle funzioni all’interno del sistema.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
57. I test
Una delle parti più complesse e importanti dello sviluppo di un
plugin sono i test.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
58. I test
Una delle parti più complesse e importanti dello sviluppo di un
plugin sono i test.
In genere in PHP esiste PHP Unit Test che fornisce una serie di
librerie per poter effettuare dei test sul software realizzato.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
59. I test
Una delle parti più complesse e importanti dello sviluppo di un
plugin sono i test.
In genere in PHP esiste PHP Unit Test che fornisce una serie di
librerie per poter effettuare dei test sul software realizzato.
L’estensione PHP Unit (<phpunit>) di TYPO3 ci da la possibilità
di testare e verificare i nostri test case.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
60. I test
Una delle parti più complesse e importanti dello sviluppo di un
plugin sono i test.
In genere in PHP esiste PHP Unit Test che fornisce una serie di
librerie per poter effettuare dei test sul software realizzato.
L’estensione PHP Unit (<phpunit>) di TYPO3 ci da la possibilità
di testare e verificare i nostri test case.
I test diventano importanti nei casi in cui un piccolo refactor
potrebbe modificare il comportamento del codice, riducendo
fortemente i tempi di test.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
62. Scelta del paradigma
In TYPO3 abbiamo due soluzioni fondamentali (incorporate
direttamente del sistema) per sviluppare il nostro plugin.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
63. Scelta del paradigma
In TYPO3 abbiamo due soluzioni fondamentali (incorporate
direttamente del sistema) per sviluppare il nostro plugin.
Effettuando l’extend della classe tslib_pibase possiamo
sviluppare un plugin con il paradigma OOP (Object Oriented
Programming). Questa classe ci fornisce una serie di
funzionalità base utili per implementare la nostra estensione.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
64. Scelta del paradigma
In TYPO3 abbiamo due soluzioni fondamentali (incorporate
direttamente del sistema) per sviluppare il nostro plugin.
Effettuando l’extend della classe tslib_pibase possiamo
sviluppare un plugin con il paradigma OOP (Object Oriented
Programming). Questa classe ci fornisce una serie di
funzionalità base utili per implementare la nostra estensione.
Un’alternativa più nuova è sicuramente l’utilizzo di un
paradigma MVC (model view controller). L’associazione ha
creato un’estensione (<extbase>) che permette di utilizzare il
paradigma MVC dentro la nostra estensione.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
65. Scelta del paradigma
In TYPO3 abbiamo due soluzioni fondamentali (incorporate
direttamente del sistema) per sviluppare il nostro plugin.
Effettuando l’extend della classe tslib_pibase possiamo
sviluppare un plugin con il paradigma OOP (Object Oriented
Programming). Questa classe ci fornisce una serie di
funzionalità base utili per implementare la nostra estensione.
Un’alternativa più nuova è sicuramente l’utilizzo di un
paradigma MVC (model view controller). L’associazione ha
creato un’estensione (<extbase>) che permette di utilizzare il
paradigma MVC dentro la nostra estensione.
Extbase è nata per permettere di creare applicazioni MVC
FLOW3-compatibili.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
67. Documentazione
Lo sviluppo di un’estensione deve essere sempre accompagnata
da documentazione che descrive il funzionamento tecnico del
codice e soprattutto di documentazione di utilizzo.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
68. Documentazione
Lo sviluppo di un’estensione deve essere sempre accompagnata
da documentazione che descrive il funzionamento tecnico del
codice e soprattutto di documentazione di utilizzo.
Tramite il sito typo3.org è possibile scaricare l’estensione
(<doc_template>) che contiene il manuale che dovrebbe essere
poi usato per scrivere la documentazione di utilizzo della nostra
estensione.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
69. Documentazione
Lo sviluppo di un’estensione deve essere sempre accompagnata
da documentazione che descrive il funzionamento tecnico del
codice e soprattutto di documentazione di utilizzo.
Tramite il sito typo3.org è possibile scaricare l’estensione
(<doc_template>) che contiene il manuale che dovrebbe essere
poi usato per scrivere la documentazione di utilizzo della nostra
estensione.
Un’estensione senza manuale è un’estensione inutile e nel
futuro potrebbero essere eliminate le estensioni senza manuale
d’uso.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
70. Documentazione
Lo sviluppo di un’estensione deve essere sempre accompagnata
da documentazione che descrive il funzionamento tecnico del
codice e soprattutto di documentazione di utilizzo.
Tramite il sito typo3.org è possibile scaricare l’estensione
(<doc_template>) che contiene il manuale che dovrebbe essere
poi usato per scrivere la documentazione di utilizzo della nostra
estensione.
Un’estensione senza manuale è un’estensione inutile e nel
futuro potrebbero essere eliminate le estensioni senza manuale
d’uso.
Il manuale dovrebbe essere scritto, anche in minima parte,
ancor prima di scrivere il codice
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
72. Alcuni consigli
Fare un’analisi molto dettagliata, non lasciando troppe
incognite che richiedano poi un rifacimento dell’analisi.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
73. Alcuni consigli
Fare un’analisi molto dettagliata, non lasciando troppe
incognite che richiedano poi un rifacimento dell’analisi.
Stabilire sulla base dell’applicazione il paradigma da usare: OOP
come tslib_pibase oppure MVC con extbase, valutando
attentamente i pro e i contro.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
74. Alcuni consigli
Fare un’analisi molto dettagliata, non lasciando troppe
incognite che richiedano poi un rifacimento dell’analisi.
Stabilire sulla base dell’applicazione il paradigma da usare: OOP
come tslib_pibase oppure MVC con extbase, valutando
attentamente i pro e i contro.
Cercare sempre sul TER se esistono estensioni già sviluppate ed
affidabili che possano essere usate estendendole così da evitare
di scrivere codice.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
75. Alcuni consigli
Fare un’analisi molto dettagliata, non lasciando troppe
incognite che richiedano poi un rifacimento dell’analisi.
Stabilire sulla base dell’applicazione il paradigma da usare: OOP
come tslib_pibase oppure MVC con extbase, valutando
attentamente i pro e i contro.
Cercare sempre sul TER se esistono estensioni già sviluppate ed
affidabili che possano essere usate estendendole così da evitare
di scrivere codice.
Creare il codice in modo che possano essere usate le unit test
per effettuare i test dell’applicazione.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
76. Alcuni consigli
Fare un’analisi molto dettagliata, non lasciando troppe
incognite che richiedano poi un rifacimento dell’analisi.
Stabilire sulla base dell’applicazione il paradigma da usare: OOP
come tslib_pibase oppure MVC con extbase, valutando
attentamente i pro e i contro.
Cercare sempre sul TER se esistono estensioni già sviluppate ed
affidabili che possano essere usate estendendole così da evitare
di scrivere codice.
Creare il codice in modo che possano essere usate le unit test
per effettuare i test dell’applicazione.
Inserire i commenti javadoc per essere poi usati da applicazioni
di analisi dei commenti.
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
77. T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin
78. Buon sviluppo a tutti
sia in OOP che in MVC!!
T3Camp Italia FLOW3
L’evento italiano dedicato a Federico Bernardin