Всем привет! В этой статье мы расскажем о том, как мы реализуем оплаты в наших проектах на Ruby On Rails на примере платформы RuStore, а также поделимся разработанной библиотекой для взаимодействия с её API.
Ruby *
Динамический высокоуровневый язык программирования
Курс по Ruby+Rails. Часть 8. Модели и первые шаги
Миграции – это механизм ActiveRecord, который позволяет вносить изменения в схему базы данных не используя SQl. ActiveRecord предоставляет широкие возможности для манипуляций со базой, беря на себя большую часть работы, автоматизируя многие вещи благодаря принципу соглашения над конфигурацией. Это позволяет генерировать готовые миграции, сразу содержащие код, вносящий необходимые изменения, и минимизировать код для отката миграций.
RSpec библиотеки кратко и структурно
В Readme репозитория rspec-metagem написано, что rspec
- это есть rspec-metagem
, который зависит от rspec-core
, rspec-expectations
and rspec-mocks
. Каждый из них можно использовать независимо. Здесь я привела краткое описание, что каждая из них делает.
Курс по Ruby+Rails. Часть 7. Модели и ActiveRecord
На одной из прошлых лекций вы познакомились с паттерном MVC – Model, View, Controller. И сегодня пришло время подробней разобраться в том, что прячется за первой буквой этой аббревиатуры.
Истории
Как компании подготовиться к модуляризации iOS приложений
В активно развивающихся приложениях порой сложно обеспечивать масштабируемость, удобочитаемость и качество кода. Это частая ситуация, которая со временем может усложнить поддержку, выявление проблем и их устранение. Избежать подобных проблем помогает модуляризация приложений — подход, при котором кодовая база делится на небольшие специализированные, готовые к повторному использованию модули.
Меня зовут Кирилл Смирнов. Я технический лидер iOS команды в СберЗдоровье. Последний год наша команда плотно занималась улучшением инструментов разработки, в том числе модуляризацией. В этом материале я поделюсь опытом и рекомендациями по подготовке бизнеса (заказчиков, исполнителей, смежников и др.) к модуляризации iOS приложений.
В Ruby появилась поддержка WebAssemblу: что это значит?
С выпуском версии 3.2 Ruby пополнил список языков программирования, поддерживающих WebAssembly. Небольшое на первый взгляд обновление может стать самым значительным изменением языка со времён Rails, так как теперь разработчики смогут работать не только с бэкендом. После портирования кода на WebAssembly его можно будет запускать где и как угодно — на фронтенде, встроенных устройствах, как бессерверные функции, вместо контейнеров или в граничных вычислениях. WebAssembly может превратить Ruby в универсальный язык программирования. Подробности под катом, а практика в вебе — на нашем курсе по Fullstack-разработке на Python.
Dry-rb — экосистема, которая упростит архитектуру вашего проекта
Привет! Меня зовут Вероника Молчанова. Я - Ruby-разработчик в компании Joy Dev. В этой статье мы рассмотрим набор Ruby-библиотек dry-rb и расскажем, как они помогли упростить архитектуру проектов. В частности хотим показать, как на наших проектах используются такие гемы из dry-экосистемы, как:
- dry-auto_inject
- dry-validation
- dry-struct
Ruby, Cucumber и русский язык: автотесты для Альфа-Банка
А у нас новый доклад Ruby Russia 2022. В этот раз поговорим о тестах. Автор этого текста, ведущий инженер по автоматизированному тестированию ПО в Альфа-Банке Елена Рыжкова расскажет, как в компании используют популярный Cucumber, и для чего помимо автоматизации он может быть полезен.
Зачем вы юзаете ActiveRecord без Rails?
Текст для тех, кто хочет писать мелкие сервисы на руби без рельс.
Убьет ли HTTP/2 лонг поллинг и вебсокеты?
В новом тексте по итогам Ruby Russia 2022 Full-Stack разработчик и консультант Learning Tapestry Александр Уланов рассуждает, есть ли у Server-sent events потенциал обойти websocket-ы и long polling.
3 попытки и 8 лет перехода с Ruby на Elixir
Привет, это очередной доклад Ruby Russia 2022. В нём наш разработчик Дмитрий Клейменов рассказывает, как он восемь лет пытался сменить Ruby на Elixir, благодаря чему ему все же это удалось, и жалеет ли он о переходе в другой стек.
Что узнали рубисты igooods, делая push-уведомления
В вашей ленте новый текст по мотивам доклада на Ruby Russia 2022. Сегодня Георгий Быков, Ruby и Elixir-разработчик из igooods, расскажет, с какими проблемами столкнулась его команда при создании пушей, и как им удалось их решить.
Ruby под нагрузкой, или Как поменять Puma на Falcon за неделю до релиза
Всем привет! Меня зовут Александр Шерман, я тимлид в команде CRM в Самокате. Мы в первую очередь известны по своей модели доставки заказов от 15 минут. Чтобы укладываться в такой норматив, у нас достаточно жёсткие SLA (2,5 минуты на сборку заказа), что, в свою очередь, диктует строгие требования к надёжности и быстродействию сервисов.
Часть проектов у нас написана на Ruby. Если раньше в качестве web-сервера для них мы использовали Puma (который уже стал de-facto стандартом) и горя не знали, то в определённый момент нам его производительности стало не хватать. В статье, сделанной по мотивам моего доклада на конференции Ruby Russia 2022 расскажу, как и зачем мы переехали на другой веб-сервер.
Ближайшие события
ActiveRecord Schema Consistency — а если проверю?
Это ещё один текст по мотивам доклада на Ruby Russia 2022. Он посвящён консистентности схемы базы данных на примере библиотеки database_consistency. Автор — Евгений Демин, Principal Engineer и Ruby-разработчик Toptal.
Функциональные аспекты Ruby
Что такое функциональное программирование?
Прежде чем начинать, давайте закрепим понимание термина «функциональное программирование». В основе своей, функциональное программирование это организация кода вокруг функций, а не вокруг объектов. Чтобы это работало, функции должны рассматриваться как тип данных первого класса в рамках языка программирования. Это лишь модный способ сказать, что функции могут храниться в переменных, возвращаться из других функций, использоваться в качестве параметров, потенциально даже быть изменены, так же как любая другая часть программы. Вместо того чтобы погружаться глубже в теорию, давайте перейдём к примерам.
Руби блоки за 5 минут
Блоки — одна из самых мощных и часто игнорируемых фич руби. Признаюсь, у меня ушло прилично времени чтобы разобраться как работают блоки и насколько они могут быть полезными на практике.
Есть нечто в yield
, что делает его крайне трудным для понимания при первом рассмотрении. Я хочу поговорить о концептах и приведу несколько примеров, так что к концу этого поста у вас появится твёрдое понимание руби блоков.
Как Unicorn и Puma взаимодействуют с nginx. Введение в UNIX сокеты с помощью Ruby
Ruby приложения обычно используются вместе с веб сервером типа nginx. Когда пользователь запрашивает страницу вашего Rails приложения, nginx делегирует запрос серверу приложения. Но как именно это работает? Как nginx общается с Unicorn?
Одним из наиболее эффективных способов будут Unix сокеты. Давайте посмотрим как они работают! В этом посте мы начнём с основ Unix сокетов и закончим созданием своего простого Ruby приложения, которое может быть проксировано nginx.
Node.js for ruby developers
Можно ли, зная Ruby, писать код на Node.js? А можно ли с командой Ruby-разработчиков успешно поддерживать и развивать большой легаси монолит на ноде? Можно! А как, расскажет Дмитрий Матвеев, СТО «Поток.Диджитал» и спикер Ruby Russia 2022.
Чиним отставание реплик, не меняя архитектуру Ruby-монолита
Привет, меня зовут Александр Панасюк. Я разрабатываю на Ruby с 2011 года и сейчас руковожу группой разработки на Ruby в СберМаркете. Хочу поделиться опытом того, как при масштабировании e-com’а мы боролись с узким горлышком при помощи репликации и какой метод предпочли при борьбе с отставанием реплик. Об этом я уже рассказывал на конференции Ruby Russia'22, а это текстовая версия моего доклада.
JSON:API 一 это не JSON API
Это третий доклад с прошедшей Ruby Russia. В нём Александр Меркулов, team lead UCHI.ru рассказывает, как его команда решила поэкспериментировать с JSON:API, и что из этого вышло.
Вклад авторов
alizar 536.0Homakov 300.6kronos 260.0Iskin 239.0DenisVitman 231.0Lxx 208.0dustalov 187.0vorona_karabuta 170.2iv_s 163.0