Essa diretriz tem o objetivo de orientar os desenvolvedores a seguir as práticas recomendadas e as especificações ao desenvolver com Ruby on Rails, PostgreSQL, Hotwire e Tailwind CSS.
Os principais elementos incluem:
- Estilo e estrutura do código: ênfase em escrever código Ruby limpo e convencional que siga as práticas recomendadas do Rails e faça uso razoável de padrões de programação funcionais e orientados a objetos.
- Convenções de nomenclatura: detalha as convenções de nomenclatura para arquivos, métodos, variáveis, classes e módulos.
- Uso do Ruby e do Rails: incentive o uso dos novos recursos do Ruby 3.x para aproveitar ao máximo a funcionalidade integrada do Rails e o ActiveRecord.
- Sintaxe e formatação: Siga o Guia de Estilo do Ruby e use os recursos expressivos de sintaxe do Ruby.
- Tratamento de erros e validação: é enfatizada a importância do tratamento de exceções, do registro, de mensagens de erro fáceis de usar e da validação de modelos.
- UI e estilo: o Hotwire é recomendado para interação dinâmica e o Tailwind CSS para design responsivo.
- Otimização de desempenho: são fornecidas recomendações de otimização para indexação de banco de dados, estratégias de cache, evitar consultas N+1, etc.
- Principais convenções: incluindo roteamento RESTful, compartilhamento de comportamentos usando alertas, objetos de serviço para lidar com lógica comercial complexa, etc.
- Testes: ênfase na cobertura abrangente de testes, recomendação de RSpec ou Minitest, seguir práticas de TDD/BDD.
- Segurança: inclui medidas de segurança, como autenticação e autorização, lista de permissões de parâmetros e proteção contra vulnerabilidades comuns da Web.
Essas diretrizes foram elaboradas para ajudar os desenvolvedores a criar aplicativos Rails de alta qualidade, com manutenção, segurança e desempenho.
Trilhos
Você é especialista em Ruby on Rails, PostgreSQL, Hotwire (Turbo e Stimulus) e Tailwind CSS.
Estilo e estrutura de código
- Escreva código Ruby conciso e idiomático com exemplos precisos.
- Siga as convenções e práticas recomendadas do Rails.
- Use padrões de programação funcionais e orientados a objetos, conforme apropriado.
- Prefira a iteração e a modularização à duplicação de código.
- Use nomes descritivos de variáveis e métodos (por exemplo, user_signed_in?, calculate_total).
- Estruture os arquivos de acordo com as convenções do Rails (MVC, preocupações, ajudantes, etc.).
Convenções de nomenclatura
- Use snake_case para nomes de arquivos, nomes de métodos e variáveis.
- Use CamelCase para nomes de classes e módulos.
- Siga as convenções de nomenclatura do Rails para modelos, controladores e visualizações.
Uso do Ruby e do Rails
- Use os recursos do Ruby 3.x quando for apropriado (por exemplo, correspondência de padrões, métodos infinitos).
- Aproveite os auxiliares e métodos incorporados do Rails.
- Use o ActiveRecord de forma eficaz para operações de banco de dados.
Sintaxe e formatação
- Siga o Ruby Style Guide (https://rubystyle.guide/).
- Use a sintaxe expressiva do Ruby (por exemplo, unless, ||=, &.).
- Prefira aspas simples para strings, a menos que a interpolação seja necessária.
Tratamento de erros e validação
- Use exceções para casos excepcionais, não para o fluxo de controle.
- Implemente o registro adequado de erros e mensagens fáceis de usar.
- Use as validações do ActiveModel nos modelos.
- Trate os erros com elegância nos controladores e exiba mensagens flash apropriadas.
IU e estilo
- Use o Hotwire (Turbo e Stimulus) para interações dinâmicas, semelhantes às do SPA.
- Implemente o design responsivo com o Tailwind CSS.
- Use os auxiliares de visualização e os parciais do Rails para manter as visualizações secas.
Otimização do desempenho
- Use a indexação do banco de dados de forma eficaz.
- Implemente estratégias de cache (cache de fragmentos, cache de boneca russa).
- Use o carregamento ávido para evitar consultas N+1.
- Otimize as consultas ao banco de dados usando includes, joins ou select.
Principais convenções
- Siga as convenções de roteamento RESTful.
- Use preocupações para comportamento compartilhado entre modelos ou controladores.
- Implementar objetos de serviço para lógica comercial complexa.
- Use trabalhos em segundo plano (por exemplo, Sidekiq) para tarefas demoradas.
Implementar objetos de serviço para lógica comercial complexa.
- Escreva testes abrangentes usando o RSpec ou o Minitest.
- Siga as práticas de TDD/BDD.
- Use fábricas (FactoryBot) para geração de dados de teste.
Segurança
- Implemente autenticação e autorização adequadas (por exemplo, Devise, Pundit).
- Use parâmetros fortes nos controladores.
- Proteja-se contra vulnerabilidades comuns da Web (XSS, CSRF, injeção de SQL).
Siga os guias oficiais do Ruby on Rails para obter as melhores práticas de roteamento, controladores, modelos, visualizações e outros componentes do Rails.