În Inspirație

JSCamp 2017 în rezumat

jscamp

Conferința JSCamp este dedicată pasionaților de JavaScript din România și din Europa de Est, care își doresc să afle cele mai noi informații despre limbajele de programare folosite pentru proiectele online. Haideţi să vedem în continuare principalele subiecte abordate în agenda ediţiei de anul acesta.

[Sesiunea 1]

 

Felix Palmer – ”Safari in Safari”: a fost o prezentare dinamică, lucru datorat exprienței captivante oferite de efectele 3D și animațiile din demo.

Întreaga prezentare s-a concentrat pe utilizarea three.js, o librărie 3D de Javascript care poate fi utilizată cu ușurință și în plus de asta are dimensiuni mici.

În prezent WebGL este suportat atât pe platformele mobile, cât și în browsere, iar în ceea ce privește partea de web combinația dintre Javascript și GLSL(OpenGL Shading Language) este foarte eficientă.

Three.js este o librărie de nivel înalt utilizată pentru a afișa conținut 3D. Clasa de bază din lumea 3D este Object3D și cel mai frecvent folosim un Mesh. Acesta la rândul său este alcătuit dintr-un obiect Geometry(o colecție de puncte care definesc o formă) și Material(definește cum trebuie desenată suprafața).

Prin intermediul prezentării am parcurs toți pașii necesari pentru a obține o busolă 3D așezată pe o suprafață cu textură din lemn. De asemenea obiectul suporta interacțiunea cu userul prin intermediul mouse-ului sau al tastaturii permițând zoom-in, zoom-out, dar și rotații.

camera-orbiting

>>Link prezentare

 

Constantin Dumitrescu – ”Minimal application development with JSONMVC”: o prezentare metaforă despre evoluția motoarelor și evoluția tehnologiei, dar și despre un framework Javascript numit JSONMVC.

JSONMVC ne permite să creăm aplicații web robuste, dar într-o abordare foarte simplă. Nu este necesar să învățăm o nouă sintaxă, iar în ceea ce privește abstractizarea ni se promite că nu există o altă variantă de framework care să ne ofere mai mult cu mult mai puțin.

Framework-ul JSONMVC este diferit prin faptul că nu mai este nevoie să folosim clase, instanțe, prototipuri, moștenire, context sau compoziții funcționale ci doar ne bazăm pe o abordare declarativă.

Pentru a obține o aplicație minimală recomandat ar fi să respectăm următoarele reguli:

  • Să deținem un codebase cât mai mic
  • Să optimizăm numărul de calcule necesare realizării unei anumite acțiuni
  • Să validăm datele în totalitate, dar folosind cod minim
  • Să avem trasabilitate maximă a datelor cu referire minimă la date

 

Michele Bertoli – ”Test like is 2017!”: o prezentare foarte utilă despre cum să testezi eficient, creativ și modern o interfața grafică.

test2017

Testarea interfețelor a fost întotdeauna o activitate presărată cu provocări: ocupă foarte mult timp, partea de configurare a tool-urilor este destul de complexă, obținem rezultate false negative.

Cu toate acestea testare este foarte importantă în a obține un produs software de calitate iar acest lucru presupune: captarea bug-urilor, dobândim o mai mare încredere în codul scris și în același timp testele pot reprezenta o modalitate de a documenta codul prin cod.

Dar chiar și în domeniul testării lucrurile evoluează, iar o soluție modernă care merită încercată este ”JEST” pentru React.

 

Avantajele principale sunt următoarele:

  • Nu avem nevoie de o configurație specială
  • Este rapid și sandboxed
  • Obținem feedback instant
  • Deține integrat un tool pentru generare de rapoarte de coverage
  • Este o librărie puternică pentru teste mockup
  • Funcționează și cu TypeScript
  • Include și captare de instantanee ale structurilor de tip tree din React sau alte altor valori serializabile
writetests

>>Link prezentare

 

[Sesiunea 2]

 

Pepijn Schoen – ”Continuous deployment for SPAs”: o prezentare despre Deploy JS, o librărie utilizată pentru a face deploy pentru aplicații scrise cu Angular sau React. Este compatibilă cu o mare parte dintre plugin-urile pentru Ember CLI Deploy.

service-code deploy

>>Link prezentare

 

 

Claudia Hernandez – ”Down the rabbit hole: Javascript in Wonderland”: o prezentare simpatică despre ce nu prea are sens în Javascript.

Pentru un limbaj creat în 10 zile, cu siguranță are o mulțime de ciudățenii și avantaje pe care nu toți dezvoltatorii de JS le cunosc.

Lumea Javascript este metaforic prezentată ca o gaură de iepure, făcând referire la povestea ”Alice în Țara Minunilor”.

Pe parcursul prezentării am aflat că NaN (Not a Number) este de fapt un număr, Undefined este de fapt un tip definit,  +! [] este egal cu 1, Array.sort() aduce cu sine multe surprize și vom fi surprinși să observăm că în anumite contexte nu funcționează așa cum ne-am aștepta, și multe alte exemple haioase, dar și interesante.

>>Link prezentare

 

[Sesiunea 3]

 

Michelle Bu – ”Typing and math in Javscript”: o prezentare despre Flow, un typecheker static folosit in Javascript.

Flow îmbunătățește productivitatea dezvoltatorilor și calitatea codului. În special presupune verficarea erorilor la compilation time ajutând astfel la întreținerea, navigarea, transformarea și optimizarea codurilor.

Acest tool a fost creat astfel încât dezvoltatorii să poată profita de avantajele sale fără a afecta codarea în Javascript. Flow aduce un timp minim de compilare, deoarece realizează toate verificările în background.

 

 

Alessandro Cinelli – ”The evolution of asynchronous Javascript”: o prezentare despre async în Javascript.

Am asistat la o reiterare a evoluției asynchron-ului în Javascript de la callbacks, promises și până la Observer și Generator, dar și avantajele și dezavantajele fiecărei abordări.

setout-test

>>Link prezentare

 

[Sesiunea 4]

 

Iheanyi Ekechukwu – ”gRPC and PROTOBUFS”: o prezentare despre cum putem folosi gRPC în lumea Javascript.

gRPC este un framework RPC realizat de Google folosit pentru a crea aplicații client/server în limbaje diferite. Prezentarea s-a concentrat pe cum funcționează Protocol Buffers, dar și gRPC și cum pot fi acestea utilizate pentru a ne construi propriile servicii.

Protocol Buffers. Denumite și protobuf, este un mecanism idependent de limbaj sau pltaformă pus la dispoziție de către Google pentru a serializa structuri de date. Protcol Buffers sunt mult mai mici, mai rapide și mai simple decât alte standarde precum XML sau JSON.

 

Alex Sexton – ”Bounty hunting: finding holes in modern JS apps”: o prezentare concentrată pe securitate.

Atunci când citim despre breșe de securitate, de cele mai multe ori ne gândim la componente de backend, însă și frontend-ul are foarte multe vulnerabilități și acestea pot să provină atât din Javascript, iar mai nou și din CSS. Vulnerabilitate cea mai răspăndită și mai dificil de identificat se numește XSS(Cross-site scripting).

Exemplele de atacuri la companii mari precum MySpace și Facebook, și modul în care care acestea au fost tratate demonstrează că în prezent identificarea vulnerabilităților este apreciată și răsplătită.

Albumul pozelor de la conferinţă >> aici.