Mudanças entre as edições de "Trilha Javascript"
(→Resumo) |
(→Quebrando barreiras de velocidade do Javascript no V8) |
||
Linha 85: | Linha 85: | ||
==== 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. | + | 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: | 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: |
Edição das 12h25min de 14 de julho de 2016
Índice
- 1 Conteúdo disponibilizado pelos palestrantes
- 2 Resumo
- 2.1 Geral
- 2.2 Scalable Javascript Architechture
- 2.3 Novas estratégias de manipulação do DOM
- 2.4 Faça programação funcional com JavaScript codando menos
- 2.5 Immutable data structures em Javascript
- 2.6 Aplicações off-line first com Ionic e PouchDB
- 2.7 Firebase - Implementando um Single Page App com firebase
- 2.8 Desktop Apps com Electron
- 2.9 JS Parser Generators
- 2.10 Desenvolvimento mobile híbrido com Ionic 2
- 2.11 Quebrando barreiras de velocidade do Javascript no V8
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.)
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
...
Aplicações off-line first com Ionic e PouchDB
...
Firebase - Implementando um Single Page App com firebase
...
Desktop Apps com Electron
...
JS Parser Generators
...
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