Your SlideShare is downloading. ×
0
© 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 svilupp...
© Ibuildings 2013 - All rights reserved© Ibuildings 2013 - All rights reserved
Chi è ibuildings?
▪ I professionisti per lo...
© 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
...
© Ibuildings 2013 - All rights reserved
Lo Stack MEAN
7
{ name: “MongoDB”, type: “Document Database”}
Framework per Node.j...
Ma cosa è uno stack?
© Ibuildings 2013 - All rights reserved
Lo Stack LAMP
9
Sistema Operativo Linux
Web Server Apache
Database MySQL
Linguaggi...
© Ibuildings 2013 - All rights reserved
Lo Stack Microsoft
10
Sistema Operativo Windows
Web Server IIS
Database SQL Server...
© Ibuildings 2013 - All rights reserved
Paragone con MEAN
11
STACK LAMP Microsoft MEAN
Sistema
Operativo
Linux Windows
Web...
© Ibuildings 2013 - All rights reserved
Paragone con MEAN
12
STACK LAMP Microsoft MEAN
Sistema
Operativo
Linux Windows Lin...
© Ibuildings 2013 - All rights reserved
MEAN S.P.A.
MEAN è uno stack che permette di sviluppare ciò che viene
definito Sing...
© 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 origina...
© Ibuildings 2013 - All rights reserved
La storia di Javascript
§ Javascript è frainteso
§ La sintassi lo fa sembrare C-...
© Ibuildings 2013 - All rights reserved
La storia di Javascript
Da Wikipedia:
!
JavaScript is a prototype-based scripting ...
Entriamo nel dettaglio
© Ibuildings 2013 - All rights reserved
Cosa è Node.JS
Node.JS è una piattaforma software
utilizzata
§ per costruire appl...
© Ibuildings 2013 - All rights reserved
La storia di Node.JS
§ Node.JS è stato creato da Ryan Dahl
§ Il progetto ha avut...
© Ibuildings 2013 - All rights reserved
I simili di Node.JS
Altri linguaggi offrono piattaforme simili a Node.JS
§ Tornad...
© Ibuildings 2013 - All rights reserved 22
Performance di Node.js
I punti di forza che rendono Node.JS performante sono 
§...
© Ibuildings 2013 - All rights reserved
Cosa è express
express è un framework per Node.js che 
§ semplifica l’implementazi...
© Ibuildings 2013 - All rights reserved 24
express
Differenze tra middleware e framework
§ Il middleware è una funzione c...
© Ibuildings 2013 - All rights reserved 25
express
express è il framework più utilizzato per lo sviluppo di
applicazioni N...
© Ibuildings 2013 - All rights reserved
Cosa è MongoDB
è un database non relazionale orientato ai
documenti
§ per costrui...
© Ibuildings 2013 - All rights reserved
Cosa è MongoDB
MongoDB dispone di uno schema dinamico
§ nell’evoluzione di un’app...
© Ibuildings 2013 - All rights reserved
Cosa è MongoDB
§ MongoDB dispone di un supporto efficiente per gli indici
§ Supp...
© Ibuildings 2013 - All rights reserved
Cosa è AngularJS
AngularJS è un framework client-side che
implementa l’MVVM
MVVM (...
© Ibuildings 2013 - All rights reserved
AngularJS
Molto utilizzato in ambienti di sviluppo event-driven
§ per costruire a...
© Ibuildings 2013 - All rights reserved
AngularJS
§ In AngularJS si estende il vocabolario HTML
dell’applicazione 
§ Ang...
I vantaggi dello Stack MEAN
© Ibuildings 2013 - All rights reserved
Nessuna preferenza di OS
§ Node.JS e MongoDB sono disponibili su diversi sistemi
...
© Ibuildings 2013 - All rights reserved
Supporto delle community
§ Tutti i software ed i framework utilizzati hanno grand...
© Ibuildings 2013 - All rights reserved
Supporto delle corporate
§ Node.JS, MongoDB e AngularJS hanno alle spalle delle s...
© Ibuildings 2013 - All rights reserved
Javascript is Everywhere
Javascript è il linguaggio di tutte le componenti dello s...
© Ibuildings 2013 - All rights reserved
Ciclo di sviluppo
§ Essendo AngularJS un framework MVVM porta ad avere una
logica...
© Ibuildings 2013 - All rights reserved
Testabilità
§ Tutto il codice prodotto è testabile
§ I test sono automatizzabili...
© Ibuildings 2013 - All rights reserved 39
Per sintetizzare
I motivi che rendono forte MEAN sono
§ Abbattimento dei costi...
Ibuildings ITALIA
Finalmente le tue APP Web & Mobile diventano GRANDI
Ibuildings NV
Rappresentanza per l’Italia
Via Santa ...
Upcoming SlideShare
Loading in...5
×

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

1,150

Published on

Eugenio Minardi @ Mean Conference - 9 giugno 2014

Published in: Internet

Transcript of "MEAN: il nuovo stack di sviluppo per il futuro del web"

  1. 1. © Ibuildings 2013 - All rights reserved 1
  2. 2. MEAN: Il nuovo stack di sviluppo per il futuro del WEB
  3. 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. 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. 5. © Ibuildings 2013 - All rights reserved© Ibuildings 2013 - All rights reserved 5
  6. 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. 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. 8. Ma cosa è uno stack?
  9. 9. © Ibuildings 2013 - All rights reserved Lo Stack LAMP 9 Sistema Operativo Linux Web Server Apache Database MySQL Linguaggio Server-side PHP
  10. 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. 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. 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. 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. 14. © Ibuildings 2013 - All rights reserved Full-stack Javascript 14
  15. 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. 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. 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
  18. 18. Entriamo nel dettaglio
  19. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 32. I vantaggi dello Stack MEAN
  33. 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. 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. 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. 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. 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. 38. © Ibuildings 2013 - All rights reserved Testabilità § Tutto il codice prodotto è testabile § I test sono automatizzabili anche su client 38
  39. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×