Vamos conversar sobre a

Por que?

1- Mudar para melhor cultura interna da inGaia.

2- A melhor forma de aprender é ensinando.

3- A melhor forma de criar uma comunidade que aprende é ensinando.

Mudança de Mindset

- Clean Code

- Spotify Engeneering Culture

- Agile (de verdade!)

- Computer Science, bitch!

- Qualidade verdadeira de software

Cultura de Aprendizagem

- Precisamos compartilhar o conhecimento

- Ensinar te faz realmente se aprofundar no assunto

- Estudar na, nossa área, é obrigatório

Links/Livros?

Dia 1 - Parte 1

O   im da               

O   im da               

- A internet não é mais descentralizada (80% do trafego é facebook + google)

- Neutralidade de rede

- Efeito "Eu uso porque todo mundo usa"

- Internet totalitária (Monopólios!)

- Fim do anonimato da rede

- A internet atual propencia a centralização

Solução:

- Descentralização (Peer-to-Peer)

- Solução de problemas > Lucro

- Open Source

 

Algumas ferramentas para a Internet 2.0:

SSB, DAT, Beacker, CJDNS, Etc...

Construindo PWAs

Utilizando VueJS

Web Imersiva:

Oportunidades e desafios

Coffee...

Mircoservices

using Node.JS and RabbitQM

Antes: Micro Services

Positivos

  • Persistencia Poliglota (ex: banco próprio)
  • Código desacoplado (escopo próprio)
  • Release Granular (+1 para DevOps)

Negativos

  • Efeito Shotgun (uma atualização pode afetar outros serviços)
  • Testes de integração ficam muito mais pesados
  • Mais difícil para novos desenvolvedores
  • Dependencia do serviço de usuário (auth) (efeito shotgun)

RabbitMQ

  • Principal uso: substituir a comunicação HTTP

  • Fila entre o servidor principal e um "worker"

Package Quest:

The journey of a package from the NPM registry to your computer

Almoço!

Problemas com tipos em JS:

1- NAN

2- undefined is not a function

3- cannot read/set any property of undefined

4- silent erros

 

Como resolver ?

1 - Com checagem de tipo estática(Flow/TypeScript). Analisa o código antes do código rodar com o type checking

E se tiver I/O ?

Usar any ? Não, any é totalmente unsafe. Uma solução é o uso de ELM que cobre todos os casos possiveis de resposta com o tipo RESULT.

Ou

Usar o tcomb que analisa tipo de codigo em runtime. Funciona junto com o flow e portanto você terá type-checking tanto em tempo de compilação e em tempo de execução de código

Immutability

const para tipos primitivos

Object.freeze() para objectos ou arrays(Apenas no primeiro nivel - shallow)

Immutable.JS - immutable collections(deep)

Dia 1 - Parte 2

Types and Imutability:

Why should you care

Projetando Interfaces Inteligentes:

Machine Learning como ferramenta de personalização

Ensinando JS

para aprender JS

Composing the Cloud

Coffee...

Web Assembly

The journey

Rocket.Chat:

Como um projeto Open Source se transformou em uma empresa de 60 milões de reais.

Continuous Production

Estoicismo e JavaScript

Dia 2 - Parte 1

Zen and the Art of Code Maintenance

Angular 4 + Firebase

Realtime não precisa ser complicado

Map Visualization, IoT e Big Data

Transformando informação em valor, latitude e longitude.

Coffee...

EcmaScript 7

e um pouco além...

How to be a Compiler

Almoço

Dia 2 - Parte 2

TypeScript

The fun parts

Progressive Web App

Já é possível?

3d Experiences +
The Web Plataform

A-Frame

101

Coffee...

Weird API's

Fazendo Drinks com JS

JS gives you SuperPowers

use them

Resumo - Brazil JS

By Victor Perin

Resumo - Brazil JS

  • 627