Mais de 40 perguntas e respostas frequentes sobre Ruby on Rails [2023]

Ruby on Rails é provavelmente o framework Ruby mais famoso. Sua simplicidade de uso, arquitetura MVC, comunidade e escalabilidade são as razões de sua popularidade.

Alguns dos grandes nomes que usam Ruby on Rails são GitHub, Dribble, Shopify, Airbnb, Etsy, Kickstarter, Twitch e Zendesk, para citar alguns.

Se você é um engenheiro Ruby on Rails intermediário ou qualificado, entender a natureza das perguntas que você provavelmente encontrará em sua próxima entrevista é uma jogada inteligente.

As entrevistas podem ser assustadoras se você não estiver preparado. No entanto, se você estiver bem preparado, sua confiança aumentará e você poderá ter sorte em conseguir um novo cargo na empresa dos seus sonhos.

Estas são algumas perguntas comuns de entrevistas sobre Ruby on Rails e suas respostas.

últimas postagens

O que é Ruby on Rails?

Ruby é uma linguagem de programação orientada a objetos com uma sintaxe simples.

Ruby on Rails é uma estrutura Ruby que os desenvolvedores usam para criar aplicativos da web.

Discutir as vantagens do Ruby on Rails

  • Menos código que outras linguagens: Você pode conseguir muito com apenas algumas linhas de código com Rails.
  • Extensa biblioteca e gems: Existem toneladas de bibliotecas e gems para melhorar a funcionalidade de um aplicativo Ruby on Rails.
  • Fácil de aprender: o código do Ruby on Rails se parece com o inglês simples.
  • Uma grande comunidade.

Discuta os limites do Ruby on Rails

  • Quando comparado com Django e Node.js, a velocidade de execução e o desempenho do Rails são baixos.
  • Documentação limitada para algumas de suas joias.
  • Ruby on Rails é opinativo, o que limita a flexibilidade do desenvolvedor.
  O que significa “NSFW” e como usá-lo?

O que é um controlador Rails?

É o centro lógico de um aplicativo Ruby on Rails. O controlador Rails gerencia, coordena e monitora todas as interações entre usuários, modelos e visualizações.

O que é Active Record do Rails?

Active Record é uma técnica de mapeamento de relação de objeto (ORM). Essa camada de código Ruby é executada entre a lógica do código e seu banco de dados. Depois de escrever o código Ruby, você executa ‘migrations’ para fazer alterações em seu banco de dados.

O que é MVC e como funciona?

O padrão de arquitetura model-view-controller (MVC) separa a lógica de negócios da lógica de entrada e apresentação.

  • Modelo: lida com toda a lógica de dados em um aplicativo Rails.
  • Visualizar: é a parte do aplicativo que os usuários visualizam.
  • Controlador: é como uma ponte ou corretor que permite que o modelo e a visualização se comuniquem.

O que é um controlador de ação em Ruby on Rails?

O Action Controller é o C no padrão MVC. O controlador de ação recebe solicitações recebidas, dá sentido à solicitação e produz a saída apropriada.

O que é rake no Rails?

Rake é um executor de tarefas para aplicativos Ruby on Rails e Ruby. O Rails tem tarefas Rake predefinidas para realizar testes, executar migrações e criar bancos de dados.

O que é rendimento em Ruby on Rails?

Yield é uma palavra-chave usada dentro de métodos para chamar um bloco. Não há limitação para o número de argumentos que Yield pode passar para o bloco. Blocos, neste caso, são métodos sem nomes que podem ser usados ​​como argumentos extras para outros métodos.

O que é Garbage Collection Ruby on Rails?

A coleta de lixo é o processo de controle da memória usada pelos programas de computador. O Ruby on Rails rastreia quais objetos estão sendo usados ​​pelo programa em vez do programador. Os desenvolvedores podem, portanto, se concentrar na lógica e na convenção, em vez de se preocupar com a alocação de memória.

Qual é o papel da coleta de lixo no aplicativo Rails?

Ele libera memória em sua máquina para outros processos serem executados. A coleta de lixo consegue isso removendo objetos inacessíveis que um programa deixa após a execução.

O que é um pipeline de ativos?

Um Asset Pipeline em Ruby on Rails fornece uma estrutura que reduz e concatena ativos CSS e JavaScript. Este framework permite que todos os ativos em seu aplicativo Rails sejam combinados automaticamente com ativos de outras gems.

Diferencie andaimes dinâmicos e estáticos

Scaffolding é o processo de geração das principais partes do aplicativo Rails.

O andaime estático insere explicitamente um comando que produz os dados necessários nos respectivos campos. Para concluir o andaime estático, você deve executar as migrações.

O andaime dinâmico gera conteúdos e interfaces de usuário durante o tempo de execução. Este processo pode ser usado para criar, modificar e excluir ações em um aplicativo Rails.

O que é uma biblioteca de classes?

Uma biblioteca de classes compreende domínios em Ruby on Rails, e programação de threads e tipos de dados são exemplos de tais domínios. Uma biblioteca de classes permite que um desenvolvedor crie abstração de código e, assim, use a mesma lógica em diferentes elementos em um aplicativo.

Descrever associação polimórfica em Rails

Associação Polimórfica é um tipo de Associação de Registro Ativo. Polimorfismo significa que um objeto pode ter muitas formas. No contexto do Rails, a Polymorphic Association permite que você defina um único modelo que pode ser associado ou pertencer a outros modelos sem escrever um código repetido.

  Quais componentes antigos você pode reutilizar ao construir um novo PC?

O que é Interpolação de String em Ruby?

String Interpolation está adicionando espaços reservados referenciando outros valores em um objeto de string. O uso do operador de adição é a maneira mais simples de interpolar valores.

Considere este exemplo:

name = "Titus"

puts "Hello " + name

A saída será;

Olá Tito

O que é o Object Relationship Model (ORM)?

Um ORM é uma ponte entre bancos de dados e programas orientados a objetos. Um relacionamento de objeto, no Rails, indica quando as classes estão sendo mapeadas para uma tabela dentro do seu banco de dados.

Explique a migração do Rails

As migrações ajudam os desenvolvedores a fazer alterações em um esquema de banco de dados de maneira conveniente. Os desenvolvedores podem, assim, gerenciar rollout e rollback no esquema do banco de dados em um ambiente controlado. Essa abordagem evita que você gerencie scripts SQL individuais para definir suas alterações.

Explique a convenção de nomenclatura no Rails

  • Classe e módulo: use MixedCase, mas não tem sublinhado. Os nomes nas classes e módulos começam com uma letra maiúscula.
  • Tabela de banco de dados: o nome de uma tabela de banco de dados deve estar no plural e em maiúsculas e minúsculas.
  • Variáveis: letras que declaram variáveis ​​devem estar em minúsculas e snake_case com um sublinhado separando-as.
  • Modelo: use MixedCase para especificar um modelo e garantir que o nome esteja no singular.
  • Controladores: os nomes dos controladores são pluralizados.

Qual é a diferença entre string e texto no Rails?

:string é adequado quando você deseja armazenar um texto curto com até 255 caracteres. Você pode usá-lo com nomes, nomes de usuários, e-mails, senhas e títulos.

:text se encaixa em descrições longas. Exemplos perfeitos de comentários em uma postagem de blog ou na descrição de uma loja.

class CreatePosts < ActiveRecord::Migration

   def self.up

      create_table:posts do |t|

         t.string:description

         t.text :content 

      end

   end

Explicar a falsificação de solicitação entre sites (CSRF)

Cross-Site Request Forgery (CSRF) é um ataque online em que o invasor captura usuários autenticados para executar determinadas ações em seu nome.

Rails exige que os desenvolvedores adicionem “protect_from_forgery” ao ApplicationController para evitar ataques CSRF. O aplicativo sempre exigirá um token CSRF para autenticar um usuário.

Explique o que é mixin no Rails

Um mixin oferece uma maneira controlada de adicionar funcionalidades a uma classe. Muitos mixins diferentes compõem uma classe. Mixins erradicam a necessidade de ter múltiplas heranças.

Qual é o uso de load e require em Ruby?

require( ) é usado para importar bibliotecas/gemas

load() é usado para executar um bloco de código

Qual é a diferença entre callbacks e observadores em Ruby on Rails

Os observadores do Rails são usados ​​quando um método não está diretamente relacionado ao ciclo de vida de um objeto. Seus ciclos de vida são grandes e podem ser anexados ou desanexados a qualquer momento.

Callbacks só podem ser chamados em instâncias específicas no ciclo de vida de um objeto. Exemplos de tais instâncias são atualizações, criação e validação. Os retornos de chamada ficam ativos apenas por curtos períodos.

  Como tornar quase qualquer aparelho idiota inteligente

O que são arneses e acessórios em Ruby?

Fixtures referem-se a uma maneira de organizar os dados que você deseja testar. Eles podem ser criados em arquivos que terminam com uma extensão .yml.

Harnesses é o ambiente ou executor de testes para executar testes Rails. As luminárias são configuradas em Chicotes.

Qual é a diferença entre estender e incluir?

“Incluir” adiciona um método de instância a uma classe. O código será, portanto, acessível por meio de métodos de classe.

“Estender” adiciona métodos de instância definidos no módulo à classe estendida.

Gemas e plugins são iguais em Ruby?

Gems são aplicativos Ruby empacotados que precisam ser instalados. Eles são de uso geral e não dependem do Rails para funcionalidade.

Plugins em Ruby on Rails são implantados junto com seu aplicativo Rails. Eles modificam ou adicionam à funcionalidade principal do Rails.

O que são observadores ferroviários?

O observador do Rails oferece um mecanismo onde um objeto informa os outros quando seu estado muda. É aplicável em um relacionamento um-para-muitos de forma que quando um objeto muda, todos os objetos dependentes são informados e alterados automaticamente.

Qual comando é usado para criar uma migração?

bin/rails db:migrate

Mostrar como definir variáveis ​​de classe, instância e globais em Ruby

  • Variáveis ​​de classe: podem ser usadas em qualquer lugar dentro de sua classe. Os descendentes da classe também podem acessá-los. Eles começam com @@.
  • Variáveis ​​de instância: Utilizadas no escopo local específico das instâncias do objeto criado. Eles podem variar de um objeto para outro. Eles começam com @.
  • Variáveis ​​globais: Acessíveis em qualquer lugar dentro do programa. Começa com $.

Qual função o rakefile disponível no diretório de demonstração em Ruby desempenha?

Rakefile ajuda com o teste e empacotamento do código Rails. O arquivo define as tarefas que realizam testes ou demonstram as funcionalidades do aplicativo.

O que é um sweeper no Rails?

Os varredores agem como terminadores no armazenamento em cache. Eles atuam como meio-filtros e meio-observadores e implementam retornos de chamada para as duas funções. O ‘expire_cache’ encontra todos os fragmentos de cache que precisam ser expirados e os limpa,

O que são filtros?

Estes são métodos “antes” ou “depois” de uma ação do controlador ser executada. Esses métodos são herdados e serão executados com cada solicitação que seu aplicativo receber, desde que você os tenha definido no ApplicationController.

Diferenciar entre redirecionar e renderizar no Rails

Render: usado para renderizar um modelo e enviá-lo ao cliente em resposta à solicitação. Esse modelo gera a página que o navegador exibirá.

Redirecionar: envia uma nova solicitação HTTP para uma URL diferente. Esta ação redireciona o cliente para um controlador ou ação diferente. Esse método é útil quando você deseja alterar a URL que os clientes veem no navegador.

Diferencie entre chamar super () e super chamada

  • Super: envia uma mensagem ao pai do objeto atual para invocar todos os argumentos do método invocado.
  • super(): não envia nenhum argumento para o pai.

Qual é a diferença entre Procs e Blocks?

  • Blocos: Um pedaço de código cercado por instruções do/end ou chaves. Eles são criados e executados toda vez que o método é chamado.
  • Procs: Blocos de código vinculados a um conjunto de variáveis ​​locais. Este código pode ser chamado em diferentes contextos e ainda acessa as variáveis.

Qual é a diferença entre instruções puts e print?

Usamos puts quando queremos imprimir algo na tela. Por exemplo,

puts “Hello World!!!”

Estampas Olá Mundo!!! na tela

Usamos print quando não queremos adicionar uma nova linha no console.

print “Hello World!!!” 

Saídas Hello World!!!, mas uma nova linha não será adicionada ao console.

O que são localizadores dinâmicos?

Os localizadores dinâmicos permitem que os desenvolvedores pesquisem registros em seu banco de dados sem usar consultas SQL brutas. Eles usam a palavra-chave find_by_, que é seguida do atributo a ser pesquisado.

Explique como o Rail implementa o ajax

  • Um acionador, como enviar um formulário ou clicar em um botão, é iniciado.
  • O método JavaScript envia os dados do gatilho para um manipulador no servidor.
  • O manipulador no lado do servidor trabalha nos dados e envia HTML para o cliente da web.
  • O manipulador JavaScript no lado do cliente recebe o conteúdo HTML e atualiza a página atual.

Explicar Dig, Float e Max

  • Com o método Dig, você pode extrair valores de hashes ou arrays aninhados.
  • Float é um tipo de dados Ruby que representa números reais com precisão de ponto flutuante.
  • Max é um método que pode ser usado com arrays e hashes. Ele retorna o valor máximo em uma coleção de itens/valores.
array = [2, 9, 4, 7, 3]

maximum = array.max

O console produzirá 9, pois é o maior número.

Conclusão

Acima estão algumas perguntas que você provavelmente encontrará em seu próximo Ruby on Rails. Se você é um engenheiro de software completo, verifique estas perguntas da entrevista do Node.js. Certifique-se de entender a descrição do trabalho de um engenheiro Rails antes de comparecer à sua próxima entrevista.