Estou aqui sugerindo iniciarmos uma discussão para a manutenção do projeto.
Como está crescendo, acredito que o ideal seja iniciarmos a introduzir padrões restritos de código para facilitar a vida de todo mundo.
Minha recomendação é adicionarmos:
Husky - Irá rodar um comando de "pre-comit" a cada comit. Atualmente está apenas dando run num eslint e num prettier. Além disso, o pre-commit também deverá rodar algo como um "tsc --noEmit" pra checagem de tipos. O ideal seria rodar também testes, porém não há nenhuma estrutura de testes ainda (posso adicionar se julgarmos necessário).
Prettier - Irá manter o código com padrões claros e organizados a cada commit.
Eslint - Já está no projeto, porém deveríamos rever as regras e listar quais seriam mais importantes/impactantes.
lint-staged - Pra facilitar a vida, o eslint/prettier irá rodar apenas em arquivos que mudaram. Note que o type check será global.
PS: em alguns projetos que trabalhei, rodávamos um build a cada push. Mas não sei se seria tão necessário aqui. Como o projeto era em Next.js e tinha algumas apis, era crucial que ele buildasse a cada push pra evitar estresse por algum acaso acabar quebrando em produção.
Apenas adicionei algumas regras padrões do Prettier e mantive as que já existiam de eslint e não adicionei nenhuma, a ideia aqui é ser uma discussão aberta além de minhas opiniões. Me atento apenas a necessidade de um linter/formater em geral, mas não entendo a fundo as necessidades do projeto.
Olá,
Estou aqui sugerindo iniciarmos uma discussão para a manutenção do projeto.
Como está crescendo, acredito que o ideal seja iniciarmos a introduzir padrões restritos de código para facilitar a vida de todo mundo.
Minha recomendação é adicionarmos:
PS: em alguns projetos que trabalhei, rodávamos um build a cada push. Mas não sei se seria tão necessário aqui. Como o projeto era em Next.js e tinha algumas apis, era crucial que ele buildasse a cada push pra evitar estresse por algum acaso acabar quebrando em produção.
Apenas adicionei algumas regras padrões do Prettier e mantive as que já existiam de eslint e não adicionei nenhuma, a ideia aqui é ser uma discussão aberta além de minhas opiniões. Me atento apenas a necessidade de um linter/formater em geral, mas não entendo a fundo as necessidades do projeto.
Abraços,