Las 53 preguntas y respuestas principales de la entrevista de Ruby on Rails (2024)

Aquí hay preguntas y respuestas de la entrevista de Ruby on Rails para principiantes y candidatos a desarrolladores de Ruby experimentados para obtener el trabajo de sus sueños.

1) Explique ¿Qué es Ruby on Rails?

  • Rubí: Es un lenguaje de programación orientado a objetos inspirado en PERL, Smalltalk, Eiffel, Ada, Basic y Lisp.
  • Rieles: Es un marco utilizado para la construcción de aplicaciones web.

2) Explique qué son las bibliotecas de clases en Ruby.

Las bibliotecas de clases en Ruby consisten en una variedad de dominios, como tipos de datos, programación de subprocesos, varios dominios, etc.

Descarga gratuita de PDF: Preguntas y respuestas de la entrevista de Ruby on Rails


3) Mencione cuál es la convención de nomenclatura en Rails.

  • Variables: Para declarar Variables, todas las letras están en minúsculas y las palabras están separadas por guiones bajos
  • Clase y Módulo: Los Módulos y las Clases usan MixedCase y no tienen guión bajo; cada palabra comienza con una letra mayúscula
  • Tabla de base de datos: El nombre de la tabla de la base de datos debe tener letras minúsculas y guiones bajos entre las palabras, y todos los nombres de las tablas deben estar en plural, por ejemplo, artículos_factura.
  • Modelo: Está representado por MixedCase ininterrumpido y siempre tiene singular con el nombre de la tabla
  • Controlador: Los nombres de las clases de controlador se representan en plural, de modo que OrdersController sería el controlador de la tabla de pedidos.

4) Explique qué es "Rendimiento" en Ruby on Rails.

Un método de Ruby que recibe un bloque de código lo invoca llamándolo con el "Rendimiento".


5) Explique qué es ORM (Object-Relationship-Model) en Rails.

ORM o Modelo de relación de objetos en Rails indica que sus clases se asignan a la tabla en la base de datos y los objetos se asignan directamente a las filas de la tabla.


6) Mencione cuál es la diferencia entre falso y nulo en Ruby.

En Ruby, false es un objeto de FalseClass para representar un valor booleano, mientras que Nil es un objeto de NilClass que indica la ausencia de un valor. Tiene un object_id 4.

Preguntas de la entrevista de Ruby on Rails
Preguntas de la entrevista de Ruby on Rails


7) Mencione ¿Cuáles son los aspectos positivos de Rails?

Rails proporciona muchas características como

  • Metaprogramación: Rails utiliza la generación de código, pero para el trabajo pesado se basa en la metaprogramación. Ruby es considerado como uno de los mejores lenguajes para metaprogramación.
  • Registro activo: Guarda el objeto en la base de datos a través de Active Record Framework. La versión de Rails de Active Record identifica la columna en un esquema y los vincula automáticamente a los objetos de su dominio mediante la metaprogramación.
  • Andamio: Los rieles tienen la capacidad de crear andamios o código temporal automáticamente
  • Convención sobre configuración: A diferencia de otros marcos de desarrollo, Rails no requiere mucha configuración, si sigue cuidadosamente la convención de nomenclatura
  • Tres ambientes: Rails viene con tres entornos predeterminados de prueba, desarrollo y producción.
  • Pruebas integradas: Admite código llamado arnés y accesorios que hacen que los casos de prueba se escriban y ejecuten.

8) Explique cuál es la función de los subdirectorios app/controllers y app/helpers.

  • Aplicación/controladores: el controlador gestiona una solicitud web del usuario. El subdirectorio del controlador es donde Rails busca clases de controlador
  • Aplicación/ayudantes: el subdirectorio del ayudante contiene las clases auxiliares utilizadas para ayudar a las clases de vista, modelo y controlador.

9) Menciona ¿cuál es la diferencia entre String y Symbol?

Ambos actúan de la misma manera, solo que difieren en sus comportamientos, que son opuestos entre sí. La diferencia radica en el object_id, la memoria y el ajuste del proceso cuando se usan juntos. El símbolo pertenece a la categoría de objetos inmutables, mientras que las cadenas se consideran objetos mutables.


10) Explique en qué se diferencia el símbolo de las variables.

El símbolo es diferente de las variables en los siguientes aspectos

  • Es más como una cadena que una variable.
  • En Ruby, la cadena es mutable pero un símbolo es inmutable
  • Solo es necesario crear una copia del símbolo.
  • Los símbolos se usan a menudo como los correspondientes a las enumeraciones en Ruby

11) Explique qué es Rails Active Record en Ruby on Rails.

El registro activo de Rails es la capa Object/Relational Mapping (ORM) suministrada con Rails. Sigue el modelo ORM estándar como

  • Mapa de tabla a clases
  • Asignación de filas a objetos
  • Las columnas se asignan a los atributos de los objetos

12) Explique cómo implementa Rails Ajax?

La página web con tecnología Ajax recupera la página web del servidor que es nueva o ha cambiado, a diferencia de otras páginas web en las que debe actualizar la página para obtener la información más reciente.

Rails desencadena una operación Ajax de las siguientes maneras

  • Algunos desencadenan incendios: El desencadenante podría ser un usuario que hace clic en un enlace o botón, los usuarios inducen cambios en los datos en el campo o en un formulario
  • El cliente web llama al servidor: Un método de script Java, XMLHttpRequest, envía datos vinculados con el activador a un controlador de acciones en el servidor. Los datos pueden ser el ID de una casilla de verificación, el formulario completo o el texto en el campo de entrada
  • El servidor procesa: El controlador de acciones del lado del servidor hace algo con los datos y recupera un HTML fragmento al cliente web
  • El cliente recibe la respuesta: El JavaScript del lado del cliente, que Rails genera automáticamente, recibe el fragmento HTML y lo usa para actualizar una parte particular del código actual.

13) ¿Mencione cómo puede crear un controlador para el sujeto?

Para crear un controlador para el sujeto, puede usar el siguiente comando

C:\ruby\library> ruby ​​script/generar asunto del controlador


14) Mencione ¿Qué es Rails Migration?

Rails Migration permite a Ruby realizar cambios en el esquema de la base de datos, lo que hace posible usar un sistema de control de versiones para dejar las cosas sincronizadas con el código real.


15) ¿Qué puede hacer Rails Migration?

Rails Migration puede hacer lo siguiente

  • Crear una tabla
  • Tabla de caída
  • Cambiar nombre de tabla
  • Añadir columna
  • Cambiar el nombre de la columna
  • Cambiar columna
  • Eliminar columna y así sucesivamente

16) Menciona ¿cuál es el comando para crear una migración?

Para crear el comando de migración incluye

C:\ruby\application>ruby script/generar nombre_tabla de migración


17) Explique cuándo se usa el método self.up y self.down.

Al migrar a una nueva versión, auto.arriba se utiliza el método mientras auto.abajo El método se utiliza para revertir mis cambios si es necesario.


18) Mencione cuál es el papel del controlador de rieles.

El controlador Rails es el centro lógico de la aplicación. Facilita la interacción entre los usuarios, las vistas y el modelo. También realiza otras actividades como

  • Es capaz de enrutar solicitudes externas a acciones internas. Maneja la URL extremadamente bien
  • Regula los módulos auxiliares, que amplían las capacidades de las plantillas de vista sin agrupar su código.
  • Regula las sesiones; que da a los usuarios la impresión de una interacción continua con nuestras aplicaciones

19) Mencione cuál es la diferencia entre "HashWithIndifferent" de Active support y "Hash" de Ruby.

El Hash clase en la biblioteca principal de Ruby devuelve valor mediante el uso de un estándar “= =” comparación de las teclas. Significa que el valor almacenado para un símbolo La clave no se puede recuperar usando la cadena equivalente. Mientras que la HashConIndiferenteAcceso trata las teclas de símbolo y las teclas de cadena como equivalentes.


20) Explique qué es la falsificación de solicitudes entre sitios (CSRF) y cómo se protege Rails contra ella.

CSRF es una forma de ataque en la que un pirata informático envía una solicitud de página en su nombre a un sitio web diferente, causando daños o revelando sus datos confidenciales. Para protegerse de los ataques CSRF, debe agregar “proteger_de_la_falsificación” para usted Controlador de aplicaciones. Esto hará que Rails requiera un token CSRF para procesar la solicitud. El token CSRF se proporciona como un campo oculto en cada formulario creado con los creadores de formularios de Rails.


21) Explica qué es Mixin in Rails.

Mixin en Ruby ofrece una alternativa a las herencias múltiples, utilizando módulos mixin que se pueden importar dentro de otra clase.


22) Explique cómo define Variable de instancia, Variable global y Variable de clase en Ruby.

  • La variable de instancia de Ruby comienza con: @
  • Las variables de la clase Ruby comienzan con: @@
  • Las variables globales de Ruby comienzan con: $

23) Explique cómo puede ejecutar la aplicación Rails sin crear bases de datos.

Puede ejecutar su aplicación descomentando la línea en environment.rb

ruta=> ruta raíz conf/environment.rb

config.frameworks = [ action_web_service, :action_mailer, :active_record]

24) Mencione cuál es la diferencia entre los observadores y las devoluciones de llamada en Ruby on Rails.

  • Observadores de rieles: Observers es lo mismo que Callback, pero se usa cuando el método no está directamente asociado al ciclo de vida del objeto. Además, el observador vive más tiempo y se puede separar o unir en cualquier momento. Por ejemplo, mostrar valores de un modelo en la interfaz de usuario y actualizar el modelo a partir de la entrada del usuario.
  • Devolución de llamada de rieles: Las devoluciones de llamada son métodos a los que se puede llamar en determinados momentos del ciclo de vida de un objeto, por ejemplo, cuando se valida, crea, actualiza o elimina un objeto. Una devolución de llamada es de corta duración. Por ejemplo, ejecutar un subproceso y dar una devolución de llamada que se llama cuando finaliza el subproceso

25) Explique qué es el rake en Rails.

Rake es una marca Ruby; es una utilidad de Ruby que sustituye a la utilidad 'make' de Unix y utiliza un 'Rakefile' y '.rake files' para crear una lista de tareas. En Rails, Rake se usa para tareas de administración normales, como migrar la base de datos a través de scripts, cargar un esquema en la base de datos, etc.


26) Explique cómo puede enumerar todas las rutas para una aplicación.

Para enumerar todas las rutas de una aplicación, puede escribir rutas de rake en la terminal.


27) Explique ¿Qué es el barrido en Rails?

Los barrenderos son responsables de caducar o terminar las memorias caché cuando cambia el objeto del modelo.


28) ¿Menciona el registro que se debe ver para informar errores en Ruby Rails?

Rails informará errores de Apache en log/Apache.log y errores del código de Ruby en log/development.log.


29) Explique cuál es la diferencia entre andamios dinámicos y estáticos.

Andamios Dinámicos Andamios Estáticos
  • Crea automáticamente todo el contenido y la interfaz de usuario en tiempo de ejecución
  • Permite la generación de métodos nuevos, borrados y editados para su uso en la aplicación.
  • No necesita una base de datos para sincronizarse
  • Requiere entrada manual en el comando para crear los datos con sus campos
  • No requiere que tal generación tenga lugar.
  • Requiere que se migre la base de datos

30) ¿Cuál es la función de recolección de basura en Ruby on Rails?

Las funciones de recolección de basura en Ruby on Rails incluyen

  • Habilita la eliminación de los valores del puntero que quedan cuando finaliza la ejecución del programa.
  • Libera al programador del seguimiento del objeto que se está creando dinámicamente en tiempo de ejecución.
  • Da la ventaja de eliminar los objetos inaccesibles de la memoria y permite que otros procesos utilicen la memoria.

31) ¿Cuál es la diferencia entre redirigir y renderizar en Ruby on Rails?

  • Redirigir es un método que se utiliza para emitir el mensaje de error en caso de que la página no se emita o no se encuentre en el navegador. Le dice al navegador que procese y emita una nueva solicitud.
  • Render es un método utilizado para hacer el contenido. Render solo funciona cuando el controlador se configura correctamente con las variables que se deben renderizar.

32) ¿Cuál es el propósito de los RJ en Rails?

RJs es una plantilla que produce JavaScript que el navegador ejecuta en un bloque de evaluación en respuesta a una solicitud de AJAX. A veces se usa para definir el JavaScript, el prototipo y los ayudantes proporcionados por Rails.


33) Explique qué es la asociación polimórfica en Ruby on Rails.

La asociación polimórfica permite conectar un objeto ActiveRecord con varios objetos ActiveRecord. Un ejemplo perfecto de asociación polimórfica es un sitio social donde los usuarios pueden comentar en cualquier lugar, ya sea videos, fotos, enlaces, actualizaciones de estado, etc. No sería factible si tuviera que crear un comentario individual como fotos_comentarios, videos_comentarios, etc. .


34) ¿Cuáles son los límites de Ruby on Rails?

Ruby on Rails ha sido diseñado para crear una aplicación web CRUD usando MVC. Esto podría hacer que Rails no sea útil para otros programadores. Algunas de las características que Rails no admite incluyen

  • Clave foránea en bases de datos
  • Vinculación a múltiples bases de datos a la vez
  • Servicios web de jabón
  • Conexión a múltiples servidores de bases de datos a la vez

35) Mencione cuál es la diferencia entre llamar a super() y superllamada.

  • súper(): una llamada a super() invoca el método principal sin argumentos, como se esperaba. Como siempre, ser explícito en tu código es algo bueno.
  • súper llamada: una llamada a super invoca el método principal con los mismos argumentos que se pasaron al método secundario. Por lo tanto, se producirá un error si los argumentos pasados ​​al método secundario no coinciden con lo que espera el padre.

36) ¿Explique sobre Dig, Float y Max?

  • La clase flotante se usa cuando la función cambia constantemente.
  • Dig se usa siempre que desee representar un flotante en dígitos decimales.
  • Max se usa cuando hay una gran necesidad de Float.

37) Explique cómo podemos definir las expresiones regulares de Ruby.

La expresión regular de Ruby es una secuencia especial de caracteres que lo ayuda a hacer coincidir o encontrar otras cadenas. Un literal de expresión regular es un patrón entre delimitadores arbitrarios o barras seguidas de %r.


38) Explique ¿Qué es el operador definido?

El operador de definición indica si una expresión pasada está definida o no. Si la expresión está definida, devuelve la cadena de descripción y si no está definida, devuelve un valor nulo.


39) ¿Enumere las pocas características de Ruby?

  • Formato libre: puede comenzar a escribir desde el programa desde cualquier línea y columna
  • Sensible a mayúsculas y minúsculas: las letras mayúsculas y minúsculas son distintas
  • Comentarios: cualquier cosa seguida de un comentario sin comillas. #, hasta el final de la línea en la que aparece, es ignorado por el intérprete
  • Delimitadores de declaraciones: las declaraciones múltiples en una línea deben estar separadas por punto y coma, pero no se requieren al final de una línea.

40) ¿Mencione los tipos de variables disponibles en Ruby Class?

Los tipos de variables disponibles en Ruby Class son,

  • Variables locales
  • Variables globales
  • Variables de clase
  • Variables de instancia

41) Explique cómo puede declarar un bloque en Ruby.

En Ruby, el código en el bloque siempre está encerrado entre llaves ({}). Puede invocar un bloque usando "declaración de rendimiento".


42) Explique cuál es la diferencia entre las sentencias put y putc.

A diferencia de la instrucción puts, que muestra la cadena completa en la pantalla. La instrucción Putc se puede utilizar para generar un carácter a la vez.


43) Explique qué es una biblioteca de clases en Ruby.

Las bibliotecas de clases de Ruby consisten en una variedad de dominios, como programación de subprocesos, tipos de datos, varios dominios, etc. Estas clases brindan capacidades flexibles a un alto nivel de abstracción, lo que le brinda la capacidad de crear potentes scripts de Ruby útiles en una variedad de problemas. dominios Los siguientes dominios que tienen bibliotecas de clases relevantes son,

  • Programación GUI
  • Programación de redes
  • Programación CGI
  • Procesamiento de texto

44) En Ruby, ¿explica sobre el operador definido?

El operador definido indica si una expresión pasada está definida o no. Si la expresión no está definida, da nulo, y si la expresión está definida, devuelve la cadena de descripción.


45) Mencione cuál es la diferencia en el alcance de estas dos variables: @@name y @name?

La diferencia en el alcance de estas dos variables es que:

  • @@name es una variable de clase
  • @name es una variable de instancia

46) Mencione cuál es la sintaxis para Ruby collect Iterator.

La sintaxis de Ruby collect Iterator collection = collection.collect.


47) En el código Ruby, a menudo se observa que el codificador usa una forma abreviada de usar una expresión como matriz.map(&:method_name) en lugar de array.map { |element| elemento.nombre_método }. ¿Cómo funciona realmente este truco?

Cuando se pasa un parámetro con “&” delante. Ruby llamará a to_proc en un intento de hacerlo utilizable como bloque. Entonces, el símbolo to_Proc invocará el método del nombre correspondiente en lo que sea que se le pase. Ayudando así a que nuestro truco de taquigrafía funcione.


48) Explique qué es la interpolación en Ruby.

Ruby Interpolation es el proceso de insertar una cadena en un literal. Al colocar un hash (#) dentro de {} paréntesis de apertura y cierre, se puede interpolar una cadena en el literal.


49) Mencione ¿cuál es la notación utilizada para denotar variables de clase en Ruby?

En Ruby,

  • Una constante debe comenzar con una letra mayúscula y no debe definirse dentro de un método.
  • Un local debe comenzar con el signo de subrayado _ o una letra minúscula
  • Una variable global debe comenzar con el signo $. Un global no inicializado tiene el valor de "nil" y debe aumento una advertencia. Se puede hacer referencia a cualquier parte del programa.
  • Una variable de clase debe comenzar con doble @@ y primero debe inicializarse antes de usarse en una definición de método

50) Menciona cuál es la diferencia entre Procs y Blocks.

La diferencia entre Procs y Blocks,

  • Block es solo la parte de la sintaxis de un método, mientras que proc tiene las características de un bloque.
  • Los procesos son objetos, los bloques no lo son.
  • Como máximo puede aparecer un bloque en una lista de argumentos
  • Solo el bloque no se puede almacenar en una variable, mientras que Proc puede

51) Menciona ¿cuál es la diferencia entre una comilla simple y una comilla doble?

Las cadenas entre comillas simples no procesan códigos de escape ASCII y no interpolan cadenas.


52) Menciona cual es la diferencia entre una gema y un plugin en Ruby?

  • Joya: Una gema es solo un código rubí. Se instala en una máquina y está disponible para todas las aplicaciones Ruby que se ejecutan en esa máquina.
  • Enchufar: El complemento también es un código Ruby, pero está instalado en la carpeta de la aplicación y solo está disponible para esa aplicación específica.

53) Menciona cual es la diferencia extender e incluir?

El "incluir" hace que los métodos del módulo estén disponibles para la instancia de una clase, mientras que "extender" hace que estos métodos estén disponibles para la clase misma.

Estas preguntas de la entrevista también te ayudarán en tu viva(orals)

Compartir

14 Comentarios

  1. Avatar Hasanuzzaman Sumon dice:

    El rendimiento no es función. Es la palabra clave ruby ​​que se usa para ejecutar el bloque.

    1. Avatar terry rayo dice:

      Específicamente, yield pasará el control del subproceso (Principal. subproceso más probable) al bloque que se pasó explícitamente como un parámetro, es decir, def my_method(&my_block) O, alternativamente, un bloque podría haberse pasado implícitamente como

      mi_clase.mi_método hacer
      # el código en este bloque se entregará dentro del método de llamada
      final

  2. Avatar Jorge Armando dice:

    en la pregunta #6, en Ruby, no hay una clase "booleana", por lo tanto, no hay un "tipo booleano". Solo hay TrueClass y FalseClass.

  3. Avatar terry rayo dice:

    en realidad Thread.main … mi mal :)

  4. Ruby no está inspirado en Python, se inspiró en los siguientes (Perl, Smalltalk, Eiffel, Ada, BASIC y Lisp)

Deje un comentario

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *