TypeScript, ovvero JavaScript che "non si rompe"BENTOSA
Le slide del seminario introduttivo su TypeScript, il superset di JavaScript di Microsoft. Antonio e Federico ci hanno illustrato le potenzialità di questo linguaggio per scrivere del codice JavaScript con meno errori.
Lavorare con applicazioni Brownfield: il caso di 39x27.comSimone Chiaretta
La maggior parte dei progetti software sono progetti legacy. Anche progetti nuovi possono essere considerati legacy se non pensati correttamente. In questa sessione vedremo gli step per portare un progetto legacy verso un progetto facile da manutenere, testare ed estendere.
E lo faremo usando come caso reale 39x27.com, un sito per il tracking di salite in bicicletta.
Slide della presentazione tenuta il 23 Gennaio 2010 alla 5° UGIALT.NET Conference.
TypeScript, ovvero JavaScript che "non si rompe"BENTOSA
Le slide del seminario introduttivo su TypeScript, il superset di JavaScript di Microsoft. Antonio e Federico ci hanno illustrato le potenzialità di questo linguaggio per scrivere del codice JavaScript con meno errori.
Lavorare con applicazioni Brownfield: il caso di 39x27.comSimone Chiaretta
La maggior parte dei progetti software sono progetti legacy. Anche progetti nuovi possono essere considerati legacy se non pensati correttamente. In questa sessione vedremo gli step per portare un progetto legacy verso un progetto facile da manutenere, testare ed estendere.
E lo faremo usando come caso reale 39x27.com, un sito per il tracking di salite in bicicletta.
Slide della presentazione tenuta il 23 Gennaio 2010 alla 5° UGIALT.NET Conference.
With Visual Studio 2017, we have a new C # language update. After a brief review of Update 6.0, we'll see what's new. The themes of Update 7 are: Working with Data, Improved Perfomances, and Code Simplification.
C# is entering its third decade of life. And it is consistently evolving over the years with lot of new features. Let's recap the recent 7.x evolution and what we expect for the 8.0 features.
Programmazione a oggetti tramite la macchina del caffé (pt. 2)Marcello Missiroli
Una introduzione semplice e (spero) intuitiva al mondo della programmazione a oggetti usando come riferimento una macchina del caffé (tipo Nespresso)
Slides 2 di 3
ES6 è stata una rivoluzione nel mondo JavaScript ed ha portato il linguaggio ad uno step successivo.
In questo talk si affrontano gli aspetti che hanno resto fondamentale questo nuovo standard.
Videocorso in italiano su Udemy!
https://www.udemy.com/corso-linux-per-sviluppatori-web-lamp-apache-php-mysql/?couponCode=SLIDES10
- Installare un server linux
- Lavorare con la linea di comando
- Gestione gruppi, utenti e permessi
- Bash scripting
- Espressioni regolari
- Apache, NGnix &Https
- Installare PHP & MySql
- Cron e crontab
Introduzione al linguaggio Java per chi ha esperienza di C++. Non si parla di OOP, solo di linguaggio.
Codice sorgente dell'esercizio finale qui: https://pastebin.com/R4yZGQcy
Come aggiornare i dati di una tabella relazionale prima di chiavi straniere. Le quattro operazioni fondamentali. CRUD. Visualizzare una lista di righe della tabella relazionale, inserire una nuova riga, ricercare un record conoscendo la sua chiave primaria. Modificare e annullare
Javascript avanzato: sfruttare al massimo il webRoberto Messora
Javascript è uno dei linguaggi più sottovalutati e più incompresi dell'intero panorama dei linguaggi di programmazione, eppure è anche uno dei più utilizzati.
Da una parte le molteplici e differenti declinazioni degli strumenti di navigazione web, dall'altra l'infelice scelta storica di usare il termine "script", hanno contribuito alla creazione del mito di un linguaggio poco rigoroso, al servizio di ogni sorta di trucco o pezza di codice.
La verità invece racconta di un linguaggio dinamico ad oggetti a tutti gli effetti, con caratteristiche molto interessanti, seppur con qualche difetto, ma soprattutto un linguaggio che, sull'onda di HTML5, rivestirà se possibile ancora più importanza nell'immediato futuro.
In questa sessione verranno presentati aspetti poco conosciuti, ma molto importanti, di Javascript (scoping, hoisting, closures, ecc.), verranno presentati alcuni design patterns che permettono di strutturare in maniera intelligente le nostre librerie applicative in funzione della manutenibilità e delle performance, senza tralasciare, ove possibile, uno sguardo ad alcuni framework come jQuery o KnockoutJS.
by Davide Cerbo e Stefano Linguerri
La programmazione web sta facendo passi da gigante e oggi l’utente si aspetta che l’esperienza di utilizzo si avvicini sempre di più a quella a cui è abituato nei classici applicativi desktop. Il mondo degli sviluppatori ha risposto inventanto una nuova sigla: RIA, cioè Rich Internet Application. Google non è stata a guardare e ha fornito la sua risposta a questa esigenza donando alla community Google Web Toolkit. Questo nuovo framework permette di sviluppare in Java tutta l’interfaccia utente per poi ottenere un codice javascript che funzionerà su qualsiasi browser web senza l’installazione di plugin aggiuntivi. In questa presentazione vedremo:
* perchè sviluppare applicazioni RIA
* perchè usare GWT
* come GWT utilizza AJAX per comunicare con il server
* le ottimizzazione che avremo utilizzando GWT
* come uscire dal browser con Google Gear e Mozilla Prism
* e non solo…
With Visual Studio 2017, we have a new C # language update. After a brief review of Update 6.0, we'll see what's new. The themes of Update 7 are: Working with Data, Improved Perfomances, and Code Simplification.
C# is entering its third decade of life. And it is consistently evolving over the years with lot of new features. Let's recap the recent 7.x evolution and what we expect for the 8.0 features.
Programmazione a oggetti tramite la macchina del caffé (pt. 2)Marcello Missiroli
Una introduzione semplice e (spero) intuitiva al mondo della programmazione a oggetti usando come riferimento una macchina del caffé (tipo Nespresso)
Slides 2 di 3
ES6 è stata una rivoluzione nel mondo JavaScript ed ha portato il linguaggio ad uno step successivo.
In questo talk si affrontano gli aspetti che hanno resto fondamentale questo nuovo standard.
Videocorso in italiano su Udemy!
https://www.udemy.com/corso-linux-per-sviluppatori-web-lamp-apache-php-mysql/?couponCode=SLIDES10
- Installare un server linux
- Lavorare con la linea di comando
- Gestione gruppi, utenti e permessi
- Bash scripting
- Espressioni regolari
- Apache, NGnix &Https
- Installare PHP & MySql
- Cron e crontab
Introduzione al linguaggio Java per chi ha esperienza di C++. Non si parla di OOP, solo di linguaggio.
Codice sorgente dell'esercizio finale qui: https://pastebin.com/R4yZGQcy
Come aggiornare i dati di una tabella relazionale prima di chiavi straniere. Le quattro operazioni fondamentali. CRUD. Visualizzare una lista di righe della tabella relazionale, inserire una nuova riga, ricercare un record conoscendo la sua chiave primaria. Modificare e annullare
Javascript avanzato: sfruttare al massimo il webRoberto Messora
Javascript è uno dei linguaggi più sottovalutati e più incompresi dell'intero panorama dei linguaggi di programmazione, eppure è anche uno dei più utilizzati.
Da una parte le molteplici e differenti declinazioni degli strumenti di navigazione web, dall'altra l'infelice scelta storica di usare il termine "script", hanno contribuito alla creazione del mito di un linguaggio poco rigoroso, al servizio di ogni sorta di trucco o pezza di codice.
La verità invece racconta di un linguaggio dinamico ad oggetti a tutti gli effetti, con caratteristiche molto interessanti, seppur con qualche difetto, ma soprattutto un linguaggio che, sull'onda di HTML5, rivestirà se possibile ancora più importanza nell'immediato futuro.
In questa sessione verranno presentati aspetti poco conosciuti, ma molto importanti, di Javascript (scoping, hoisting, closures, ecc.), verranno presentati alcuni design patterns che permettono di strutturare in maniera intelligente le nostre librerie applicative in funzione della manutenibilità e delle performance, senza tralasciare, ove possibile, uno sguardo ad alcuni framework come jQuery o KnockoutJS.
by Davide Cerbo e Stefano Linguerri
La programmazione web sta facendo passi da gigante e oggi l’utente si aspetta che l’esperienza di utilizzo si avvicini sempre di più a quella a cui è abituato nei classici applicativi desktop. Il mondo degli sviluppatori ha risposto inventanto una nuova sigla: RIA, cioè Rich Internet Application. Google non è stata a guardare e ha fornito la sua risposta a questa esigenza donando alla community Google Web Toolkit. Questo nuovo framework permette di sviluppare in Java tutta l’interfaccia utente per poi ottenere un codice javascript che funzionerà su qualsiasi browser web senza l’installazione di plugin aggiuntivi. In questa presentazione vedremo:
* perchè sviluppare applicazioni RIA
* perchè usare GWT
* come GWT utilizza AJAX per comunicare con il server
* le ottimizzazione che avremo utilizzando GWT
* come uscire dal browser con Google Gear e Mozilla Prism
* e non solo…
Similar to 15 concetti importanti su javascript (20)
Angular 4 - convertire o migrare un'applicazione AngularjsGiovanni Buffa
Seminario renuto all'IRES di Udine sulla migrazione, attraverso UpgradeModule, o la riscrittura di un'applicazione AngularJs in una applicazione Angular 2/4
Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa
Come poter scegliere un framework da utilizzare in un progetto per una web applications? Durante questo workshop analizzeremo le parti fondamentali di AngularJs e React, in modo da capire pregi e difetti di ognungo dei due principali strumenti di sviluppo.
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSGiovanni Buffa
Gli argomenti trattati durante il Workshop gratuito sull'ideazione e creazione di Web Applications con AngularJS:
- Metodologie innovative di ideazione e creazione di Web Applications;
- Sfide e problemi del lavoro in team;
- Introduzione ad AngularJS e alle sue componenti principali;
- Dimostrazione pratica di una WebApp
Developing for Performances - Laboratorio di Web Design 2014/15Giovanni Buffa
Developing for Permfances: quali sono le cose che veramente contano nella realizzazione di un sito internet. Come poter velocizzare il caricamento di un sito internet.
Introduction to SEO, based on the official document provided by Google: https://static.googleusercontent.com/media/www.google.com/it//intl/it/webmasters/docs/search-engine-optimization-starter-guide-it.pdf
Drupal is an open-source content management framework that allows users to create and manage websites and applications. It provides building blocks like modules that can be combined to create sites for purposes like news sites, online stores, social networks, blogs, and wikis. Content in Drupal is organized into nodes that are then structured and presented through various systems like menus, taxonomy, and views. This separation of content and presentation is similar to the separation of HTML and CSS. Drupal provides flexibility in customizing sites through its large library of contributed modules and ability to configure user permissions and themes.
Laboratorio di Web Design Base - 2014/15 - HTML/5Giovanni Buffa
All must used and usefull HTML and HTML5 tags. Thi presentation is used in my course "Laboratorio di Web Design Base" @ Centro Giovani di Monfalcone in 2014/15
3. in collaborazione con15 concetti importanti
su JavaScript
Il luogo o porzione del
programma dove scriviamo il
nostro codice è importante!
3
var a = 1;
function greet(){
var a = “Hello World!”;
}
5. Esistono molti lexical environment. Quello attualmente in esecuzione
viene gestito dal contesto di esecuzione. Al suo interno, trovano
posto molte altre cose non scritte da noi nel codice.
in collaborazione con15 concetti importanti
su JavaScript
5
7. Un nome associato ad un unico
valore. Il valore può essere usato
più volte, ma può avere un solo
nome in ogni contesto. Il valore
può essere, a suo volta, un’altra
coppia nome/valore.
in collaborazione con15 concetti importanti
su JavaScript
7
address = ‘Viale Ungheria, 22 Udine’
15. in collaborazione con15 concetti importanti
su JavaScript
15
Contesto di esecuzione - fase di creazione
Global
Object
this
Link
all’ambiente
esterno
Imposta lo spazio in memoria per variabili e funzioni
16. in collaborazione con15 concetti importanti
su JavaScript
16
Contesto di esecuzione - fase di esecuzione
Global
Object
this
Link
all’ambiente
esterno
Il codice viene eseguito
18. in collaborazione con15 concetti importanti
su JavaScript
JavaScript è un linguaggio single threaded, eseguito in modo sincrono.
Un comando alla volta, in ordine, riga per riga!
18
19. 9.
CHIAMATA A FUNZIONE &
STACK DI ESECUZIONE
in collaborazione con15 concetti importanti
su JavaScript
19
20. in collaborazione con15 concetti importanti
su JavaScript
20
function b(){
}
function a(){
b();
}
a();
Global Execution Context
a() Execution Context
b() Execution Context
21. in collaborazione con15 concetti importanti
su JavaScript
21
function b(){
var num;
}
function a(){
var num = 2;
b();
}
var num = 1;
a();
console.log(num);
Global Execution Context
a() Execution Context
b() Execution Context
num
1
num
2
num
undefined
23. in collaborazione con15 concetti importanti
su JavaScript
23
?
function b(){
console.log(num);
}
function a(){
var num = 2;
b();
}
var num = 1;
a();
24. in collaborazione con15 concetti importanti
su JavaScript
24
function b(){
console.log(num);
}
function a(){
var num = 2;
b();
}
var num = 1;
a();
Global Execution Context
a() Execution Context
b() Execution Context
num
1
num
2
25. in collaborazione con15 concetti importanti
su JavaScript
25
var a = 1;
var b = 2;
if(a > b){
var c = 3;
}
console.log(c);
// undefined
var a = 1;
var b = 2;
if(a > b){
let c = 3;
}
console.log(c);
// ReferenceError
ES6
27. In JavaScript, una funzione può essere assegnata ad una variabile,
passata come argomento ad un’altra funzione
oppure creata on-the-fly.
Le funzioni, in JavaScript, sono oggetti.
in collaborazione con15 concetti importanti
su JavaScript
27
28. in collaborazione con15 concetti importanti
su JavaScript
Le funzioni possono essere sia dichiarate (function statement) che
sotto forma di espressione (function expression).
28
//statement
function b(){ }
//expression
var a = function(){ }
//statement
b();
//expression
a();
29. 12.
BY VALUE &
BY REFERENCE
in collaborazione con15 concetti importanti
su JavaScript
29
30. in collaborazione con15 concetti importanti
su JavaScript
Valori primitivi
30
0x0001a
b = a
0x0002b
33. in collaborazione con15 concetti importanti
su JavaScript
33
Contesto di esecuzione
Function
Object
this
Link
all’ambiente
esterno
Codice
34. in collaborazione con15 concetti importanti
su JavaScript
34
function b(){
console.log(this);
}
var a = function(){
console.log(this);
}
var c = {
name: ‘pippo’,
greet: function(){
console.log(this);
}
}
?
35. in collaborazione con15 concetti importanti
su JavaScript
35
?
var c = {
name: ‘pippo’,
greet: function(){
var setName = function(newName){
this.name = newName;
}
setName('Pluto');
}
}
36. in collaborazione con15 concetti importanti
su JavaScript
36
var c = {
name: ‘pippo’,
greet: function(){
var self = this;
var setName = function(newName){
self.name = newName;
}
}
}
var c = {
name: ‘pippo’,
greet: function(){
var setName = function(newName){
this.name = newName;
}.bind(this);
}
}
37. in collaborazione con15 concetti importanti
su JavaScript
37
ES6
var c = {
name: ‘pippo’,
greet: function(){
var setName = (newName) => {
this.name = newName;
};
}
}
42. in collaborazione con15 concetti importanti
su JavaScript
42
Prototype chain
obj
{…}
prop1
obj.prop1
obj.prop2
proto
{…}
prop2
obj.prop3
proto
{…}
prop3
obj2
{…}
obj2.prop2
43. in collaborazione con15 concetti importanti
su JavaScript
43
function Person() {
this.firstName = ‘Pippo’;
this.lastName = ‘Pluto’;
}
var pippo = new Person(); ?
Function constructor
44. in collaborazione con15 concetti importanti
su JavaScript
44
Function constructor & prototype
L’attributo
prototype non è
il prototipo
dell’oggetto
funzione!
function Person() {
this.firstName = ‘Pippo’;
this.lastName = ‘Pluto’;
}
Person.prototype.sayHi = function(){
return ‘Hi ’ + this.firstName;
}
var pippo = new Person();
console.log(pippo.sayHi());
45. in collaborazione con15 concetti importanti
su JavaScript
45
ES6
class Person = {
this.firstName;
this.lastName;
constructor(firstName, lastName){
this.firstName = firstName;
this.lastName = lastName;
}
sayHi(){
return ‘Hi ’ + this.firstName;
}
}
var pippo = new Person(‘Pippo’, ‘Pluto’);
pippo.sayHi();