FLOW3: MVC del futuro
Upcoming SlideShare
Loading in...5
×
 

FLOW3: MVC del futuro

on

  • 786 views

 

Statistics

Views

Total Views
786
Views on SlideShare
778
Embed Views
8

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 8

http://www.t3campitalia.it 8

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

FLOW3: MVC del futuro FLOW3: MVC del futuro Presentation Transcript

  • FLOW3: MVC del futuro? FLOW3 è il framework MVC su cui viene costruito TYPO3 5 Phoenix diamogli unocchiata più da vicino. Punti di forza, strategie e le metodologie su cui si basa. Federico Bernardin <federico@bernardin.it>T3Camp Italia Bologna 27/28 Ottobre 2011L’evento italiano dedicato a TYPO3 Novotel fiera Bologna
  • 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 TYPO3 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 FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: il nomeT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: il nome In primis: che significa FLOW?T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: il nome In primis: che significa FLOW? FLOW, flusso è un concetto introdotto nel 1975 dallo psicologo Mihály Csíkszentmihályi, si riferisce a uno stato di coscienza in cui la persona è completamente immersa in unattività.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: il nome In primis: che significa FLOW? FLOW, flusso è un concetto introdotto nel 1975 dallo psicologo Mihály Csíkszentmihályi, si riferisce a uno stato di coscienza in cui la persona è completamente immersa in unattività. In questo caso l’attività è lo sviluppo del software.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: il nome In primis: che significa FLOW? FLOW, flusso è un concetto introdotto nel 1975 dallo psicologo Mihály Csíkszentmihályi, si riferisce a uno stato di coscienza in cui la persona è completamente immersa in unattività. In questo caso l’attività è lo sviluppo del software. In pratica si riferisce al vantaggio che il framework dà in termini di semplicità, intuitività e alla possibilità di realizzare facilmente il tuo obiettivo!T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: cos’èT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: cos’è FLOW3 è un framework MVCT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: cos’è FLOW3 è un framework MVC Un framework è una struttura di supporto allo sviluppo del software, costituita spesso da librerie di codice e strumenti di sviluppo.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: cos’è FLOW3 è un framework MVC Un framework è una struttura di supporto allo sviluppo del software, costituita spesso da librerie di codice e strumenti di sviluppo. Un framework MVC è un framework, secondo la definizione precedente, che implementa il pattern architetturale (schema di progettazione) MVC, ossia Model View Controller.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: cos’è FLOW3 è un framework MVC Un framework è una struttura di supporto allo sviluppo del software, costituita spesso da librerie di codice e strumenti di sviluppo. Un framework MVC è un framework, secondo la definizione precedente, che implementa il pattern architetturale (schema di progettazione) MVC, ossia Model View Controller. Model: rappresenta l’accesso all’entità, cioè al dato.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: cos’è FLOW3 è un framework MVC Un framework è una struttura di supporto allo sviluppo del software, costituita spesso da librerie di codice e strumenti di sviluppo. Un framework MVC è un framework, secondo la definizione precedente, che implementa il pattern architetturale (schema di progettazione) MVC, ossia Model View Controller. Model: rappresenta l’accesso all’entità, cioè al dato. Controller: gestisce le richieste dell’utente e li attua mediante il modello e la vistaT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: cos’è FLOW3 è un framework MVC Un framework è una struttura di supporto allo sviluppo del software, costituita spesso da librerie di codice e strumenti di sviluppo. Un framework MVC è un framework, secondo la definizione precedente, che implementa il pattern architetturale (schema di progettazione) MVC, ossia Model View Controller. Model: rappresenta l’accesso all’entità, cioè al dato. Controller: gestisce le richieste dell’utente e li attua mediante il modello e la vista View: Permette di visualizzare all’utente finale i dati elaboratiT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Il framework MVCT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Il framework MVC Richiesta WebT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Il framework MVC Richiesta WebT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Il framework MVC Richiesta Web ControllerT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Il framework MVC Richiesta Web ControllerT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Il framework MVC Richiesta Web Controller ModelloT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Il framework MVC Richiesta Web Controller ModelloT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Il framework MVC Richiesta Web Controller ModelloT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Il framework MVC Richiesta Web Controller Vista ModelloT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: un po di storiaT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: un po di storia Nel lontano 2004 inizia a formarsi l’idea di effettuare il refactoring (riscrivere il codice) di TYPO3.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: un po di storia Nel lontano 2004 inizia a formarsi l’idea di effettuare il refactoring (riscrivere il codice) di TYPO3. Ma ci si accorge che la realtà è molto diversa dalle idee ed una sistemazione del codice non è fattibile.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: un po di storia Nel lontano 2004 inizia a formarsi l’idea di effettuare il refactoring (riscrivere il codice) di TYPO3. Ma ci si accorge che la realtà è molto diversa dalle idee ed una sistemazione del codice non è fattibile. La scelta quindi si sposta sulla riscrittura completa del sistema, ma a quel tempo non esisteva nulla che permettesse di farlo secondo le nuove tecnologie e metodologie.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: un po di storia Nel lontano 2004 inizia a formarsi l’idea di effettuare il refactoring (riscrivere il codice) di TYPO3. Ma ci si accorge che la realtà è molto diversa dalle idee ed una sistemazione del codice non è fattibile. La scelta quindi si sposta sulla riscrittura completa del sistema, ma a quel tempo non esisteva nulla che permettesse di farlo secondo le nuove tecnologie e metodologie. Un team ridotto capitanato da Robert Lemke e Karsten Dambekalns inizia a lavorarci sopra e una prima alfa version prende la luce nel 2009.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: le novitàT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: le novità FLOW3 porta con sè molte novità a livello di framework PHP, eccone 4:T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: le novità FLOW3 porta con sè molte novità a livello di framework PHP, eccone 4: DDD ovvero Domain Driven DesignT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: le novità FLOW3 porta con sè molte novità a livello di framework PHP, eccone 4: DDD ovvero Domain Driven Design IoC Inverse of Control e Dependency InjectionT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: le novità FLOW3 porta con sè molte novità a livello di framework PHP, eccone 4: DDD ovvero Domain Driven Design IoC Inverse of Control e Dependency Injection AOP Aspect Object ProgrammingT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3: le novità FLOW3 porta con sè molte novità a livello di framework PHP, eccone 4: DDD ovvero Domain Driven Design IoC Inverse of Control e Dependency Injection AOP Aspect Object Programming Utilizzo di Doctrine2 per l’accesso al databaseT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Domain driven designT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Domain driven design IL DDD è una tecnica di sviluppo basata sul capire le necessità e i desideri del cliente. Il Domain Model è il modello creato dallo sviluppatore che dovrebbe riflettere il funzionamento dell’ambiente voluto dal cliente.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Domain driven design IL DDD è una tecnica di sviluppo basata sul capire le necessità e i desideri del cliente. Il Domain Model è il modello creato dallo sviluppatore che dovrebbe riflettere il funzionamento dell’ambiente voluto dal cliente. Il modello una volta definito, viene poi testato mediante reali casi di utilizzo, che dovrebbero far capire se è idoneo alle richieste del cliente.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Domain driven design IL DDD è una tecnica di sviluppo basata sul capire le necessità e i desideri del cliente. Il Domain Model è il modello creato dallo sviluppatore che dovrebbe riflettere il funzionamento dell’ambiente voluto dal cliente. Il modello una volta definito, viene poi testato mediante reali casi di utilizzo, che dovrebbero far capire se è idoneo alle richieste del cliente. Tutti questi processi vengono effettuati insieme con il cliente, per questo è un processo iterativo.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Domain driven design IL DDD è una tecnica di sviluppo basata sul capire le necessità e i desideri del cliente. Il Domain Model è il modello creato dallo sviluppatore che dovrebbe riflettere il funzionamento dell’ambiente voluto dal cliente. Il modello una volta definito, viene poi testato mediante reali casi di utilizzo, che dovrebbero far capire se è idoneo alle richieste del cliente. Tutti questi processi vengono effettuati insieme con il cliente, per questo è un processo iterativo. In FLOW3 il DDD viene implementato mediante i modelli ed i repository.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • IOCT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • IOC L’inverse of control è una tecnica di programmazione che tende a tener disaccoppiati i singoli componenti di un sistema, in cui le eventuali dipendenze non vengono scritte allinterno del componente stesso, ma gli vengono iniettate dallesterno.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • IOC L’inverse of control è una tecnica di programmazione che tende a tener disaccoppiati i singoli componenti di un sistema, in cui le eventuali dipendenze non vengono scritte allinterno del componente stesso, ma gli vengono iniettate dallesterno. Non si segue il normale flusso di controllo dei linguaggi imperativi, in cui, nel momento del bisogno, si richiamano funzioni di classi o librerie esterne, gli oggetti quindi non istanziano e richiamano gli oggetti dal quale il loro lavoro dipende, ma queste funzionalità vengono fornite da un ambiente esterno tramite dei contratti definiti da entrambe le entità.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Dependency InjectionT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Dependency Injection La Dependency Injection è una delle tecniche con le quali si può attuare lIOC. Essa prende il controllo su tutti gli aspetti di creazione degli oggetti e delle loro dipendenze.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Dependency Injection La Dependency Injection è una delle tecniche con le quali si può attuare lIOC. Essa prende il controllo su tutti gli aspetti di creazione degli oggetti e delle loro dipendenze. FLOW3 usa molto diffusamente la Dependency Injection con il risultato, tra le altre cose, di eliminare dal codice applicativo ogni logica di inizializzazione.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Dependency Injection La Dependency Injection è una delle tecniche con le quali si può attuare lIOC. Essa prende il controllo su tutti gli aspetti di creazione degli oggetti e delle loro dipendenze. FLOW3 usa molto diffusamente la Dependency Injection con il risultato, tra le altre cose, di eliminare dal codice applicativo ogni logica di inizializzazione. Con lutilizzo della dependency injection, loggetto ha in sé solamente una proprietà che può ospitare un riferimento a quel servizio, e quando loggetto viene istanziato, un riferimento ad una implementazione di questo servizio gli viene iniettata da FLOW3, senza che il programmatore che crea loggetto sappia nulla sul suo posizionamento del servizio o altri dettagli sullo stesso.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • AOP Aspect Oriented ProgrammingT3Camp Italia FLOW3L’evento italiano dedicato a Federico Bernardin
  • AOP Aspect Oriented Programming La programmazione orientata agli aspetti è un paradigma di programmazione basato sulla creazione di entità software - denominate aspetti - che sovrintendono alle interazioni fra oggetti finalizzate ad eseguire un compito comune.T3Camp Italia FLOW3L’evento italiano dedicato a Federico Bernardin
  • AOP Aspect Oriented Programming La programmazione orientata agli aspetti è un paradigma di programmazione basato sulla creazione di entità software - denominate aspetti - che sovrintendono alle interazioni fra oggetti finalizzate ad eseguire un compito comune. Nella normale programmazione lesecuzione di un stesso processo (ad esempio la scrittura di un log) richiede linizializzazione e la conoscenza da parte del codice utilizzatore delle modalità di chiamata, legando indissolubilmente le 2 parti di codice di per sé indipendenti. Con lAOP questo problema viene superato mediante la definizione di un aspect che viene eseguito in base al raggiungimento di alcuni criteri.T3Camp Italia FLOW3L’evento italiano dedicato a Federico Bernardin
  • AOP Aspect Oriented Programming La programmazione orientata agli aspetti è un paradigma di programmazione basato sulla creazione di entità software - denominate aspetti - che sovrintendono alle interazioni fra oggetti finalizzate ad eseguire un compito comune. Nella normale programmazione lesecuzione di un stesso processo (ad esempio la scrittura di un log) richiede linizializzazione e la conoscenza da parte del codice utilizzatore delle modalità di chiamata, legando indissolubilmente le 2 parti di codice di per sé indipendenti. Con lAOP questo problema viene superato mediante la definizione di un aspect che viene eseguito in base al raggiungimento di alcuni criteri. Gli aspetti modellano le problematiche trasversali agli oggetti stessi, ossia compiti (quali ad esempio laccounting) che nellOOP tradizionale sono difficilmente modellabili.T3Camp Italia FLOW3L’evento italiano dedicato a Federico Bernardin
  • DoctrineT3Camp Italia FLOW3L’evento italiano dedicato a Federico Bernardin
  • Doctrine Doctrine è un livello di astrazione dalla persistenza dei dati.T3Camp Italia FLOW3L’evento italiano dedicato a Federico Bernardin
  • Doctrine Doctrine è un livello di astrazione dalla persistenza dei dati. FLOW3 applica un elevato livello di astrazione dalle modalità di persistenza dei dati per mezzo del DDD.T3Camp Italia FLOW3L’evento italiano dedicato a Federico Bernardin
  • Doctrine Doctrine è un livello di astrazione dalla persistenza dei dati. FLOW3 applica un elevato livello di astrazione dalle modalità di persistenza dei dati per mezzo del DDD. Tutto questo processo implica sia un persistance framework implementato mediante un package, sia una struttura molto dinamica e performante che può operare con varie basi dati, file e sorgenti varie.T3Camp Italia FLOW3L’evento italiano dedicato a Federico Bernardin
  • Doctrine Doctrine è un livello di astrazione dalla persistenza dei dati. FLOW3 applica un elevato livello di astrazione dalle modalità di persistenza dei dati per mezzo del DDD. Tutto questo processo implica sia un persistance framework implementato mediante un package, sia una struttura molto dinamica e performante che può operare con varie basi dati, file e sorgenti varie. In un primo tempo il team di sviluppo aveva seguito la strada della totale autonomia scrivendo molto codice per renderlo indipendente dalla base dati, ma poi hanno deciso di affidarsi ad un framework di accesso ai dati stabile ed affidabile come Doctrine2.T3Camp Italia FLOW3L’evento italiano dedicato a Federico Bernardin
  • FLOW3 Render: FluidT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3 Render: Fluid FLOW3 porta con se un render engine, un sistema per rappresentare tramite template i dati provenienti dai controller: Fluid.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3 Render: Fluid FLOW3 porta con se un render engine, un sistema per rappresentare tramite template i dati provenienti dai controller: Fluid. Fluid ha una sua semantica, basata sui tag e che permette facilmente di implementare le funzionalità necessarie.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • FLOW3 Render: Fluid FLOW3 porta con se un render engine, un sistema per rappresentare tramite template i dati provenienti dai controller: Fluid. Fluid ha una sua semantica, basata sui tag e che permette facilmente di implementare le funzionalità necessarie.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Perchè usare FLOW3T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Perchè usare FLOW3 FLOW3 è un framework sviluppato per gestire TYPO3 5 e come tale è la base per le future estensioni di TYPO3.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Perchè usare FLOW3 FLOW3 è un framework sviluppato per gestire TYPO3 5 e come tale è la base per le future estensioni di TYPO3. FLOW3 è un framework di nuova generazione che usa metodologie applicative avanzate e moderne, che rendono lo sviluppo più semplice e diretto nei confronti delle richieste del cliente.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Perchè usare FLOW3 FLOW3 è un framework sviluppato per gestire TYPO3 5 e come tale è la base per le future estensioni di TYPO3. FLOW3 è un framework di nuova generazione che usa metodologie applicative avanzate e moderne, che rendono lo sviluppo più semplice e diretto nei confronti delle richieste del cliente. FLOW3 fornisce strumenti e modalità di sviluppo non presenti in alcun altro CMS PHP ed inoltre garantisce una pulizia e semplicità nel codice generato.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • La situazione odiernaT3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • La situazione odierna La versione stable 1 di TYPO3 è stata rilasciata.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • La situazione odierna La versione stable 1 di TYPO3 è stata rilasciata. Le prestazioni rispetto alle alfa e beta version sono nettamente superiori, garantendo finalmente una base affidabile e prestazionale con cui iniziare a pensare di progettare le nostre applicazioni.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • La situazione odierna La versione stable 1 di TYPO3 è stata rilasciata. Le prestazioni rispetto alle alfa e beta version sono nettamente superiori, garantendo finalmente una base affidabile e prestazionale con cui iniziare a pensare di progettare le nostre applicazioni. E’ chiaro che sarà un software nuovo tutto da testare e migliorare, ma oggi FLOW3 è più di una speranza ma un framework maturo per tutti gli usi.T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin
  • Buona programmazione MVC a tutti!T3Camp Italia FLOW3L’evento italiano dedicato a TYPO3 Federico Bernardin