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 of 78
Download to read offline
More Related Content
L'analisi e le scelte nello sviluppo di un plugin
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
Levento 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
lagenzia 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 allattivo alcuni plugin, tra cui x鍖extemplate, da Aprile 2010 sono
TYPO3 Certi鍖ed Integrator.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
4. Obiettivi
Possibilit di riportarmi ad una versione precedente alle ultime
modi鍖che.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
5. Obiettivi
Possibilit di riportarmi ad una versione precedente alle ultime
modi鍖che.
Possibilit di lavoro in team, dove pi湛 persone modi鍖cano lo
stesso 鍖le (non le stesse righe).
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
6. Obiettivi
Possibilit di riportarmi ad una versione precedente alle ultime
modi鍖che.
Possibilit di lavoro in team, dove pi湛 persone modi鍖cano lo
stesso 鍖le (non le stesse righe).
Comodit nella scrittura del codice, aiuto nella scrittura delle
funzioni.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
7. Obiettivi
Possibilit di riportarmi ad una versione precedente alle ultime
modi鍖che.
Possibilit di lavoro in team, dove pi湛 persone modi鍖cano lo
stesso 鍖le (non le stesse righe).
Comodit nella scrittura del codice, aiuto nella scrittura delle
funzioni.
Sistemi di controllo della sintassi.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
8. Obiettivi
Possibilit di riportarmi ad una versione precedente alle ultime
modi鍖che.
Possibilit di lavoro in team, dove pi湛 persone modi鍖cano lo
stesso 鍖le (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
Levento italiano dedicato a Federico Bernardin
10. Obiettivi
Processo di controllo della pubblicazione e dello sviluppo
mediante task control, features e milestone.
T3Camp Italia FLOW3
Levento 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
Levento 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
Levento 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
Levento 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
Levento italiano dedicato a Federico Bernardin
16. Analisi e brie鍖ng
La prima operazione e forse la pi湛 complessa e delicata 竪 la
raccolta delle informazioni per sviluppare unestensione
effettivamente attinente alle richieste del cliente.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
17. Analisi e brie鍖ng
La prima operazione e forse la pi湛 complessa e delicata 竪 la
raccolta delle informazioni per sviluppare unestensione
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 dellapplicazione.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
19. Strumenti
IDE (Integrated Development Environment) 竪 lapplicazione 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
Levento italiano dedicato a Federico Bernardin
20. Strumenti
IDE (Integrated Development Environment) 竪 lapplicazione 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
Levento italiano dedicato a Federico Bernardin
21. Strumenti
IDE (Integrated Development Environment) 竪 lapplicazione 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 modi鍖che.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
23. Strumenti
Sistema di test e controlli, per poter ridurre il carico di lavoro in
caso di modi鍖che al codice.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
24. Strumenti
Sistema di test e controlli, per poter ridurre il carico di lavoro in
caso di modi鍖che al codice.
Sistema di pubblicazione mediante protocollo FTP
dellapplicazione su server remoti.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
25. Subversion de鍖nizione e
vantaggi
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
26. Subversion de鍖nizione e
vantaggi
Subversion 竪 unapplicazione server per la gestione multi utente
del versionamento.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
27. Subversion de鍖nizione e
vantaggi
Subversion 竪 unapplicazione 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
Levento italiano dedicato a Federico Bernardin
28. Subversion de鍖nizione e
vantaggi
Subversion 竪 unapplicazione 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
Levento italiano dedicato a Federico Bernardin
29. Subversion de鍖nizione e
vantaggi
Subversion 竪 unapplicazione 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
laggiornamento del codice da una revisione a quella attuale.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
33. Eclipse-Aptana de鍖nizione
e vantaggi
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
34. Eclipse-Aptana de鍖nizione
e vantaggi
Eclipse 竪 uno strumento inizialmente sviluppato da IBM per
JAVA. Oggi 竪 un IDE ottimizzato per luso di svariati linguaggi,
come ad esempio PHP.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
35. Eclipse-Aptana de鍖nizione
e vantaggi
Eclipse 竪 uno strumento inizialmente sviluppato da IBM per
JAVA. Oggi 竪 un IDE ottimizzato per luso 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
Levento italiano dedicato a Federico Bernardin
36. Eclipse-Aptana de鍖nizione
e vantaggi
Eclipse 竪 uno strumento inizialmente sviluppato da IBM per
JAVA. Oggi 竪 un IDE ottimizzato per luso 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 dellautocomplete, rendendo meno gravoso la
scrittura del codice da parte dellutente.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
37. Eclipse-Aptana de鍖nizione
e vantaggi
Eclipse 竪 uno strumento inizialmente sviluppato da IBM per
JAVA. Oggi 竪 un IDE ottimizzato per luso 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 dellautocomplete, rendendo meno gravoso la
scrittura del codice da parte dellutente.
Aptana (Eclipse) possiede moltissimi plugin che estendono le
funzionalit base come ad esempio il debugger e la gestione del
refactoring.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
40. TYPO3 Forge de鍖nizione e
vantaggi
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
41. TYPO3 Forge de鍖nizione e
vantaggi
Forge raggiungibile allindirizzo http://forge.typo3.org 竪 un
servizio che lassociazione mette a disposizione per poter avere
un ambiente dove sviluppare e mantenere le proprie estensioni
pubbliche.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
42. TYPO3 Forge de鍖nizione e
vantaggi
Forge raggiungibile allindirizzo http://forge.typo3.org 竪 un
servizio che lassociazione 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
Levento italiano dedicato a Federico Bernardin
43. TYPO3 Forge de鍖nizione e
vantaggi
Forge raggiungibile allindirizzo http://forge.typo3.org 竪 un
servizio che lassociazione 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 unambiente pronto per
mantenere le nostre estensioni con un repository svn compreso.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
44. TYPO3 Forge de鍖nizione e
vantaggi
Forge raggiungibile allindirizzo http://forge.typo3.org 竪 un
servizio che lassociazione 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 unambiente pronto per
mantenere le nostre estensioni con un repository svn compreso.
E possibile gestire nuove richieste per bug 鍖xing, features e
task.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
45. TYPO3 Forge de鍖nizione e
vantaggi
Forge raggiungibile allindirizzo http://forge.typo3.org 竪 un
servizio che lassociazione 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 unambiente pronto per
mantenere le nostre estensioni con un repository svn compreso.
E possibile gestire nuove richieste per bug 鍖xing, 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
Levento 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
Levento 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.
Lestensione extdeveval, permette di aggiungere nella barra
superiore di TYPO3 unicona che permette di vedere le varie
classi e funzioni che TYPO3 mette a disposizione per gli
sviluppatori
T3Camp Italia FLOW3
Levento 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.
Lestensione extdeveval, permette di aggiungere nella barra
superiore di TYPO3 unicona che permette di vedere le varie
classi e funzioni che TYPO3 mette a disposizione per gli
sviluppatori
Unalternativa 竪 andare ad api.typo3.org, dove potete trovare la
lista completa delle funzioni allinterno del sistema.
T3Camp Italia FLOW3
Levento 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
Levento 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
Levento 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.
Lestensione PHP Unit (<phpunit>) di TYPO3 ci da la possibilit
di testare e veri鍖care i nostri test case.
T3Camp Italia FLOW3
Levento 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.
Lestensione PHP Unit (<phpunit>) di TYPO3 ci da la possibilit
di testare e veri鍖care i nostri test case.
I test diventano importanti nei casi in cui un piccolo refactor
potrebbe modi鍖care il comportamento del codice, riducendo
fortemente i tempi di test.
T3Camp Italia FLOW3
Levento 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
Levento 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 lextend 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
Levento 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 lextend 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.
Unalternativa pi湛 nuova 竪 sicuramente lutilizzo di un
paradigma MVC (model view controller). Lassociazione ha
creato unestensione (<extbase>) che permette di utilizzare il
paradigma MVC dentro la nostra estensione.
T3Camp Italia FLOW3
Levento 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 lextend 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.
Unalternativa pi湛 nuova 竪 sicuramente lutilizzo di un
paradigma MVC (model view controller). Lassociazione ha
creato unestensione (<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
Levento italiano dedicato a Federico Bernardin
67. Documentazione
Lo sviluppo di unestensione deve essere sempre accompagnata
da documentazione che descrive il funzionamento tecnico del
codice e soprattutto di documentazione di utilizzo.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
68. Documentazione
Lo sviluppo di unestensione 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 lestensione
(<doc_template>) che contiene il manuale che dovrebbe essere
poi usato per scrivere la documentazione di utilizzo della nostra
estensione.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
69. Documentazione
Lo sviluppo di unestensione 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 lestensione
(<doc_template>) che contiene il manuale che dovrebbe essere
poi usato per scrivere la documentazione di utilizzo della nostra
estensione.
Unestensione senza manuale 竪 unestensione inutile e nel
futuro potrebbero essere eliminate le estensioni senza manuale
duso.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
70. Documentazione
Lo sviluppo di unestensione 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 lestensione
(<doc_template>) che contiene il manuale che dovrebbe essere
poi usato per scrivere la documentazione di utilizzo della nostra
estensione.
Unestensione senza manuale 竪 unestensione inutile e nel
futuro potrebbero essere eliminate le estensioni senza manuale
duso.
Il manuale dovrebbe essere scritto, anche in minima parte,
ancor prima di scrivere il codice
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
72. Alcuni consigli
Fare unanalisi molto dettagliata, non lasciando troppe
incognite che richiedano poi un rifacimento dellanalisi.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
73. Alcuni consigli
Fare unanalisi molto dettagliata, non lasciando troppe
incognite che richiedano poi un rifacimento dellanalisi.
Stabilire sulla base dellapplicazione il paradigma da usare: OOP
come tslib_pibase oppure MVC con extbase, valutando
attentamente i pro e i contro.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
74. Alcuni consigli
Fare unanalisi molto dettagliata, non lasciando troppe
incognite che richiedano poi un rifacimento dellanalisi.
Stabilire sulla base dellapplicazione 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
Levento italiano dedicato a Federico Bernardin
75. Alcuni consigli
Fare unanalisi molto dettagliata, non lasciando troppe
incognite che richiedano poi un rifacimento dellanalisi.
Stabilire sulla base dellapplicazione 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 dellapplicazione.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
76. Alcuni consigli
Fare unanalisi molto dettagliata, non lasciando troppe
incognite che richiedano poi un rifacimento dellanalisi.
Stabilire sulla base dellapplicazione 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 dellapplicazione.
Inserire i commenti javadoc per essere poi usati da applicazioni
di analisi dei commenti.
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
77. T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin
78. Buon sviluppo a tutti
sia in OOP che in MVC!!
T3Camp Italia FLOW3
Levento italiano dedicato a Federico Bernardin