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?
- Spotify Engineering Culture (Parte 1 | Parte 2)
- The Agile Manifesto | Agile não é rapidinho
- Uncle Bob
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