Sorbet от Stripe - быстрая и мощная программа проверки шрифтов, разработанная для Ruby.

Рубин - потрясающий язык:

Динамический язык программирования с открытым исходным кодом, ориентированный на простоту и производительность. Он имеет элегантный синтаксис, который естественно читать и легко писать.

Новичкам довольно легко освоить Ruby. Как говорят некоторые из моих коллег, Руби держит за руку нового разработчика и указывает им верное направление. Для динамического языка это означает, что вы не узнаете, что с вашим кодом что-то не так, пока не запустите код. Например, если вы вызываете неопределенный метод экземпляра для экземпляра класса, вы не получите никаких ошибок в коде, пока не запустите его. Но это можно упустить из виду, когда вы работаете с небольшой базой кода - именно здесь языки со статической типизацией, такие как Java и C #, превосходят Ruby.

Как программисты, чем больше кода мы пишем, тем больше ошибок вносим в нашу кодовую базу. Как кто-то однажды сказал, лучший код - это вообще не писать кода. Статическая типизация позволяет нам определить, что мы ожидаем от нашего кода с точки зрения типов данных и возвращаемых значений. Это вселяет в нас уверенность, упрощает совместную работу и означает, что мы можем получить обратную связь, когда что-то пойдет не так, даже до того, как мы запустим наш код. Как это круто? Это экономит нам много времени на отладку ошибок, которых можно избежать, и мы можем быстрее отправлять качественный код.

Представляем сорбет

Sorbet - это быстрая и мощная программа для проверки шрифтов, разработанная для Ruby.
Создана с помощью 💜 на Stripe.

Сорбет быстрый и масштабируемый

Sorbet является многопоточным, линейно масштабируемым по ядрам вашего процессора. Он проверяет ваши типы за секунды, давая вам обратную связь по мере того, как вы кодируете.

Готовность к IDE

Sorbet работает с вашим любимым редактором, обеспечивая такие функции IDE, как автозаполнение и переход к определению. Это легко добавить в настройку CI.

Итак, как начать использовать сорбет? Вы можете начать с существующей кодовой базы: Sorbet работает с обычным Ruby и совместим с другими инструментами Ruby или Gems, которые вы уже используете. Или вы можете использовать его для нового проекта.

Установка

# -- Gemfile --
gem 'sorbet', :group => :development
gem 'sorbet-runtime'
# Install the gems 
❯ bundle install
# Initialize Sorbet 
❯ srb init
# Type check the project 
❯ srb tc

Добавьте Sorbet Gem в группу разработчиков. Запустите установку пакета, rub srb init для инициализации Sorbet и Type. Проверьте проект и, наконец, запустите srb tc.

Примеры: сорбет онлайн через Игровую площадку

В приведенном выше примере у нас есть простой класс Calculate, который имеет метод добавления экземпляра. Чтобы использовать Sorbet в нашем классе, нам нужно добавить # typed: true в начало файла Ruby. Затем, после определения класса, мы добавляем extend T::Sig. Поскольку Sorbet не является навязчивым, вы можете определить типизированные классы и методы. В верхней части метода экземпляра addition мы определили sig {params(x: Integer).returns(String)}. Это проинформировало Сорбет о том, что нашему методу требуется один аргумент x целочисленного типа данных, а метод должен возвращать тип данных String. Затем у нас есть основной метод вне нашего класса, который инициализирует два экземпляра класса Calculate.

Мы сразу же получаем обратную связь о том, что мы делаем не так в нашем коде, еще до того, как запускаем его. Как это круто!

При наведении указателя мыши на выделенные ошибки вы получите дополнительную информацию об ошибке и о том, что необходимо сделать для ее исправления. Это может во многом помочь избежать ошибочной передачи неправильного аргумента или типа данных методу - вы всегда точно знаете, какого типа возвращаемое значение ожидать от вашего метода. Вот что я назвал супер-круто!

Давайте исправим эти ошибки!

Успех!

Sorbet - действительно отличный инструмент, который дает хороший опыт разработчикам. Надеюсь, вы найдете это полезным в своем следующем проекте.

Полезные ссылки

Официальный сайт
Документация
Детская площадка

Спасибо за прочтение!