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 - действительно отличный инструмент, который дает хороший опыт разработчикам. Надеюсь, вы найдете это полезным в своем следующем проекте.
Полезные ссылки
Официальный сайт
Документация
Детская площадка
Спасибо за прочтение!