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 | Bitcoin
  • ❤️ 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)

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

  • 414