Skip to content

Latest commit

 

History

History
143 lines (119 loc) · 4.77 KB

rails.md

File metadata and controls

143 lines (119 loc) · 4.77 KB

Вопросы для разработчиков на Ruby On Rails

Вопросы по soft skills Вопросы по алгоритмам

Junior

Общие вопросы

  1. Почему ты решил стать бэкенд-разработчиком, чем тебя привлекает профессия?
  2. Приходилось писать тесты и на чем?
  3. Знаком с пирамидой тестирования? Какие виды тестирования знаешь?
  4. Приходилось профилировать код?

Ruby

  1. Какие типы данных в Ruby знаешь?
  2. Чем тип данных символ отличается от строк?
  3. Что вернётся в результате сложения 10.5 и 10?
  4. Чем отличаются proc от lambda
  5. Что такое блок? Что такое yield? Можно ли передавать блоки в методы? Каким образом?
  6. Как происходит наследование в Ruby?
  7. Есть ли в Ruby множественное наследование если нет чем можно заменить?
  8. Модули что такое зачем нужны, extend, include, prepend - в чем отличие
  9. Какие ORM знаешь и какие использовал? Какие плюсы и минусы можешь выделить?
  10. Что такое Манкипатчинг? Применял ли?

Сети

  1. Чем PUT от PATCH отличается?
  2. Что из себя представляет HTTP запрос? Структура? Тело есть у всех HTTP запросов?
  3. Можешь рассказать, что такое REST? Использовал ли в работе REST?
  4. В чем разница между GET и POST?

Базы данных

  1. Базы данных - какие базы бывают, чем отличаются.
  2. Индексы в БД что это для чего нужны, какие типы индексов бывают.
  3. Ассоциации(один к одному, один ко многим, многие ко многоим) как реализовать на уровне БД, как реализовать на уровне Rails-моделей.
  4. Какие виды JOIN-ов бывают, чем отличаются.

Задачки на код

  1. Есть два приложения между ними шина данных(Kafka, RabbitMQ, gRPC), из одного в другой пришли кривые данные, как будешь дебажить?
  2. Есть таблица posts и таблица comments, связь один ко многим, в таблице comments вторичный ключ post_id - напиши запрос который вытащит все посты у которых > 3 комментариев и дата создания поста после 20 ноября
  3. Есть новые данные вот такой структуры
json:
[
  {
    id: 1,
    number: 'H1111',
    position: [
      {
        id: 1
        name: 'Хлеб'
        cost: '59.90'
      },
      # ......
    ]
  },
  #......
]

И им соответствуют модели

class Order < ApplicationRecord
  has_many :positions
end

class Position < ApplicationRecord
  belongs_to :order
end

Нужно в соответствии с этими данными обновить таблицу Orders в которой 100_000 записей

  1. Есть код Контроллер и две модели
class Order < ApplicationRecord
  has_many :positions
end

class Position < ApplicationRecord
  belongs_to :order
end

class OrdersController < ApplicationController
  def index
    # solution
  end

  def show
    #solution
  end
end

class OrderSerialiser < ActiveModel::Serializer
# solution
end

Нужно дописать экшены в контроллере и сериалайзер, что вернет из экшенов такую структуру

index:
[
  {
    id: 1,
    number: 'H1111',
    position: [
      {
        id: 1
        name: 'Хлеб'
        cost: '59.90'
      },
      # ......
    ]
  },
  #......
]
show:
{
  id: 1,
  number: 'H1111',
  position: [
    {
      id: 1
      name: 'Хлеб'
      cost: '59.90'
    },
    # ......
  ]
}