Boas práticas de programação, no NodeJS
- Organizador do NodeSchool Campinas
- Desenvolvedor NodeJS na
- Desculpem por vicios de linguagem e afins
- ❤️ JavaScript | Docker | NoSQL
- ❤️ Comunidades | Descentralização da Internet
- ❤️ Democracia organizaçonal | DevOps
- ❤️ Cypherpunks | Bitcoin | Teclados Mecânicos




lb3.io/vagas-site
Livros Importantes



O universo da programação

Guia do Mestre Programador
Pensando como pirata, evoluindo como jedi





O programador apaixonado



Domain-Driven Design (DDD)
Clean Architecture


O que significa
boas praticas e qualidade

Para o desenvolvimento de softwares de qualidade é necessário dominar um conjunto de habilidades e conhecimentos que fazem com que o este processo se mantenha organizado e com crescimento constante, esse conjunto de técnicas quando utilizado de forma saudável pode ser descrito como boas práticas.
Pédia, Wiki.

Não medir qualidade
"Corte de custos" sem diminuir qualidade não existe



Nove mulheres não fazem um filho em 1 mês.
O contrário também não
!
12-factor app

é uma metodologia para construir softwares-como-serviço
Qualidade de Arquitetura

The hierarchic of your project folders should tell what it does, not what language or framework it belongs.
Bob, Uncle.
Evite o UDD
Util Driven Development

Use um Registry
Se seu código tiver regras de negócio, use um privado
- npm (pago)
- verdaccio (free, self-hosted)
- gitlab (pago)
- github (pago)
- azure artifacts (pago)

Analise a fundo suas dependencias
- Procure entender exatamente o que ela faz
- Sempre existem prós e contras
- Converse com quem usa, com os dev, com a comunidade
- Leia o código fonte
Injeção de dependência
e
Currying

Qualidade de Código

Linter

ESLint
+

Tipagem
typescript





Aprenda paradigmas, não os decore
- Programação Orientada a Objetos
- JS tem objetos baseados em protótipos, não em classes
- Aprenda a usar design patterns
- Programação Funcional
- Aprenda o basico do paradigma (e não para de avançar)
- Aprenda a abstrair baseado em funções
- Entenda estados locais e estados globais
Clean Code
(finalmente)
- Obrigação de todo o dev: ler clean code
- github.com/ryanmcdermott/clean-code-javascript
- não decore, crie o habito de revisitar o livro e repositórios
Qualidade de Testes


Sempre, sempre
Siga a piramide de testes
Eu to falando com você também, sr Serverless.
Testes de Unidade

O propósito é testar 1 unidade de código
(não é apenas uma função!!)
Arrange -> Act -> Assert
Manter a complexidade fora da sua cabeça
Outras boas práticas em testes
- Testes devem ser independentes
- Troque a ordem
- Devem rodar sozinhos
- Testes unitários devem ser instantaneos
- Feedback loop
- Rode a todo ciclo de desenvolvimento
- evite mocks, mas use quando necessário
Testes de Integração
- Teste entre as unidades
- Pegar casos com problemas mais genéricos
- Lembre-se da piramide, sempre




Outros milhões de tipos de testes
- Acceptance tests
- Performance tests
- Smoking tests
- System tests
- Interface tests
- etc (do nivel framework JS)


Boas Praticas
By Victor Perin
Boas Praticas
- 547