SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
© Ibuildings 2013 - All rights reserved 1
MEAN: Il nuovo stack di sviluppo per
il futuro del WEB
© Ibuildings 2013 - All rights reserved© Ibuildings 2013 - All rights reserved
Chi sono io?
▪ Software Architect e sviluppatore per il web da più di 10 anni
▪ Sempre attento alle nuove tecnologie
▪ Partecipe alle community e alla vita open source
3
Eugenio Minardi
@kmox83
eugeniominardi
eugenio@ibuildings.it
© Ibuildings 2013 - All rights reserved© Ibuildings 2013 - All rights reserved
Chi è ibuildings?
▪ I professionisti per lo sviluppo di applicazioni enterprise,
mission-critical per il web e il mobile
▪ Innovativa, Aperta, sempre orientata alla conoscenza 
▪ Fondata nel 1999
▪ Uffici nei Paesi Bassi, Gran Bretagna, Italia
▪ Più di 80 esperti, specialisti software riconosciuti a livello
europeo
▪ Partnership tecnologiche con le realtà più innovative del
Web e del Mobile: PHP, Drupal, Aquia, Sencha
▪ Open Source come modello per dare più valore ai risultati
4
© Ibuildings 2013 - All rights reserved© Ibuildings 2013 - All rights reserved 5
© Ibuildings 2013 - All rights reserved© Ibuildings 2013 - All rights reserved
I nostri servizi
Sviluppo
Applicazioni WEB
2.0
Sviluppo
Applicazioni
Mobile
Supporto 24x7
Project - Process
Management
Advisor
Tecnologico:
Analisi Tecnica
Rigorous(
Process(
Excep/onal(
Talent(
Technology(
Exper/se(
!
Assured!
Delivery!
6
© Ibuildings 2013 - All rights reserved
Lo Stack MEAN
7
{ name: “MongoDB”, type: “Document Database”}
Framework per Node.js
Framework di Frontend per i Supereroi
Ambiente event-driven per l’esecuzione di 

operazioni concorrenti
Ma cosa è uno stack?
© Ibuildings 2013 - All rights reserved
Lo Stack LAMP
9
Sistema Operativo Linux
Web Server Apache
Database MySQL
Linguaggio Server-side PHP
© Ibuildings 2013 - All rights reserved
Lo Stack Microsoft
10
Sistema Operativo Windows
Web Server IIS
Database SQL Server
Linguaggio Server-side C# / .net
© Ibuildings 2013 - All rights reserved
Paragone con MEAN
11
STACK LAMP Microsoft MEAN
Sistema
Operativo
Linux Windows
Web Server Apache IIS Node.js
Database MySQL SQL Server MongoDB
Linguaggio
Server-side
PHP C# / .net
Framework
Server-Side
express
Framework
Client-Side
AngularJS
© Ibuildings 2013 - All rights reserved
Paragone con MEAN
12
STACK LAMP Microsoft MEAN
Sistema
Operativo
Linux Windows Linux/Windows
Web Server Apache IIS Node.js
Database MySQL SQL Server MongoDB
Linguaggio
Server-side
PHP C# / .net Javascript
Framework
Server-Side
express
Framework
Client-Side
AngularJS
© Ibuildings 2013 - All rights reserved
MEAN S.P.A.
MEAN è uno stack che permette di sviluppare ciò che viene
definito Single Page Application
§ Parte della complessità del codice viene lasciata al client
§ Il codice applicativo è strutturato sia su client che su server
§ Il ciclo di sviluppo del client si uniforma a quello del server
13
© Ibuildings 2013 - All rights reserved
Full-stack Javascript
14
© Ibuildings 2013 - All rights reserved
La storia di Javascript
§ Creato nel maggio del 1995 in 10 giorni
§ Nome originale Mocha, dato dal fondatore di Netscape Marc
Andreessen
§ Cambiato nel settembre 1995 in LiveScript 
§ Tornato ad essere chiamato JavaScript su licenza della Sun per
sfruttare l’onda positiva di Java
§ Tra il 1996 e 97 è stato preso in carico da ECMA, società di
standardizzazione
§ I grandi competitor hanno preso strade diverse (Es: Microsoft
con Jscript in IE)
§ Riunificazione nello standard ECMA dovuta al conio del
termine AJAX da parte di Jesse James Garrett nel 2005
15
© Ibuildings 2013 - All rights reserved
La storia di Javascript
§ Javascript è frainteso
§ La sintassi lo fa sembrare C-like, come Java
§ Il paradigma è molto più simile a LISP, tanto che in una delle
implementazioni iniziali erano utilizzate le parentesi
§ L’uso del linguaggio in modo simile a Java porta a gravi errori
di programmazione
16
© Ibuildings 2013 - All rights reserved
La storia di Javascript
Da Wikipedia:
!
JavaScript is a prototype-based scripting language with dynamic typing
and has first-class functions. Its syntax was influenced by C. JavaScript
copies many names and naming conventions from Java, but the two
languages are otherwise unrelated and have very different semantics.
The key design principles within JavaScript are taken from the Self and
Scheme programming languages.[6] It is a multi-paradigm language,
supporting object-oriented,[7] imperative, and functional[1][8]
programming styles.
17
Entriamo nel dettaglio
© Ibuildings 2013 - All rights reserved
Cosa è Node.JS
Node.JS è una piattaforma software
utilizzata
§ per costruire applicazioni scalabili
§ particolarmente per il lato server-side
§ per gestire un elevato throughput
§ implementa un server http
19
© Ibuildings 2013 - All rights reserved
La storia di Node.JS
§ Node.JS è stato creato da Ryan Dahl
§ Il progetto ha avuto inizio nel 2009
§ Nasce dall’idea ottenuta osservando una progress-bar evoluta
su Flickr (Il client non sa quanto manca)
§ Necessità di eventi in push
§ Preceduto da una serie di fallimenti in C, Lua, and Haskell
§ Basato sul motore Javascript di Chrome chiamato V8
§ Il progetto si è spostato dalla semplice idea iniziale fino a
diventare l’oggetto che è ora
20
© Ibuildings 2013 - All rights reserved
I simili di Node.JS
Altri linguaggi offrono piattaforme simili a Node.JS
§ Tornado e Twisted in Python
§ libevent in C
§ Vert.X in Java, JavaScript, Groovy, Python and Ruby (Su JVM)
§ Akka in Scala
§ EventMachine in Ruby
§ e molti altri…
21
© Ibuildings 2013 - All rights reserved 22
Performance di Node.js
I punti di forza che rendono Node.JS performante sono 
§ I grandi del settore competono sui motori Javascript (Mozilla,
Google, Apple, Microsoft, Opera)
§ V8 di Google è diventato estremamente performante
§ Modello non bloccante di Node.JS
§ Software leggero
§ Possibilità di gestire migliaia di connessioni contemporanee su
una dotazione hardware nella media
§ Nativamente asincrono
© Ibuildings 2013 - All rights reserved
Cosa è express
express è un framework per Node.js che 
§ semplifica l’implementazione di servizi
REST
§ fornisce strumenti utili per la gestione
request/response
§ aiuta a dare una struttura
all’applicazione
23
© Ibuildings 2013 - All rights reserved 24
express
Differenze tra middleware e framework
§ Il middleware è una funzione che interviene sui dati che
passano o che effettua operazioni tra il ciclo di richiesta HTTP
ed il ciclo di risposta
§ Il framework implementa le funzioni di utilità e stabilisce
delle linee guida per il proprio utilizzo. 
§ Connect è un framework che raccoglie diverse funzioni di
middleware
§ Express estende connect e ne riespone i middleware
appoggiandosi all’http.Server di node.js
© Ibuildings 2013 - All rights reserved 25
express
express è il framework più utilizzato per lo sviluppo di
applicazioni Node.JS
§ si ispira a Sinatra (Ruby)
§ è diventato ormai di uso standard 
§ express è un’estensione del middleware framework chiamato
connect
© Ibuildings 2013 - All rights reserved
Cosa è MongoDB
è un database non relazionale orientato ai
documenti
§ per costruire basi di dati documentali
scalabili
§ dal nome derivato da “humongous”
cioè enorme, permette la gestione di
grandi documenti e grandi basi di dati
§ permette in modo semplice di replicare
i dati
§ garantisce la consistenza e tolleranza
di partizione a scapito della
disponibilità (CP - CAP Theorem)
26
© Ibuildings 2013 - All rights reserved
Cosa è MongoDB
MongoDB dispone di uno schema dinamico
§ nell’evoluzione di un’applicazione la modifica dello schema
non comporta una modifica al database con conseguente
migrazione dei dati
§ i dati dei documenti vengono salvati come serviranno
all’applicazione, in tal modo si riducono i tempi di calcolo/
elaborazione del dato
§ Posso ottenere un documento con diversi livelli di
annidamento senza alcuna Join (pre join)
§ MongoDB dispone di funzioni per l’interrogazione molto simili
a ciò che l’SQL permette di esprimere
27
© Ibuildings 2013 - All rights reserved
Cosa è MongoDB
§ MongoDB dispone di un supporto efficiente per gli indici
§ Supporta le transazioni a livello di documento
§ Salva e scambia i documenti in formato JSON (su disco in BSON
che è una rappresentazione binaria dei JSON)
28
© Ibuildings 2013 - All rights reserved
Cosa è AngularJS
AngularJS è un framework client-side che
implementa l’MVVM
MVVM (Model View ViewModel) -
Specializzazione dell’MVC per lo sviluppo
di componenti legati alla UI.
Framework sviluppato e supportato da
Google
29
© Ibuildings 2013 - All rights reserved
AngularJS
Molto utilizzato in ambienti di sviluppo event-driven
§ per costruire applicazioni complesse
§ espressione della UI in modo dichiarativo (formalità)
§ abilita al testing in modo più semplice
§ Ciclo design-sviluppo più semplice, chi fa markup può
intervenire senza “fare danni” alla logica
30
© Ibuildings 2013 - All rights reserved
AngularJS
§ In AngularJS si estende il vocabolario HTML
dell’applicazione 
§ AngularJS formalizza la UI ma non fornisce componenti
grafici.
§ AngularJS è tuttavia estensibile ed esistono diversi moduli
che permettono l’integrazione dei framework più comuni
(come per esempio bootstrap)
§ Anche AngularJS ha una community molto attiva con molti
moduli pronti all’uso
31
I vantaggi dello Stack MEAN
© Ibuildings 2013 - All rights reserved
Nessuna preferenza di OS
§ Node.JS e MongoDB sono disponibili su diversi sistemi
operativi
§ Non si è legati ad uno specifico ambiente ma si può cambiare
anche durante il ciclo di vita dell’applicazione
§ Non c’è bisogno di cambiare hardware e software già
esistenti
33
© Ibuildings 2013 - All rights reserved
Supporto delle community
§ Tutti i software ed i framework utilizzati hanno grandi
community alle spalle
§ esistono forum, canali IRC, newsletter e molti altri posti dove
trovare informazioni
34
© Ibuildings 2013 - All rights reserved
Supporto delle corporate
§ Node.JS, MongoDB e AngularJS hanno alle spalle delle società
solide che ne portano avanti lo sviluppo
§ Questo fa si che i prodotti derivati siano all’altezza di
applicazioni enterprise
§ Anche il supporto al prodotto è a lungo termine
35
© Ibuildings 2013 - All rights reserved
Javascript is Everywhere
Javascript è il linguaggio di tutte le componenti dello stack, il che
offre svariati vantaggi:
§ maggiore interoperabilità degli sviluppatori
§ standardizzazione dei metodi di sviluppo
§ consistenza dei dati nel corso dello sviluppo
§ rendere i propri sviluppatori full-stack dà un vantaggio sugli
sviluppi
36
© Ibuildings 2013 - All rights reserved
Ciclo di sviluppo
§ Essendo AngularJS un framework MVVM porta ad avere una
logica sul client strutturalmente equivalente a quella del server
§ Si possono usare le stesse metodologie di sviluppo anche sulla
parte client
37
© Ibuildings 2013 - All rights reserved
Testabilità
§ Tutto il codice prodotto è testabile
§ I test sono automatizzabili anche su client
38
© Ibuildings 2013 - All rights reserved 39
Per sintetizzare
I motivi che rendono forte MEAN sono
§ Abbattimento dei costi dell’infrastruttura
§ Diminuzione dei tempi di sviluppo
§ Reperibilità di sviluppatori
§ Aumento delle performance
§ Unificazione delle competenze su tutto lo stack
§ Natura asincrona
Ibuildings ITALIA
Finalmente le tue APP Web & Mobile diventano GRANDI
Ibuildings NV
Rappresentanza per l’Italia
Via Santa Maria Valle, 3
20123 Milano
info@ibuildings.it
www.ibuildings.it

Contenu connexe

Tendances

Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailStefano Ottaviani
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web Appdotnetcode
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoGabriele Gaggi
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld DevicesGWTcon
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperStefano Ottaviani
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAXTommaso Torti
 
JBoss Seam, un framework per Java EE 5
JBoss Seam, un framework per Java EE 5JBoss Seam, un framework per Java EE 5
JBoss Seam, un framework per Java EE 5Marcello Teodori
 
Pietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftPietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftFrancesco Fullone
 
Single Page web Application
Single Page web ApplicationSingle Page web Application
Single Page web ApplicationRoberto Messora
 
Data binding libera tutti!
Data binding libera tutti!Data binding libera tutti!
Data binding libera tutti!Salvatore Laisa
 
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Antonio Gallo
 
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETStefano Ottaviani
 
Rich client application: MVC4 + MVVM = Knockout.js
Rich client application: MVC4 + MVVM = Knockout.jsRich client application: MVC4 + MVVM = Knockout.js
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
 

Tendances (20)

Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld Devices
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software Developer
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
 
Java sul tuo Mac
Java sul tuo MacJava sul tuo Mac
Java sul tuo Mac
 
Spa with Blazor
Spa with BlazorSpa with Blazor
Spa with Blazor
 
JBoss Seam, un framework per Java EE 5
JBoss Seam, un framework per Java EE 5JBoss Seam, un framework per Java EE 5
JBoss Seam, un framework per Java EE 5
 
Pietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftPietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma Microsoft
 
Ajaxare WordPress
Ajaxare WordPressAjaxare WordPress
Ajaxare WordPress
 
Single Page web Application
Single Page web ApplicationSingle Page web Application
Single Page web Application
 
Data binding libera tutti!
Data binding libera tutti!Data binding libera tutti!
Data binding libera tutti!
 
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
 
MVC and Struts 1
MVC and Struts 1MVC and Struts 1
MVC and Struts 1
 
Presentazione tirocinio
Presentazione tirocinio Presentazione tirocinio
Presentazione tirocinio
 
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NET
 
Rich client application: MVC4 + MVVM = Knockout.js
Rich client application: MVC4 + MVVM = Knockout.jsRich client application: MVC4 + MVVM = Knockout.js
Rich client application: MVC4 + MVVM = Knockout.js
 

Similaire à MEAN: il nuovo stack di sviluppo per il futuro del web

Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di riaLorenzo Bortolotto
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformGabriele Gaggi
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfFlorence Consulting
 
Presentazione convenzione mongo db_crui gennaio 2020
Presentazione convenzione mongo db_crui gennaio 2020Presentazione convenzione mongo db_crui gennaio 2020
Presentazione convenzione mongo db_crui gennaio 2020Fondazione CRUI
 
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...Marco Parenzan
 
MySQL Day Milano 2018 - Le architetture a microservizi
MySQL Day Milano 2018 - Le architetture a microserviziMySQL Day Milano 2018 - Le architetture a microservizi
MySQL Day Milano 2018 - Le architetture a microserviziPar-Tec S.p.A.
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLPar-Tec S.p.A.
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileRoberto Cappelletti
 
... thinking about Microformats!
... thinking about Microformats!... thinking about Microformats!
... thinking about Microformats!Stefano Fago
 
Presentazione convenzione mongo db_crui gennaio 2020
Presentazione convenzione mongo db_crui gennaio 2020Presentazione convenzione mongo db_crui gennaio 2020
Presentazione convenzione mongo db_crui gennaio 2020Fondazione CRUI
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developerssparkfabrik
 
SMAU Milano 2014 GAE 24/10/2014 - IWA Italy
SMAU Milano 2014 GAE 24/10/2014 - IWA ItalySMAU Milano 2014 GAE 24/10/2014 - IWA Italy
SMAU Milano 2014 GAE 24/10/2014 - IWA ItalyPaolo Dadda
 
Aws (amazon web services) - Slide
Aws (amazon web services) - SlideAws (amazon web services) - Slide
Aws (amazon web services) - Slidealessioemireni
 
Presentazione Web Site
Presentazione Web SitePresentazione Web Site
Presentazione Web SiteWeb Site srl
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Massimo Caliman
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringMarcello Teodori
 

Similaire à MEAN: il nuovo stack di sviluppo per il futuro del web (20)

Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di ria
 
Devops, Cloud e Container
Devops, Cloud e ContainerDevops, Cloud e Container
Devops, Cloud e Container
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdf
 
Presentazione convenzione mongo db_crui gennaio 2020
Presentazione convenzione mongo db_crui gennaio 2020Presentazione convenzione mongo db_crui gennaio 2020
Presentazione convenzione mongo db_crui gennaio 2020
 
MONGODB
MONGODB MONGODB
MONGODB
 
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
 
MySQL Day Milano 2018 - Le architetture a microservizi
MySQL Day Milano 2018 - Le architetture a microserviziMySQL Day Milano 2018 - Le architetture a microservizi
MySQL Day Milano 2018 - Le architetture a microservizi
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
 
... thinking about Microformats!
... thinking about Microformats!... thinking about Microformats!
... thinking about Microformats!
 
Presentazione convenzione mongo db_crui gennaio 2020
Presentazione convenzione mongo db_crui gennaio 2020Presentazione convenzione mongo db_crui gennaio 2020
Presentazione convenzione mongo db_crui gennaio 2020
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
 
SMAU Milano 2014 GAE 24/10/2014 - IWA Italy
SMAU Milano 2014 GAE 24/10/2014 - IWA ItalySMAU Milano 2014 GAE 24/10/2014 - IWA Italy
SMAU Milano 2014 GAE 24/10/2014 - IWA Italy
 
Aws (amazon web services) - Slide
Aws (amazon web services) - SlideAws (amazon web services) - Slide
Aws (amazon web services) - Slide
 
Presentazione Web Site
Presentazione Web SitePresentazione Web Site
Presentazione Web Site
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con Spring
 

Plus de Eugenio Minardi

Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)Eugenio Minardi
 
ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)Eugenio Minardi
 
ExtJS: La piattaforma vincente (multiple screens)
ExtJS: La piattaforma vincente (multiple screens)ExtJS: La piattaforma vincente (multiple screens)
ExtJS: La piattaforma vincente (multiple screens)Eugenio Minardi
 
ExtJS: La piattaforma vincente (rich UI)
ExtJS: La piattaforma vincente (rich UI)ExtJS: La piattaforma vincente (rich UI)
ExtJS: La piattaforma vincente (rich UI)Eugenio Minardi
 
ExtJS: La piattaforma vincente (class system)
ExtJS: La piattaforma vincente (class system)ExtJS: La piattaforma vincente (class system)
ExtJS: La piattaforma vincente (class system)Eugenio Minardi
 
ExtJS: La piattaforma vincente
ExtJS: La piattaforma vincenteExtJS: La piattaforma vincente
ExtJS: La piattaforma vincenteEugenio Minardi
 
Distributed Team Management: 
Pitfall, Challenges and Advantages
Distributed Team Management: 
Pitfall, Challenges and AdvantagesDistributed Team Management: 
Pitfall, Challenges and Advantages
Distributed Team Management: 
Pitfall, Challenges and AdvantagesEugenio Minardi
 
A Practical Introduction to Symfony (European Drupal Days 2015)
A Practical Introduction to Symfony (European Drupal Days 2015)A Practical Introduction to Symfony (European Drupal Days 2015)
A Practical Introduction to Symfony (European Drupal Days 2015)Eugenio Minardi
 
UN World Food Programme Standards & Best Practises (European Drupal Days 2015)
UN World Food Programme Standards & Best Practises (European Drupal Days 2015)UN World Food Programme Standards & Best Practises (European Drupal Days 2015)
UN World Food Programme Standards & Best Practises (European Drupal Days 2015)Eugenio Minardi
 
Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Eugenio Minardi
 
Optimizing MariaDB for Web Applications (European Drupal Days 2015)
Optimizing MariaDB for Web Applications (European Drupal Days 2015)Optimizing MariaDB for Web Applications (European Drupal Days 2015)
Optimizing MariaDB for Web Applications (European Drupal Days 2015)Eugenio Minardi
 
PhpStorm for Drupal Development (European Drupal Days 2015)
PhpStorm for Drupal Development (European Drupal Days 2015)PhpStorm for Drupal Development (European Drupal Days 2015)
PhpStorm for Drupal Development (European Drupal Days 2015)Eugenio Minardi
 
Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Eugenio Minardi
 
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)Eugenio Minardi
 
The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)Eugenio Minardi
 
Another Copernican Revolution: maintenance first, projects second (European D...
Another Copernican Revolution: maintenance first, projects second (European D...Another Copernican Revolution: maintenance first, projects second (European D...
Another Copernican Revolution: maintenance first, projects second (European D...Eugenio Minardi
 
Drupal Security: How to survive Drupalgeddon and prepare for future (European...
Drupal Security: How to survive Drupalgeddon and prepare for future (European...Drupal Security: How to survive Drupalgeddon and prepare for future (European...
Drupal Security: How to survive Drupalgeddon and prepare for future (European...Eugenio Minardi
 
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...Eugenio Minardi
 
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)Eugenio Minardi
 
Secure Drupal, from start to finish (European Drupal Days 2015)
Secure Drupal, from start to finish (European Drupal Days 2015)Secure Drupal, from start to finish (European Drupal Days 2015)
Secure Drupal, from start to finish (European Drupal Days 2015)Eugenio Minardi
 

Plus de Eugenio Minardi (20)

Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)
 
ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)
 
ExtJS: La piattaforma vincente (multiple screens)
ExtJS: La piattaforma vincente (multiple screens)ExtJS: La piattaforma vincente (multiple screens)
ExtJS: La piattaforma vincente (multiple screens)
 
ExtJS: La piattaforma vincente (rich UI)
ExtJS: La piattaforma vincente (rich UI)ExtJS: La piattaforma vincente (rich UI)
ExtJS: La piattaforma vincente (rich UI)
 
ExtJS: La piattaforma vincente (class system)
ExtJS: La piattaforma vincente (class system)ExtJS: La piattaforma vincente (class system)
ExtJS: La piattaforma vincente (class system)
 
ExtJS: La piattaforma vincente
ExtJS: La piattaforma vincenteExtJS: La piattaforma vincente
ExtJS: La piattaforma vincente
 
Distributed Team Management: 
Pitfall, Challenges and Advantages
Distributed Team Management: 
Pitfall, Challenges and AdvantagesDistributed Team Management: 
Pitfall, Challenges and Advantages
Distributed Team Management: 
Pitfall, Challenges and Advantages
 
A Practical Introduction to Symfony (European Drupal Days 2015)
A Practical Introduction to Symfony (European Drupal Days 2015)A Practical Introduction to Symfony (European Drupal Days 2015)
A Practical Introduction to Symfony (European Drupal Days 2015)
 
UN World Food Programme Standards & Best Practises (European Drupal Days 2015)
UN World Food Programme Standards & Best Practises (European Drupal Days 2015)UN World Food Programme Standards & Best Practises (European Drupal Days 2015)
UN World Food Programme Standards & Best Practises (European Drupal Days 2015)
 
Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)
 
Optimizing MariaDB for Web Applications (European Drupal Days 2015)
Optimizing MariaDB for Web Applications (European Drupal Days 2015)Optimizing MariaDB for Web Applications (European Drupal Days 2015)
Optimizing MariaDB for Web Applications (European Drupal Days 2015)
 
PhpStorm for Drupal Development (European Drupal Days 2015)
PhpStorm for Drupal Development (European Drupal Days 2015)PhpStorm for Drupal Development (European Drupal Days 2015)
PhpStorm for Drupal Development (European Drupal Days 2015)
 
Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)
 
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
 
The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)
 
Another Copernican Revolution: maintenance first, projects second (European D...
Another Copernican Revolution: maintenance first, projects second (European D...Another Copernican Revolution: maintenance first, projects second (European D...
Another Copernican Revolution: maintenance first, projects second (European D...
 
Drupal Security: How to survive Drupalgeddon and prepare for future (European...
Drupal Security: How to survive Drupalgeddon and prepare for future (European...Drupal Security: How to survive Drupalgeddon and prepare for future (European...
Drupal Security: How to survive Drupalgeddon and prepare for future (European...
 
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...
 
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
 
Secure Drupal, from start to finish (European Drupal Days 2015)
Secure Drupal, from start to finish (European Drupal Days 2015)Secure Drupal, from start to finish (European Drupal Days 2015)
Secure Drupal, from start to finish (European Drupal Days 2015)
 

MEAN: il nuovo stack di sviluppo per il futuro del web

  • 1. © Ibuildings 2013 - All rights reserved 1
  • 2. MEAN: Il nuovo stack di sviluppo per il futuro del WEB
  • 3. © Ibuildings 2013 - All rights reserved© Ibuildings 2013 - All rights reserved Chi sono io? ▪ Software Architect e sviluppatore per il web da più di 10 anni ▪ Sempre attento alle nuove tecnologie ▪ Partecipe alle community e alla vita open source 3 Eugenio Minardi @kmox83 eugeniominardi eugenio@ibuildings.it
  • 4. © Ibuildings 2013 - All rights reserved© Ibuildings 2013 - All rights reserved Chi è ibuildings? ▪ I professionisti per lo sviluppo di applicazioni enterprise, mission-critical per il web e il mobile ▪ Innovativa, Aperta, sempre orientata alla conoscenza ▪ Fondata nel 1999 ▪ Uffici nei Paesi Bassi, Gran Bretagna, Italia ▪ Più di 80 esperti, specialisti software riconosciuti a livello europeo ▪ Partnership tecnologiche con le realtà più innovative del Web e del Mobile: PHP, Drupal, Aquia, Sencha ▪ Open Source come modello per dare più valore ai risultati 4
  • 5. © Ibuildings 2013 - All rights reserved© Ibuildings 2013 - All rights reserved 5
  • 6. © Ibuildings 2013 - All rights reserved© Ibuildings 2013 - All rights reserved I nostri servizi Sviluppo Applicazioni WEB 2.0 Sviluppo Applicazioni Mobile Supporto 24x7 Project - Process Management Advisor Tecnologico: Analisi Tecnica Rigorous( Process( Excep/onal( Talent( Technology( Exper/se( ! Assured! Delivery! 6
  • 7. © Ibuildings 2013 - All rights reserved Lo Stack MEAN 7 { name: “MongoDB”, type: “Document Database”} Framework per Node.js Framework di Frontend per i Supereroi Ambiente event-driven per l’esecuzione di 
 operazioni concorrenti
  • 8. Ma cosa è uno stack?
  • 9. © Ibuildings 2013 - All rights reserved Lo Stack LAMP 9 Sistema Operativo Linux Web Server Apache Database MySQL Linguaggio Server-side PHP
  • 10. © Ibuildings 2013 - All rights reserved Lo Stack Microsoft 10 Sistema Operativo Windows Web Server IIS Database SQL Server Linguaggio Server-side C# / .net
  • 11. © Ibuildings 2013 - All rights reserved Paragone con MEAN 11 STACK LAMP Microsoft MEAN Sistema Operativo Linux Windows Web Server Apache IIS Node.js Database MySQL SQL Server MongoDB Linguaggio Server-side PHP C# / .net Framework Server-Side express Framework Client-Side AngularJS
  • 12. © Ibuildings 2013 - All rights reserved Paragone con MEAN 12 STACK LAMP Microsoft MEAN Sistema Operativo Linux Windows Linux/Windows Web Server Apache IIS Node.js Database MySQL SQL Server MongoDB Linguaggio Server-side PHP C# / .net Javascript Framework Server-Side express Framework Client-Side AngularJS
  • 13. © Ibuildings 2013 - All rights reserved MEAN S.P.A. MEAN è uno stack che permette di sviluppare ciò che viene definito Single Page Application § Parte della complessità del codice viene lasciata al client § Il codice applicativo è strutturato sia su client che su server § Il ciclo di sviluppo del client si uniforma a quello del server 13
  • 14. © Ibuildings 2013 - All rights reserved Full-stack Javascript 14
  • 15. © Ibuildings 2013 - All rights reserved La storia di Javascript § Creato nel maggio del 1995 in 10 giorni § Nome originale Mocha, dato dal fondatore di Netscape Marc Andreessen § Cambiato nel settembre 1995 in LiveScript § Tornato ad essere chiamato JavaScript su licenza della Sun per sfruttare l’onda positiva di Java § Tra il 1996 e 97 è stato preso in carico da ECMA, società di standardizzazione § I grandi competitor hanno preso strade diverse (Es: Microsoft con Jscript in IE) § Riunificazione nello standard ECMA dovuta al conio del termine AJAX da parte di Jesse James Garrett nel 2005 15
  • 16. © Ibuildings 2013 - All rights reserved La storia di Javascript § Javascript è frainteso § La sintassi lo fa sembrare C-like, come Java § Il paradigma è molto più simile a LISP, tanto che in una delle implementazioni iniziali erano utilizzate le parentesi § L’uso del linguaggio in modo simile a Java porta a gravi errori di programmazione 16
  • 17. © Ibuildings 2013 - All rights reserved La storia di Javascript Da Wikipedia: ! JavaScript is a prototype-based scripting language with dynamic typing and has first-class functions. Its syntax was influenced by C. JavaScript copies many names and naming conventions from Java, but the two languages are otherwise unrelated and have very different semantics. The key design principles within JavaScript are taken from the Self and Scheme programming languages.[6] It is a multi-paradigm language, supporting object-oriented,[7] imperative, and functional[1][8] programming styles. 17
  • 19. © Ibuildings 2013 - All rights reserved Cosa è Node.JS Node.JS è una piattaforma software utilizzata § per costruire applicazioni scalabili § particolarmente per il lato server-side § per gestire un elevato throughput § implementa un server http 19
  • 20. © Ibuildings 2013 - All rights reserved La storia di Node.JS § Node.JS è stato creato da Ryan Dahl § Il progetto ha avuto inizio nel 2009 § Nasce dall’idea ottenuta osservando una progress-bar evoluta su Flickr (Il client non sa quanto manca) § Necessità di eventi in push § Preceduto da una serie di fallimenti in C, Lua, and Haskell § Basato sul motore Javascript di Chrome chiamato V8 § Il progetto si è spostato dalla semplice idea iniziale fino a diventare l’oggetto che è ora 20
  • 21. © Ibuildings 2013 - All rights reserved I simili di Node.JS Altri linguaggi offrono piattaforme simili a Node.JS § Tornado e Twisted in Python § libevent in C § Vert.X in Java, JavaScript, Groovy, Python and Ruby (Su JVM) § Akka in Scala § EventMachine in Ruby § e molti altri… 21
  • 22. © Ibuildings 2013 - All rights reserved 22 Performance di Node.js I punti di forza che rendono Node.JS performante sono § I grandi del settore competono sui motori Javascript (Mozilla, Google, Apple, Microsoft, Opera) § V8 di Google è diventato estremamente performante § Modello non bloccante di Node.JS § Software leggero § Possibilità di gestire migliaia di connessioni contemporanee su una dotazione hardware nella media § Nativamente asincrono
  • 23. © Ibuildings 2013 - All rights reserved Cosa è express express è un framework per Node.js che § semplifica l’implementazione di servizi REST § fornisce strumenti utili per la gestione request/response § aiuta a dare una struttura all’applicazione 23
  • 24. © Ibuildings 2013 - All rights reserved 24 express Differenze tra middleware e framework § Il middleware è una funzione che interviene sui dati che passano o che effettua operazioni tra il ciclo di richiesta HTTP ed il ciclo di risposta § Il framework implementa le funzioni di utilità e stabilisce delle linee guida per il proprio utilizzo. § Connect è un framework che raccoglie diverse funzioni di middleware § Express estende connect e ne riespone i middleware appoggiandosi all’http.Server di node.js
  • 25. © Ibuildings 2013 - All rights reserved 25 express express è il framework più utilizzato per lo sviluppo di applicazioni Node.JS § si ispira a Sinatra (Ruby) § è diventato ormai di uso standard § express è un’estensione del middleware framework chiamato connect
  • 26. © Ibuildings 2013 - All rights reserved Cosa è MongoDB è un database non relazionale orientato ai documenti § per costruire basi di dati documentali scalabili § dal nome derivato da “humongous” cioè enorme, permette la gestione di grandi documenti e grandi basi di dati § permette in modo semplice di replicare i dati § garantisce la consistenza e tolleranza di partizione a scapito della disponibilità (CP - CAP Theorem) 26
  • 27. © Ibuildings 2013 - All rights reserved Cosa è MongoDB MongoDB dispone di uno schema dinamico § nell’evoluzione di un’applicazione la modifica dello schema non comporta una modifica al database con conseguente migrazione dei dati § i dati dei documenti vengono salvati come serviranno all’applicazione, in tal modo si riducono i tempi di calcolo/ elaborazione del dato § Posso ottenere un documento con diversi livelli di annidamento senza alcuna Join (pre join) § MongoDB dispone di funzioni per l’interrogazione molto simili a ciò che l’SQL permette di esprimere 27
  • 28. © Ibuildings 2013 - All rights reserved Cosa è MongoDB § MongoDB dispone di un supporto efficiente per gli indici § Supporta le transazioni a livello di documento § Salva e scambia i documenti in formato JSON (su disco in BSON che è una rappresentazione binaria dei JSON) 28
  • 29. © Ibuildings 2013 - All rights reserved Cosa è AngularJS AngularJS è un framework client-side che implementa l’MVVM MVVM (Model View ViewModel) - Specializzazione dell’MVC per lo sviluppo di componenti legati alla UI. Framework sviluppato e supportato da Google 29
  • 30. © Ibuildings 2013 - All rights reserved AngularJS Molto utilizzato in ambienti di sviluppo event-driven § per costruire applicazioni complesse § espressione della UI in modo dichiarativo (formalità) § abilita al testing in modo più semplice § Ciclo design-sviluppo più semplice, chi fa markup può intervenire senza “fare danni” alla logica 30
  • 31. © Ibuildings 2013 - All rights reserved AngularJS § In AngularJS si estende il vocabolario HTML dell’applicazione § AngularJS formalizza la UI ma non fornisce componenti grafici. § AngularJS è tuttavia estensibile ed esistono diversi moduli che permettono l’integrazione dei framework più comuni (come per esempio bootstrap) § Anche AngularJS ha una community molto attiva con molti moduli pronti all’uso 31
  • 32. I vantaggi dello Stack MEAN
  • 33. © Ibuildings 2013 - All rights reserved Nessuna preferenza di OS § Node.JS e MongoDB sono disponibili su diversi sistemi operativi § Non si è legati ad uno specifico ambiente ma si può cambiare anche durante il ciclo di vita dell’applicazione § Non c’è bisogno di cambiare hardware e software già esistenti 33
  • 34. © Ibuildings 2013 - All rights reserved Supporto delle community § Tutti i software ed i framework utilizzati hanno grandi community alle spalle § esistono forum, canali IRC, newsletter e molti altri posti dove trovare informazioni 34
  • 35. © Ibuildings 2013 - All rights reserved Supporto delle corporate § Node.JS, MongoDB e AngularJS hanno alle spalle delle società solide che ne portano avanti lo sviluppo § Questo fa si che i prodotti derivati siano all’altezza di applicazioni enterprise § Anche il supporto al prodotto è a lungo termine 35
  • 36. © Ibuildings 2013 - All rights reserved Javascript is Everywhere Javascript è il linguaggio di tutte le componenti dello stack, il che offre svariati vantaggi: § maggiore interoperabilità degli sviluppatori § standardizzazione dei metodi di sviluppo § consistenza dei dati nel corso dello sviluppo § rendere i propri sviluppatori full-stack dà un vantaggio sugli sviluppi 36
  • 37. © Ibuildings 2013 - All rights reserved Ciclo di sviluppo § Essendo AngularJS un framework MVVM porta ad avere una logica sul client strutturalmente equivalente a quella del server § Si possono usare le stesse metodologie di sviluppo anche sulla parte client 37
  • 38. © Ibuildings 2013 - All rights reserved Testabilità § Tutto il codice prodotto è testabile § I test sono automatizzabili anche su client 38
  • 39. © Ibuildings 2013 - All rights reserved 39 Per sintetizzare I motivi che rendono forte MEAN sono § Abbattimento dei costi dell’infrastruttura § Diminuzione dei tempi di sviluppo § Reperibilità di sviluppatori § Aumento delle performance § Unificazione delle competenze su tutto lo stack § Natura asincrona
  • 40. Ibuildings ITALIA Finalmente le tue APP Web & Mobile diventano GRANDI Ibuildings NV Rappresentanza per l’Italia Via Santa Maria Valle, 3 20123 Milano info@ibuildings.it www.ibuildings.it