Presentazione sui moduli introdotti in Zend Framework 2, tenuta allo Zend Framework Day del 01/02/2013 a Milano.
Come organizzo il mio modello, se le entità di base sono condivise tra più moduli? La mia applicazione ha anche un pannello amministrativo: dove metto viste e file del front-end? Come gestisco le eventuali dipendenze esterne? In questo talk cerco di rispondere a queste e altre domande relative all'organizzazione di un progetto ZF2, condividendo la mia esperienza pratica, i dubbi che mi sono posto, e le soluzioni che ho adottato. Non sempre le risposte sono state scontate, a maggior ragione dato che - quale sviluppatore ZF1 - non ero abituato all'uso dei moduli - così come intesi in ZF2. L'introduzione degli stessi può rappresentare una vera e propria svolta; è però fondamentale organizzare opportunamente il proprio progetto, dato che le reali possibilità di riuso dipendono in buona parte proprio da una buona organizzazione del proprio codice.
This document discusses PHPUnit, a unit testing framework for PHP. It provides an overview of PHPUnit, how to install it, write tests, and generate code coverage reports. Key points covered include how to structure test files, write test methods, run tests from the command line, and use fixtures to set up objects for tests. Code coverage reports generated by PHPUnit can help identify untested code. The document also outlines some advantages of testing like early error detection and consistency, as well as potential disadvantages like the initial learning curve.
Error Reporting in ZF2: form messages, custom error pages, loggingSteve Maraspin
Errors frustrate users. No matter if it's their fault or applications', risks that they'll lose interest in our product is high. In this presentation, given at the Italian ZFDay 2014, I discuss about these issues and provide some hints for improving error reporting and handling.
GAME ON! Integrating Games and Simulations in the Classroom Brian Housand
Brian Housand, Ph.D.
brianhousand.com
@brianhousand
GAME ON! Integrating Games and Simulations in the Classroom
It is estimated that by the time that today’s youth enters adulthood that they will have played an average of 10,000 hours of video games. By playing games, research suggests that they have developed abilities related to creativity, collaboration, and critical thinking. Come explore the history of games and simulations in the classroom and investigate ways that current games and simulations in digital and non-digital formats can be meaningfully and purposefully integrated into your learning environment.
This document discusses PHPUnit, a unit testing framework for PHP. It provides an overview of PHPUnit, how to install it, write tests, and generate code coverage reports. Key points covered include how to structure test files, write test methods, run tests from the command line, and use fixtures to set up objects for tests. Code coverage reports generated by PHPUnit can help identify untested code. The document also outlines some advantages of testing like early error detection and consistency, as well as potential disadvantages like the initial learning curve.
Error Reporting in ZF2: form messages, custom error pages, loggingSteve Maraspin
Errors frustrate users. No matter if it's their fault or applications', risks that they'll lose interest in our product is high. In this presentation, given at the Italian ZFDay 2014, I discuss about these issues and provide some hints for improving error reporting and handling.
GAME ON! Integrating Games and Simulations in the Classroom Brian Housand
Brian Housand, Ph.D.
brianhousand.com
@brianhousand
GAME ON! Integrating Games and Simulations in the Classroom
It is estimated that by the time that today’s youth enters adulthood that they will have played an average of 10,000 hours of video games. By playing games, research suggests that they have developed abilities related to creativity, collaboration, and critical thinking. Come explore the history of games and simulations in the classroom and investigate ways that current games and simulations in digital and non-digital formats can be meaningfully and purposefully integrated into your learning environment.
Come portare il profiler di symfony2 in drupal8Luca Lusso
Molti progetti PHP open source hanno adottato Symfony2 come base per la loro prossima versione, tra questi c'è anche il CMS Drupal (http://drupal.org). In questo talk vedremo come scrivere un modulo per Drupal8 in modo da sfruttare il più possibile il suo nuovo motore Symfony2, dall'integrazione con il service container alla gestione degli eventi, dal routing a Twig. Verrà usato come esempio il modulo webprofiler (http://drupal.org/project/webprofiler) per dimostrare come un bundle per Symfony2 possa essere trasformato in un modulo per Drupal8 e integrato facilmente nel sistema.
Introduzione al Domain Driven Design (DDD)DotNetMarche
In questa sessione si approfondirà il concetto di Domain Driven Design, un principio di progettazione che può essere visto come una “forma-mentis” per aiutare a concepire e modellare applicazioni enterprise che fanno un forte uso del Domain Model. Questa metodologia, introdotta da Eric Evans, mette in risalto il dominio applicativo di un progetto, costituendo quindi il collante tra il modello analitico e il modello implementativo e trovando la sua naturale applicazione in ambienti di sviluppo agili come Extreme Programming. Come completamento della sessione verranno esaminate alcune tecniche di Layering e pattern architetturali che ben si sposano con questa tecnica.
Asp.NET MVC è un nuovo framework per lo sviluppo di applicazioni web alternativo al modello webform. Questo consente di utilizzare il pattern MVC per lo sviluppo di applicazioni Asp.NET, permettendo quindi una miglior separazione delle responsabilità che a sua volta porta ad una maggior manutenibilità, riusabilità e facilità nel testing.
La sessione illustrerà i motivi che hanno portato alla nascita di Asp.NET MVC e le sue caratteristiche fondamentali.
Agenda:
- Storia dei framework MS per lo sviluppo web
- Introduzione a Asp.NET MVC
- Vantaggi di Asp.NET MVC
- Il pattern MVC
- Hello MVC: DEMO
- Componenti di MVC: Routing, Controller, Model, View
This set of design patterns are related to Enterprise Patterns. In it you can find, J2EE, Presentation, Business & Integration Patterns (such as: ApplicaCon Controller, Data Transfer Object (DTO), Business Object (BO) & Data Access Object (DAO) among others ...)
XeDotNet meeting del 5 Marzo 2013
In questa sessione vedremo come Knockout.js permetta di scrivere codice JavaScript in modo pulito e organizzato, semplificando la scrittura del codice e la sua manutenzione. Come lo si utilizza KO? Quali vantaggi ci offre? Quali librerie ci vengono in aiuto? Quali sarebbe meglio evitare?
Progettazione dell'interfaccia utente e sviluppo di mock-up legati agli Use Case specificati.
Materiale relativo al corso di Sistemi Informativi Aziendali al Politecnico di Torino, a.a. 2013/2014.
Maggiori informaizoni sul corso: http://bit.ly/sistinfo
Come portare il profiler di symfony2 in drupal8Luca Lusso
Molti progetti PHP open source hanno adottato Symfony2 come base per la loro prossima versione, tra questi c'è anche il CMS Drupal (http://drupal.org). In questo talk vedremo come scrivere un modulo per Drupal8 in modo da sfruttare il più possibile il suo nuovo motore Symfony2, dall'integrazione con il service container alla gestione degli eventi, dal routing a Twig. Verrà usato come esempio il modulo webprofiler (http://drupal.org/project/webprofiler) per dimostrare come un bundle per Symfony2 possa essere trasformato in un modulo per Drupal8 e integrato facilmente nel sistema.
Introduzione al Domain Driven Design (DDD)DotNetMarche
In questa sessione si approfondirà il concetto di Domain Driven Design, un principio di progettazione che può essere visto come una “forma-mentis” per aiutare a concepire e modellare applicazioni enterprise che fanno un forte uso del Domain Model. Questa metodologia, introdotta da Eric Evans, mette in risalto il dominio applicativo di un progetto, costituendo quindi il collante tra il modello analitico e il modello implementativo e trovando la sua naturale applicazione in ambienti di sviluppo agili come Extreme Programming. Come completamento della sessione verranno esaminate alcune tecniche di Layering e pattern architetturali che ben si sposano con questa tecnica.
Asp.NET MVC è un nuovo framework per lo sviluppo di applicazioni web alternativo al modello webform. Questo consente di utilizzare il pattern MVC per lo sviluppo di applicazioni Asp.NET, permettendo quindi una miglior separazione delle responsabilità che a sua volta porta ad una maggior manutenibilità, riusabilità e facilità nel testing.
La sessione illustrerà i motivi che hanno portato alla nascita di Asp.NET MVC e le sue caratteristiche fondamentali.
Agenda:
- Storia dei framework MS per lo sviluppo web
- Introduzione a Asp.NET MVC
- Vantaggi di Asp.NET MVC
- Il pattern MVC
- Hello MVC: DEMO
- Componenti di MVC: Routing, Controller, Model, View
This set of design patterns are related to Enterprise Patterns. In it you can find, J2EE, Presentation, Business & Integration Patterns (such as: ApplicaCon Controller, Data Transfer Object (DTO), Business Object (BO) & Data Access Object (DAO) among others ...)
XeDotNet meeting del 5 Marzo 2013
In questa sessione vedremo come Knockout.js permetta di scrivere codice JavaScript in modo pulito e organizzato, semplificando la scrittura del codice e la sua manutenzione. Come lo si utilizza KO? Quali vantaggi ci offre? Quali librerie ci vengono in aiuto? Quali sarebbe meglio evitare?
Progettazione dell'interfaccia utente e sviluppo di mock-up legati agli Use Case specificati.
Materiale relativo al corso di Sistemi Informativi Aziendali al Politecnico di Torino, a.a. 2013/2014.
Maggiori informaizoni sul corso: http://bit.ly/sistinfo
Are NOSQL Datastores just containers? Is typical classification based on data model everything? Highlighting some pros and cons of using different NoSQL solutions. It also introduces two key concepts: NoSQL aren't replacements, but adjuvants to RDBMS, and schemaless is a lie.
One of the first issues a developer runs into when dealing with ZF2 modules is how to arrange assets between modules. This presentation covers such issue.
More can be found on this blog post: http://www.mvassociati.it/en/gems/php/asset-management-zend-framework-2
Stime e preventivi in un contesto di sviluppo agileStefano Valle
Stefano Maraspin and Stefano Valle presented on estimating and preventative in an agile development context. They discussed how estimates can be difficult due to uncertainty and human error. They advocated for rapid prototyping, time and materials contracts with cost ceilings, iterative development, and agile methods. They also emphasized the importance of collaboration, managing client expectations, and focusing on quality over rigid plans and budgets.
6. I moduli, come li conosciamo in ZF1
Sito Web
contenuti statici, catalogo servizi, form contatti, ecc.
6
7. I moduli, come li conosciamo in ZF1
Sito Web
contenuti statici, catalogo servizi, form contatti, ecc.
Amministrazione sito Web
gestione contenuti statici, catalogo servizi, form contatti, ecc.
7
8. I moduli, come li conosciamo in ZF1
Sito Web
contenuti statici, catalogo servizi, form contatti, ecc.
Modello
Amministrazione sito Web
gestione contenuti statici, catalogo servizi, form contatti, ecc.
8
10. A re-usable piece of
functionality that can be used
to construct a more complex
application.
Evan Coury - http://evan.pro/zf2-modules-talk.html
10
11. A re-usable piece of
functionality that can be used
to construct a more complex
application.
Evan Coury - http://evan.pro/zf2-modules-talk.html
11
12. Cosa posso riutilizzare?
Sito Web
contenuti statici, catalogo servizi, form contatti, ecc.
Modello
Amministrazione sito Web
gestione contenuti statici, catalogo servizi, form contatti, ecc.
12
13. Cosa posso riutilizzare?
Sito Web
contenuti statici, catalogo servizi, form contatti, ecc.
Modello
Amministrazione sito Web
gestione contenuti statici, catalogo servizi, form contatti, ecc.
13
45. Di cosa ho bisogno?
• Catalogo prodotti
• Carrello
• Checkout (e pagamento)
• Pagine (più o meno statiche)
• Pannello amministrativo
45
46. Di cosa ho bisogno?
• Catalogo prodotti
• Carrello Un modulo
• Checkout (e pagamento) ciascuno
• Pagine (più o meno statiche)
• Pannello amministrativo
46
47. Di cosa ho bisogno?
• Catalogo prodotti
• Carrello Un modulo
• Checkout (e pagamento) ciascuno
• Pagine (più o meno statiche)
• Pannello amministrativo
«orizzontale» rispetto agli altri moduli
(lasciamolo un attimo in sospeso…)
47
73. Modulo «carrello», vorrei:
• Vederlo all’opera standalone,
senza altre dipendenze
• Poter gestire prodotti diversi
73
74. Modulo «carrello», vorrei:
• Vederlo all’opera standalone,
senza altre dipendenze
• Poter gestire prodotti diversi
• Poter definire dei «vincoli» su logica e
campi (almeno nome + prezzo)
74
84. E i «vincoli» (es. nome + prezzo)?
Ereditarietà di classe
/**
* CatalogEntityProduct
* ...
*/
class Product extends EcommerceEntityCartproduct {}
O implementando interfaccia
/**
* CatalogEntityProduct
* ...
*/
class Product implements EcommerceEntityCartproductInterface {}