RNDSOFT Technology Blog
@rnds
Software development / Ruby-on-Rails
12 Followers
18 posts
rails
Рубрика куда мы пишем всё что связано с Ruby и Rails

❤️💎 WorkerKiller 💎❤️

Утечки ресурсов и/или памяти, а также её фрагментация являются обычной проблемой для всех языков программирования. Неважно есть там сборщик мусора или нет, компилируемый язык или интерпретируемый. Ruby не является исключением и сегодня мы немного поговорим про эти проблемы, варианты их решения и даже напишем своё собственное.

Вежливый таймаут

Все, кто работают с руби, рано или поздно попадают на какую-нибудь статью, рассказывающую почему никогда и ни при каких обстоятельствах нельзя использовать Timeout::timeout. А я хочу поделиться другим подходом к таймаутам.

Hyperstack vs Hotwire

Перевод статьи "Hyperstack vs Hotwire"
@catprint aka Mitch VanDuyn от 26 февраля 2021 года.

Бизнес логика в Rails приложениях

Для многих не секрет, что Ruby on Rails - это фрэймворк, основанный на паттерне Model-View-Controller (MVC), где

RSpec-flaky: травим плавающие баги в тестах

Один из основных критериев правильно написанного и работающего теста - его детерминизм. Если код не меняется - результат теста тоже не должен меняться. Однако если вы пишете тесты (иначе зачем вообще читать эту заметку?), то наверняка сталкивались с плавающими тестами. Плавающие тесты - это термиты вашего приложения, они замедляют скорость разработки, скрывают баги и как следствие - стоят денег. Тех самых, на которые печеньки с кофе в офис покупают.

Код в блогах

Во время написания статей и заметок постоянно приходится вставлять блоки кода. На текущей площадке, впрочем как и на medium, код вставляется весьма просто:

Кешированные HTTP-соединения

Как-то на кухне зашел разговор за потерю времени на установление HTTP-соединения. Всем вроде понятно что на инициализацию тратится время. Но мне стало интересно сколько именно и я набросал маленький скрипт-бенчмарк:

Ракторы (Ractors)

Перевод статьи “Ractors”
@brandur от 15 января 2021 года.

Consul, Lusnoc, Rufus и фоновые задачи

В прошлой статье я обещал рассказать о конкретном использовании распределенных блокировок с использованием нашей собственной Ruby-библиотеки Lusnoc. Про это и поговорим.

Consul, distributed locks и как мы с этим работаем (Lusnoc)

За последние пару лет Consul плотно вошёл в наш технологический стэк. Сначала как хранилище конфигурации потом как service provider для внутренних систем таких как prometeus и traefik и наконец как инструмент для distributed locks и leader election. В конце я еще приведу список полезных ссылок по теме с комментариями, а пока речь пойдет о нашей Ruby библиотеке, реализующей семантику мьютекса поверх функционала, предоставляемого Consul’ом. Библиотека, она же гем, получила название Lusnoc.