Mudanças entre as edições de "Trilha Javascript"

De MSTECH wiki
Ir para: navegação, pesquisa
(Geral)
(Resumo)
 
(6 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 45: Linha 45:
  
 
Depois que conceituou sobre modularização e mostrou em um site real dividido em módulos, apresentou uma '''arquitetura modular sandbox''' onde todos os módulos são totalmente independentes utilizando o '''Mediator pattern''', no exemplo, conseguiu resolver um problema grave do javascript que é o gargalo de eventos que trava a página, como a solução é sandbox travava somente ela e os demais continuavam funcionando normalmente. ''(Uma das melhores palestras.)''
 
Depois que conceituou sobre modularização e mostrou em um site real dividido em módulos, apresentou uma '''arquitetura modular sandbox''' onde todos os módulos são totalmente independentes utilizando o '''Mediator pattern''', no exemplo, conseguiu resolver um problema grave do javascript que é o gargalo de eventos que trava a página, como a solução é sandbox travava somente ela e os demais continuavam funcionando normalmente. ''(Uma das melhores palestras.)''
 +
 +
Os benefícios de tentar aplicar os conceitos dessa palestra de modularização seguindo o mediator pattern é pensar na aplicação como vários módulos totalmente isolados e independentes, isso significa que pode ser reaproveitado em outras telas ou até mesmo em outros projetos. E num futuro, ter esforço menores em itens simples do desenvolvimento (paginação, filtros, listagem, etc).
  
  
Linha 62: Linha 64:
  
  
==== Aplicações off-line first com Ionic e PouchDB ====  
+
==== Firebase - Implementando um Single Page App com firebase ====  
...
+
O palestrante criou na prática um chat em 30 minutos e apresentou os benefícios de utilizar o firebase para apoiar no desenvolvimento. Firebase é uma plataforma para desenvolvimento de soluções baseadas em armazenamento e sincronização de dados em tempo real utilizando apenas código client-side, além de contar com vários recursos para facilitar o dia a dia como: analytics e autenticação.
  
 
+
No contexto da MStech seria interessante utilizá-la quando for necessário criar POCs rápidas com menos esforço, porém é necessário entender como a API do firebase funciona para realmente agilizar o desenvolvimento.
==== Firebase - Implementando um Single Page App com firebase ====
+
...
+
  
  
 
==== Desktop Apps com Electron ====  
 
==== Desktop Apps com Electron ====  
...
+
O palestrante apresentou na prática o quão fácil é criar aplicativos desktop com soluções front-end. O Electron cria apps desktop com builds cross platform utilizando somente html, js e css, ou seja, tecnologias front-end.
 +
 
 +
Significa que se pensarmos que um projeto precisa atender web e desktop, desde que construa as aplicações tendo essas premissas o esforço do app seria apenas para os requisitos específicos da plataforma. Em resumo, vejo que é uma tecnologia que precisa ser considerada e colocada no leque de desenvolvimento da empresa.
  
  
 
==== JS Parser Generators ====  
 
==== JS Parser Generators ====  
...
+
Primeiro apresentou como é construído um compilador de uma linguagem de programação, explicou sobre análise semântica e sintática, sobre a geração de tokens e suas interpretações.
  
  
 
==== Desenvolvimento mobile híbrido com Ionic 2 ====  
 
==== Desenvolvimento mobile híbrido com Ionic 2 ====  
...
+
 
 +
Foi uma palestra de apresentação de novidades, bem superficial. Em resumo, Loiane basicamente explicou com funciona o Ionic, depois as diferenças e novidades do Ionic 2 em relação a sua primeira versão.
  
  
 
==== Quebrando barreiras de velocidade do Javascript no V8 ====  
 
==== Quebrando barreiras de velocidade do Javascript no V8 ====  
...
+
 
 +
No início da palestra teve a seguinte pergunta '''"C++ ou Javascript executa mais rápido os primeiros 25 mil números primos?"'''. Obviamente uma linguagem compilada é mais rápido que a interpretada, com resultados aproximados de 1,98s em C++ e 6,78s em Javascript. Explicou que a V8 executa duas compilações, uma '''completa''' a outra '''otimizada''' utilizando técnicas de inline cache para deixar mais rápido.
 +
 
 +
Depois explicou sobre '''classes ocultas''' que são geradas na compilação, que podem ajudar ou prejudicar a execução dependendo de como o desenvolvedor codifica seu código. Deu as seguintes orientações:
 +
 
 +
* Construa objetos previsíveis
 +
* Não delete propriedades do seu objeto (força criar outra classe oculta)
 +
* Números até 31 bits
 +
* Arrays do tipo rápido

Edição atual tal como às 14h52min de 20 de julho de 2016

Conteúdo disponibilizado pelos palestrantes

Palestra Palestrante
Scalable Javascript Architechture (material não disponível) Guilherme de Souza
Novas estratégias de manipulação do DOM (material não disponível) Eduardo Matos
Faça programação funcional com JavaScript codando menos Palestrante: Rogério Chaves Fernandes Junior
Immutable data structures em Javascript (material não disponível) Palestrante: Breno Ferreira
Aplicações off-line first com Ionic e PouchDB Palestrante: Itacir Ferreira Pompeu
Firebase - Implementando um Single Page App com firebase Palestrante: Tiago Gouvêa
5 libs de teste JavaScript que você deveria conhecer Palestrante: Stefan Raphael de Araújo Teixeira
Integrando frameworks de teste em sua aplicação Javascript Palestrante: João Ronaldo Del-Ducca Cunha / Vinicius Fernandes Dias
Ferramentas de Code Analysis e Code Fixed para JavaScript Palestrante: Charles Mendes de Macedo / Erick Wendel Gomes da Silva
Desktop Apps com Electron Palestrante: Emerson Thompson
JS Parser Generators (material não disponível) Palestrante: Marcelo Camargo
Desenvolvimento mobile híbrido com Ionic 2 Palestrante: Loiane Groner
Quebrando barreiras de velocidade do Javascript no V8 (material não disponível) Palestrante: William Grasel Martins


Resumo

Geral

Falaram bastante sobre imutabilidade de dados, paradigma funcional, performance no js, na manipulação de elementos DOM e escalabilidade.

Scalable Javascript Architechture

Depois que conceituou sobre modularização e mostrou em um site real dividido em módulos, apresentou uma arquitetura modular sandbox onde todos os módulos são totalmente independentes utilizando o Mediator pattern, no exemplo, conseguiu resolver um problema grave do javascript que é o gargalo de eventos que trava a página, como a solução é sandbox travava somente ela e os demais continuavam funcionando normalmente. (Uma das melhores palestras.)

Os benefícios de tentar aplicar os conceitos dessa palestra de modularização seguindo o mediator pattern é pensar na aplicação como vários módulos totalmente isolados e independentes, isso significa que pode ser reaproveitado em outras telas ou até mesmo em outros projetos. E num futuro, ter esforço menores em itens simples do desenvolvimento (paginação, filtros, listagem, etc).


Novas estratégias de manipulação do DOM

Apresentou de técnicas básicas a avançadas para manipular DOM e como funciona este processamento por parte do interpretador. Depois mostrou que o React trabalha com o conceito de virtual DOM que significa alterar somente os nós que sofreram influência e não toda a árvore de nós como é feito no Angular e outros frameworks. Porém, no benchmark de custo de renderização o angular não deixou a desejar em relação a outros frameworks.


Faça programação funcional com JavaScript codando menos

Explicou o que é programação funcional e imutabilidade de dados, depois recomendou não utilizar void, this, for, if sem else e não utilizar class que no final é uma função de qualquer forma e sempre tentar manter as funções como puras (passando os mesmos parâmetros tem o mesmo resultado) sem side effects (ex.: uma requisição).


Immutable data structures em Javascript

...


Firebase - Implementando um Single Page App com firebase

O palestrante criou na prática um chat em 30 minutos e apresentou os benefícios de utilizar o firebase para apoiar no desenvolvimento. Firebase é uma plataforma para desenvolvimento de soluções baseadas em armazenamento e sincronização de dados em tempo real utilizando apenas código client-side, além de contar com vários recursos para facilitar o dia a dia como: analytics e autenticação.

No contexto da MStech seria interessante utilizá-la quando for necessário criar POCs rápidas com menos esforço, porém é necessário entender como a API do firebase funciona para realmente agilizar o desenvolvimento.


Desktop Apps com Electron

O palestrante apresentou na prática o quão fácil é criar aplicativos desktop com soluções front-end. O Electron cria apps desktop com builds cross platform utilizando somente html, js e css, ou seja, tecnologias front-end.

Significa que se pensarmos que um projeto precisa atender web e desktop, desde que construa as aplicações tendo essas premissas o esforço do app seria apenas para os requisitos específicos da plataforma. Em resumo, vejo que é uma tecnologia que precisa ser considerada e colocada no leque de desenvolvimento da empresa.


JS Parser Generators

Primeiro apresentou como é construído um compilador de uma linguagem de programação, explicou sobre análise semântica e sintática, sobre a geração de tokens e suas interpretações.


Desenvolvimento mobile híbrido com Ionic 2

Foi uma palestra de apresentação de novidades, bem superficial. Em resumo, Loiane basicamente explicou com funciona o Ionic, depois as diferenças e novidades do Ionic 2 em relação a sua primeira versão.


Quebrando barreiras de velocidade do Javascript no V8

No início da palestra teve a seguinte pergunta "C++ ou Javascript executa mais rápido os primeiros 25 mil números primos?". Obviamente uma linguagem compilada é mais rápido que a interpretada, com resultados aproximados de 1,98s em C++ e 6,78s em Javascript. Explicou que a V8 executa duas compilações, uma completa a outra otimizada utilizando técnicas de inline cache para deixar mais rápido.

Depois explicou sobre classes ocultas que são geradas na compilação, que podem ajudar ou prejudicar a execução dependendo de como o desenvolvedor codifica seu código. Deu as seguintes orientações:

  • Construa objetos previsíveis
  • Não delete propriedades do seu objeto (força criar outra classe oculta)
  • Números até 31 bits
  • Arrays do tipo rápido