Talk rápida que rolou na 1ª meetup de elixir em Curitiba - PR dia 23/08/2017.
O objetivo é dar bons motivos para a galera de CWB a contribuir com a comunidade dessa linguagem maravilhosa, cheia de encantos mil, linguagem maravilhosa, coração do meu Brasil.
Links:
Triplex - https://github.com/ateliware/triplex
Forum de elixir (bom lugar para começar contribuindo) - https://elixirforum.com
3. Background
● Rubero com orgulho!
● Apaixonado por open source
● Profissionalmente
○ O que já fiz?
■ Manutenção de app legado
■ Apps pequenas do zero (sob medida)
■ Apps grandes do zero (produtos)
○ O que eu estou fazendo?
■ App preparada pra crescer do zero
4. Why open sourcing?
● Porque sim! Porque é o certo a se fazer
● É a única maneira de uma comunidade crescer
● Você pode ser reconhecido pelo seu trabalho (internet points!)
● E por quê VOCÊ deveria contribuir para o Elixir?
○ Feito por um brasileiro
○ A comunidade está no começo e precisa de ajuda
○ Menos gente = mais fácil de ser reconhecido pelo seu trabalho (mais internet points!)
5. Primeiros passos 🐣
● 80%
○ Abrir tópico em foruns
○ Participar de discussões
○ Revisar PRs
○ Melhorar a documentação
○ Corrigir pequenas issues
○ Espalhar a palavra do Elixir pelo mundo
○ Vir na meetup de Elixir 💜
● 20%
○ Corrigir bugs cabreiros
○ Melhorias ou features novas
○ Criar um projeto novo
6. Singing in the rain ☔
● Umbrella projects = componentização sem complicação
● Quantas apps você quiser! Quanto menor melhor!
● Código desacoplado!
○ Classificação de domínios diferentes
○ Organização das dependências entre eles
○ Todas as vantagens de usar múltiplas apps OTP
○ Micro-services! But gradually!
● Meio caminho andado para abrir o código
7. Triplex 👮
● Não é no Guarujá
● Multi-tenancy através de schemas no postgres
● Baseado na gem apartment
● Como aconteceu?
○ Procurei uma lib pronta e não achei
○ Fiz o código dentro do mesmo projeto (monolith first FTW)
○ Extraí para uma app dentro da mesma umbrella (refactor FTPW)
○ Precisei do mesmo em outro projeto: executei a task `mix hex.publish` no triplex e pronto!
○ Depois:
■ Extraí o projeto para um repo só dele no github (open source FTGW)
■ Fiz muitas melhorias que necessitei para projeto novo
■ 1.0.0! 🎉🎉🎉🎉🎉🎉
10. Curitiba | São Paulo | San Francisco, US
ateliware.com.br
+55 (41) 3010-2275
Notes de l'éditeur
Depois:
Todo mundo já pelo menos brincou com elixir? Já sabem sintaxe e etc?
Não vai precisar, nem vai ter código, mas só pra saber
Rubero com orgulho!
Mais alguém rubero? Ou ex?
Profissionalmente
Apps de 2 semanas, 1 mês e até 2 anos em um produto (Pipefy)
Depois
Vamos entrar no assunto mesmo
Comunidade está no começo
No começo mas ativa! Já perceberam a quantidade de issues no github? Mostrar
Depois
Convencidos?
Alguém acha que não vale a pena?
Alguém já contribuiu? O que achou?
Então vamos ver como contribuir
Antes
Pessoas confundem o que é contribuir no open source
Abrir tópico em forum
Mostrar o forum
Corrigir pequenas issues
Alguém que achava que não contribuiu já fez alguma dessas coisas? Então já contribuiu!
Espalhar a palavra
Esse é um dos que mais faz a diferença
Vir na meetup do elixir
É brincadeira mas é sério, contribuir localmente é também importante
Criar um novo projeto
IMPORTANTE: criar um projeto novo DEVE ser exceção, não caiam na maluquice do NPM...
Antes
Alguém conhece CBRA?
Umbrella
Alguém não conhecia umbrella projects?
Micro-services
Cuidado com o 8 ou 80: ainda acredito em monoliths, só que apenas para um pré-MVP
Meio caminho
Abrir o código ou até mesmo criar um produto diferente que vendo só uma parte do seu sistema!
Multi tenancy
Multi-tenancy contrasta com multi-instance
Apartment
Alguém conhece a gem apartment?
Extraí
Refactor = componentizando
Melhorias
Melhorias que ganhei praticamente de graça no projeto de onde extraí a lib
Não queremos tirar você de onde você está, se você estiver feliz
Vocês viram um pouco do que acontece por aqui
Pra trabalhar com Elixir