ДЛЯ НОВИЧКОВНЕ ДЛЯ НОВИЧКОВНЕ ОБЯЗАТЕЛЬНОВ РАЗРАБОТКЕ
Разработчику
Архитектору
Чек-лист самопроверки
- Что такое Ruby и кто его создал?
- Какие цели преследовал создатель при разработке языка?
- Почему говорят, что «всё в Ruby — объект»?
- Являются ли числа, строки, классы и
nil объектами?
- Как запустить интерпретатор Ruby (IRB)?
- Как выполнить Ruby-скрипт из файла?
- Какие есть способы комментирования кода?
- Как объявляются переменные и какие виды переменных существуют (локальные, экземпляра, класса, глобальные)?
- Что означают префиксы
@, @@, $?
- Как работают константы и могут ли они изменяться?
- Какие примитивные типы данных есть в Ruby?
- В чём разница между
nil, false и другими «ложными» значениями?
- Как работает оператор
==, eql?, equal?, ===?
- Как работают условия (
if, unless, тернарный оператор)?
- Может ли
if использоваться как выражение (возвращать значение)?
- Какие циклы поддерживаются (
while, until, for, loop)?
- Что такое итераторы (
each, map, select, times) и почему они предпочтительнее циклов?
- Что такое блоки (
do...end, {...}) и как они передаются методу?
- Как вызвать блок внутри метода (
yield)?
- Что такое Proc и Lambda — и чем они отличаются?
- Как работают аргументы метода (позиционные, именованные, по умолчанию, splat
*)?
- Как объявляется метод?
- Обязательно ли использовать
return в методе?
- Что такое
self и как он используется?
- Как работают области видимости методов (
public, private, protected)?
- Что такое класс и как он определяется?
- Как создаётся экземпляр класса?
- Что такое конструктор (
initialize)?
- Как работает наследование в Ruby?
- Поддерживает ли Ruby множественное наследование? Если нет, то как достигается повторное использование кода?
- Что такое модули и зачем они нужны?
- Как включить модуль в класс (
include, extend, prepend)?
- Что такое миксины и как они реализуются?
- Как работают методы класса и методы экземпляра?
- Что такое singleton-методы (методы конкретного объекта)?
- Что такое
method_missing и где он применяется?
- Как работает метапрограммирование (
define_method, class_eval, instance_eval)?
- Как обрабатываются исключения (
begin/rescue/ensure)?
- Как создавать собственные классы исключений?
- Что такое символы (
:symbol) и чем они отличаются от строк?
- Как работают хэши и массивы?
- Как сериализовать данные (
to_json, Marshal)?
- Как управлять зависимостями проекта (Gemfile, Bundler)?
- Что такое гемы и как их устанавливать?
- Как писать unit-тесты (Minitest, RSpec)?
- Что такое Rake и как он используется?
- Как работает работа с файлами (
File.open, Dir.glob)?
- Как отправлять HTTP-запросы (Net::HTTP, Faraday)?
- Как организована структура проекта на Ruby on Rails (MVC)?
- Какие инструменты используются для форматирования и анализа кода (RuboCop, StandardRB)?