Esta diretriz tem o objetivo de orientar os desenvolvedores a seguir as práticas recomendadas ao desenvolver com Ruby on Rails, PostgreSQL, Hotwire e Tailwind CSS. Ela abrange as seguintes áreas:
- Estilo e estrutura do código: a ênfase é colocada em escrever um código Ruby limpo e idiomático que siga as convenções do Rails, use padrões de programação apropriados, evite a duplicação de código, empregue nomenclatura descritiva e organize a estrutura de arquivos de acordo com as convenções do Rails.
- Convenção de nomenclatura: especifica como os arquivos, métodos, variáveis, classes e módulos devem ser nomeados, seguindo a convenção de nomenclatura do Rails.
- Uso do Ruby e do Rails: incentive o uso dos novos recursos do Ruby 3.x para aproveitar ao máximo os métodos auxiliares incorporados do Rails e a funcionalidade do 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: orientação sobre como usar exceções corretamente, implementar o registro de erros, usar a validação do ActiveModel e tratar os erros de forma elegante no controlador.
- IU e estilo: recomendamos o uso do Hotwire para interações dinâmicas, do Tailwind CSS para design responsivo e dos auxiliares de exibição e exibições parciais do Rails para manter seu código organizado.
- Otimização do desempenho: recomenda-se usar os índices do banco de dados com sabedoria, implementar estratégias de cache, evitar o problema de consulta N+1 e otimizar as consultas ao banco de dados.
- Principais convenções: a ênfase é colocada em seguir as convenções de roteamento RESTful, usar alertas para compartilhar comportamentos, implementar objetos de serviço para lidar com a lógica comercial complexa e usar tarefas em segundo plano para lidar com operações demoradas.
- Testes: é recomendável escrever testes abrangentes, seguir as práticas de TDD/BDD e usar o padrão de fábrica para gerar dados de teste.
- Segurança: orientação sobre como implementar autenticação e autorização adequadas, usar parâmetros fortes e proteger-se contra vulnerabilidades comuns de segurança na Web.
Essa diretriz cobre de forma abrangente todos os aspectos do desenvolvimento do Ruby on Rails e foi projetada para ajudar os desenvolvedores a escrever códigos de alta qualidade, seguros e eficientes.
Rubi
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.