Обновить
3

Ruby on Rails *

Фреймворк, написанный на Ruby

Сначала показывать
Порог рейтинга
Уровень сложности

Элементарный дебаггинг с binding.irb

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели6.9K

Бывает так, что запускаешь тесты, а они падают там, где вроде бы всё должно работать. В логах — только сухая ошибка, без контекста. Открываешь код, смотришь на участок кода, где произошёл сбой, и начинаешь гадать:

В чем же дело?

Новости

ActiveRecord: опасная магия

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6K

В Ruby‑разработке ActiveRecord давно стал стандартом: он интуитивно понятен, встроен в Rails и позволяет быстро проводить CRUD‑операции. По мере роста проекта его «удобство» нередко начинает оборачиваться скрытыми проблемами.

Читать далее

МТС DevTools Stack: как мы собрали внутренний Q&A-портал на Discourse

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5K

Привет, Хабр! Уверен, у вас тоже такое бывало: сидишь в проде, сервис падает, а нужного ответа нет ни в Confluence, ни в старых чатах. В итоге бесконечный скролл в «телеге», повторы вопросов в почте и потерянные часы на поиски того, что кто-то уже когда-то решал. Мы уперлись в эту проблему лбом и поняли, что нам нужен инструмент, который аккумулирует знания и делает доступными. 

Меня зовут Денис Селков, я техлид разработки внутреннего Q&A‑портал МТС DevTools Stack. С помощью этого продукта мы упорядочили накопление знаний, и в этом материале я покажу, что дает такая относительно простая механика и как ее можно прокачать с помощью ИИ-инструментов. 

Читать далее

ActionMailbox c простым почтовым ящиком через IMAP по-человечески

Уровень сложностиСложный
Время на прочтение2 мин
Охват и читатели5.3K

ActionMailbox в рельсах изначально был заточен на использование платных 3rd-party сервисов. Подключить его к обычному имейлу можно было либо поднимая/перенастраивая почтовый сервер, либо через костыли. Костыли так или иначе заключались в поднятии дополнительного сервиса. Статья на Medium предлагает поднять fetchmail, заброшенный гем предлагает запускать почтовый клиент на Rust.

Что делать, если слишком сложно?

Стоицизм как база для TDD: страданиями код совершенствуется

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели6.2K

Когда тест проходит с первого раза — это пугает. Стоицизм в TDD — не методология, а форма выживания.

Читать далее

Как мы автоматизировали анализ упавших тестов с помощью AI: от хаоса к структуре

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели5.6K

Представьте: каждый день ваши автотесты генерируют десятки отчетов об ошибках, QA команда тратит часы на анализ падений, а разработчики получают невразумительные описания в духе "test.feature упал на строке 410". Знакомо?

Мы решили эту проблему, интегрировав AI в процесс анализа тестов, и хотим поделиться опытом.

Читать далее

AI-Ready Data: как дообучить LLM без боли и с максимальной отдачей

Время на прочтение3 мин
Охват и читатели3.5K

В последние месяцы я всё чаще сталкиваюсь с одним и тем же выводом: внедрение LLM-систем (особенно с использованием RAG-подхода) тормозится не из-за самой модели, а из-за отсутствия качественных данных. Самое дорогое в процессе — это не запуск пайплайна, не подбор архитектуры, а подготовка структурированных, очищенных и корректных данных, пригодных для обучения или дообучения моделей. Всё чаще этот подход называют AI-Ready Data.

Читать далее

Rails сквозь года: Ключевые изменения от версии 1 к версии 8

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели989

Ruby On Rails был краеугольным камнем в веб-разработке с момента своего основания, позволяя разработчикам создавать масштабируемые и поддерживаемые веб-приложения. С эволюцией Rails каждая версия вводила новые функции, улучшения производительности и безопасности. Поскольку Rails имеет открытый исходный код, разработчики постоянно решали существующие проблемы и добавляли улучшения, поддерживая фреймворк в соответствии с новыми трендами. Итак, давайте рассмотрим путь Rails как фреймворка от зарождения до последних достижений.

Читать далее

Simple Rails. Часть 1 — начало: свой веб сервер

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели1.8K

Всем привет, думаю, читатель, нажавший на данный заголовок, уже догадывается, о чем примерно пойдет речь. Данная статья рассчитана на тех, у кого уже есть какое-либо понимания языков программирования (лучше если именно Ruby), а также хотя бы общие сведения о HTML, работе ОС и сети.

Для тех, кто не в курсе в мире веб разработки существует фреймворк Ruby on Rails. Фреймворк горячо любим автором и сообществом и используется для создания полнофункционального сайта или по-другому веб приложения. Но все ли знают и понимают, как оно там вообще работает?

Читать далее

Mount — ещё один способ уменьшения размера Docker-образа

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели11K

Делюсь лайфхаком по уменьшению размеров Docker-образов. Как-то нам попалась на поддержку и развитие CRM-система, написанная на Ruby...

Обновили Ruby-пакеты и под них код, написали Dockerfile. Первая сборка была удручающей: образ в 2Гб. Это нормальный размер, если ты собираешь образ с Torch и другой ML-штуковиной, но CRM - нет. В результате дальнейших действий, удалось сократить размер образа до 200Мб.

Cделали следующее, чтобы сократить размер

Декомпозиция монолитной системы с использованием Strangler-паттерна

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели7.1K

Привет! Меня зовут Дима, я архитектор в Купере. Сегодня расскажу о шаблоне проектирования Strangler, который мы использовали для поэтапного выноса бизнес-логики из монолитной системы в отдельный сервис. 

Сначала обратимся к первоисточнику, а затем перейдем к практическим моментам, с которыми столкнулись в процессе работы. Поехали!

Читать далее

Постановка задачи на импортозамещение информационной системы, например Notion

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели3.3K

Добрый вечер, уважаемые читатели Хабра, Хабровчане, а также все спеллчекеры с личным мнением - мое специализированное почтение.

Перед вами пример Первого Инженерного Действия, а именно пример принятия решения в обстоятельствах неопределенности, с ходом обдумывания дальнейших шагов развития в ситуации с обозначенным топиком - пора валить, куда как, кого, опенсорс, самопис, заказ и тд и тп.

Большинство известных мне случаев при принятии решений характеризуются одним общим показателем - отсутствием письменного размышления при принятии решений. 

Те кто приходят к этой практике получают много полезного в своей жизни.

Так как Хабр это текстовый портал, привожу текстовый пример, демонстративный, он имеет основания, шаги, таблички, действия и заключения.

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

В наличии корректное оформление для уважения читателя, Ноушн пишется с прописной и с курсивом.

Желаю приятного прочтения.

Читать далее

Как я сделал Notion 'у себя дома', есть фулл

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.5K

Привет, хабровчане!

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

А сейчас вот появилось -- решил демонстрации ради запилить Notion из рельсов и шпалок.

К постановке вопроса зачем мы вернемся, как это принято тут и у всех айтишников -- в самом конце, а сейчас к конкретике и без воды.

И вот что из этого вышло

Ближайшие события

Ruby Telegram Mini App

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели2.5K

Разрабатываем telegram mini-app используя Ruby on Rails

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

Читать далее

Как подготовить тестовое окружение и не сойти с ума

Время на прочтение6 мин
Охват и читатели2.4K

Привет, Хабр! Я Александр Непомнящих, QA в СберМаркете. Мы с командой кодим программу лояльности, которая позволяет списывать в заказах бонусы «Спасибо», а также запускать различные акции с повышенным начислением бонусов. 

Для безопасного внедрения многие изменения закрывались фича-флагами, разрасталась ролевая модель, становилось больше фичей. Всё это увеличивало количество действий для подготовки тестового стенда, их количество обычно достигало 9. Да, нужно было совершить девять разных операций, чтобы подготовить стенд к работе с бонусами.

Если вы занимаетесь тестированием, заходите под кат — расскажу, как мы в итоге автоматизировали процесс до 1 команды в Rails-консоли.

Читать далее

Как делать многоуровневые формы в Rails

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели1.2K

Работа с многоуровневыми формами в Ruby on Rails — это то, что точно поднимет ваш скилл в Ruby. В этой рассмотрим, как упростить этот процесс с помощью двух гемов: Wicked и Cocoon.

Многоуровневые формы позволяют собирать информацию от пользователя поэтапно, что делает интерфейс более дружелюбным.

Читать далее

Как дальнобойщик в 38 лет стал разработчиком на Ruby on Rails

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели9.5K

Недавно мне представилась возможность взять интервью у Педро Давида Гарсии Лопеса, разработчика на Ruby on Rails из Великобритании, который до этого работал дальнобойщиком. Интересно то, что он решил стать программистом в 38 лет. В этой статье я расскажу его историю, которая, надеюсь, покажется вам такой же вдохновляющей, какой она показалась мне.
Читать дальше →

Hosting Ruby. Обзор вариантов и пример деплоя Ruby on Rails приложения

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели2.9K

В 2012 году, чтобы упростить развертывание приложений, написанных на Ruby on Rails, компания Heroku сделала свой знаменитый продукт. В статье мы рассмотрим несколько вариантов для хостинга и разберем, как задеплоить Ruby on Rails на конкретном примере приложения.

Читать далее

Как мы реализовали аутентификацию трафика для MSA на базе монолита

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели2.8K

Привет, Хабр! Меня зовут Салахутдинов Дмитрий, я принципал инженер в СберМаркете. Занимаюсь развитием Ruby-платформы и масштабированием системы через декомпозицию монолита на сервисы.

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

Читать далее

Выбор технологического стека для digital-продукта в 2024 году

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели47K

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

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

Меня зовут Евгений Корнеев и я постараюсь дать разностороннюю оценку с точки зрения зрелости технологии, популярности, доступности специалистов и вакансий, а также того, для каких целей лучше применять конкретный стек.

Читать далее
1
23 ...

Вклад авторов