Last active
August 29, 2015 14:16
-
-
Save michelemauro/f6b9ae43a346f691bbf4 to your computer and use it in GitHub Desktop.
PPP
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<section data-background-transition='zoom' data-transition='concave' data-background='https://dl.dropboxusercontent.com/u/25389418/1-andre-freitas.jpg' data-state='blackout'> | |
<section data-transition='concave'> | |
<h2>Prevedibili Problematiche nel Passaggio dal Protocollo Richiesta/Risposta a Evento/Messaggio</h2> | |
</section> | |
<section> | |
<p> | |
ovvero spigoli vivi di WebSocket, angoli taglienti di Reactive e altre cose per non diventare una balbettante bambocciosa banda di babbani babbuini | |
</p> | |
</section> | |
</section> | |
<section data-background-transition='zoom' data-transition='concave' data-background='https://dl.dropboxusercontent.com/u/25389418/1-andre-freitas.jpg' data-state='blackout'> | |
<section data-transition='concave'> | |
<h2>fra i socket, nessuno può sentirti URLare</h2> | |
</section> | |
<section data-transition='concave'> | |
<a href="https://imgflip.com/i/iesnb"><img src="https://i.imgflip.com/iesnb.jpg" title="made at imgflip.com"/></a> | |
</section> | |
<section> | |
<p> | |
nella comunicazione via WebSocket, non c'è più l'url come indirizzo dell'azione richiesta | |
</p> | |
</section> | |
<section> | |
<p>Conseguenze: | |
<ul> | |
<li>diversa discoverability</li> | |
<li>analisi dei log differente</li> | |
<li>altre strade di comprensione del sistema</li> | |
<li>API esposta a terze parti diventa una entità separata</li> | |
</ul> | |
</section> | |
</section> | |
<section data-background-transition='zoom' data-transition='concave' data-background='https://dl.dropboxusercontent.com/u/25389418/1-andre-freitas.jpg' data-state='blackout'> | |
<section data-transition='concave'> | |
<h2>parametri vs payload</h2> | |
</section> | |
<section> | |
<a href="https://imgflip.com/i/iestk"><img src="https://i.imgflip.com/iestk.jpg" title="made at imgflip.com"/></a> | |
</section> | |
<section> | |
<p> | |
non essendoci più la richiesta/risposta, cade la dicotomia parametri/attributi dell'oggetto letto dal body | |
</p> | |
<p class=fragment> | |
e il multipart upload? | |
</p> | |
</section> | |
</section> | |
<section data-background-transition='zoom' data-transition='concave' data-background='https://dl.dropboxusercontent.com/u/25389418/1-andre-freitas.jpg' data-state='blackout'> | |
<section data-transition='concave'> | |
<h2>il browser come mittente</h2> | |
</section> | |
<section> | |
<p> | |
il browser può essere un mittente di messaggi, paritario con gli altri oggetti del sistema | |
</p> | |
<p class=fragment> | |
come capisco che è diverso? in cosa può differire? e come lo identifico? | |
</p> | |
</section> | |
<section> | |
<a href="https://imgflip.com/i/iet4m"><img src="https://i.imgflip.com/iet4m.jpg" title="made at imgflip.com"/></a> | |
</section> | |
</section> | |
<section data-background-transition='zoom' data-transition='concave' data-background='https://dl.dropboxusercontent.com/u/25389418/1-andre-freitas.jpg' data-state='blackout'> | |
<section data-transition='concave'> | |
<h2>il mittente come<br />destinatario</h2> | |
</section> | |
<section> | |
<p> | |
il messaggio ha una sola direzione: dal mittente al destinatario | |
</p> | |
<p class=fragment> | |
Se una risposta è prevista, il mittente dev'essere un dato accessibile, ed il destinatario deve usarlo per indirizzare il nuovo messaggio | |
</p> | |
</section> | |
<section> | |
<a href="https://imgflip.com/i/iet9y"><img src="https://i.imgflip.com/iet9y.jpg" title="made at imgflip.com"/></a> | |
</section> | |
</section> | |
<section data-background-transition='zoom' data-transition='concave' data-background='https://dl.dropboxusercontent.com/u/25389418/1-andre-freitas.jpg' data-state='blackout'> | |
<section data-transition='concave'> | |
<h2>JSON, JSON everywhere</h2> | |
</section> | |
<section> | |
<a href="https://imgflip.com/i/ieqaq"><img src="https://i.imgflip.com/ieqaq.jpg" title="made at imgflip.com"/></a> | |
</section> | |
<section> | |
<p> | |
molti strumenti sono fortemente orientati al suo utilizzo | |
</p> | |
<p class=fragment> | |
per un motivo o per l'altro, è il più comodo formato da usare | |
</p> | |
<p class=fragment> | |
ma è uno dei peggiori al mondo | |
</p> | |
</section> | |
<section> | |
<ul> | |
<li>parsing, unmarshalling</li> | |
<li>pochi (3), mal definiti tipi di dati</li> | |
<li>schema poco efficace</li> | |
</ul> | |
</section> | |
</section> | |
<section data-background-transition='zoom' data-transition='concave' data-background='https://dl.dropboxusercontent.com/u/25389418/1-andre-freitas.jpg' data-state='blackout'> | |
<section data-transition='concave'> | |
<h2>Alberi, foreste e rumori di caduta</h2> | |
</section> | |
<section> | |
come faccio a cablare insieme produttori e consumatori di messaggi? | |
<p class=fragment>senza reinventare Spring?</p> | |
</section> | |
<section> | |
come faccio a sapere chi ascolta/si aspetta quale messaggio? | |
<p class=fragment>senza ispezionare il codice? (così sono capaci tutti)</p> | |
</section> | |
<section> | |
come faccio a sapere che il tipo e la struttura del messaggio inviato è quello che il destinatario si aspetta? | |
<p class=fragment> | |
(sempre che il destinatario abbia un "tipo di messaggio") | |
</p> | |
</section> | |
<section> | |
e come faccio a sapere se, cosa e dove è andato storto? | |
<p class=fragment>sarebbe a dire, cosa scrivo nel log?</p> | |
</section> | |
</section> | |
<section data-background-transition='zoom' data-transition='concave' data-background='https://dl.dropboxusercontent.com/u/25389418/1-andre-freitas.jpg' data-state='blackout'> | |
<section data-transition='concave'> | |
<h2>Dei tronchi,<br /> della misurazione e della misurazione dei tronchi</h2> | |
</section> | |
<section> | |
i log sono un dato importante | |
</section> | |
<section> | |
<a href="https://imgflip.com/i/ier8r"><img src="https://i.imgflip.com/ier8r.jpg" title="made at imgflip.com"/></a> | |
</section> | |
<section> | |
Qualcuno deve poter con il minimo sforzo consultarli per essere sicuro che va tutto bene o sapere cosa è andato male | |
</section> | |
<section> | |
<a href="https://imgflip.com/i/iercp"><img src="https://i.imgflip.com/iercp.jpg" title="made at imgflip.com"/></a> | |
</section> | |
<section> | |
<blockquote class="twitter-tweet" lang="it"><p>It is easier to measure something than to understand what you have measured</p>— Mario Fusco (@mariofusco) <br/> <a href="https://twitter.com/mariofusco/status/571072462043136000">26 Febbraio 2015</a></blockquote> | |
</section> | |
</section> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment