Рубрика «ruby on rails»

Через пару дней в Москве пройдет конференция RubyRussia. Наш гость Чарльз Наттер (работает над JRuby и JVM поддержкой в Red Hat) ответил на пару вопросов.

Чарльз Наттер. Как перенести древний монолитный проект на JRuby и стоит ли это делать? - 1Как вы попали в мир программирования и Ruby?

В 2004 году я работал по контракту в правительственной фирме в качестве Java Enterprise архитектора. Я работал над проектом для Министерства сельского хозяйства США, и проводил пару недель в месяц в Вашингтоне. Одна из таких поездок совпала с RubyConf 2004, и поскольку один из моих друзей давно рекомендовал мне обратить внимание на Ruby, я решил сходить на конференцию. Так я оказался на мероприятии, посвященном Ruby, не имея никакого представления об этом языке… но я понял каждый кусочек кода, каждый приведенный пример. Я был поражен и пообещал себе найти способ принести Ruby в мой Java-мир.

Над какими проектами вы работаете сейчас?
Читать полностью »

После нескольких месяцев тестов мы наконец перенесли приложение Ruby on Rails в продакшен с кластером Kubernetes.

В этой статье я расскажу, как настроить маршрутизацию на основе Path для приложения Ruby on Rails в Kubernetes с контроллером HAProxy Ingress.

image

Читать полностью »

Привет! Продолжаем серию интервью со спикерами конференции RubyRussia. Аарон Паттерсон (он же tenderlove) — член Ruby core team и Rails core team, ведущий инженер-программист в маленьком стартапе под названием GitHub. Павел Аргентов пообщался с Аароном перед его второй поездкой в Россию.

Интервью c Аароном Паттерсоном, спикером конференции RubyRussia 2018 - 1

Начнем со стандартного вопроса. Какова твоя личная ruby-история? Как ты сел на этот поезд? Расскажи про свои достижения? Получилось ли сделать мир лучше?
Читать полностью »

БД — это не только хранилище данных - 1 Использовать БД только для складирования данных — это всё равно, что назвать Unix интерфейсом для работы с файлами. Посему, хочу напомнить об известных и не очень функциях БД, которые хотелось бы чаще встречать в боевых веб-приложениях.

Читать полностью »

Курс «Языки веб-программирования» (на основе Ruby) от МГТУ им. Н. Э. Баумана на канале Технострим - 1

В этой статье мы расскажем о курсе «Языки веб-программирования», который читается на кафедре «Компьютерные системы и сети» (ИУ-6) МГТУ им. Н.Э. Баумана. Примеры приводятся на Ruby, а сам курс и представляет собой 16 видеолекций, доступных бесплатно на канале Технострим. В «Бауманке» курс читается для студентов второго курса, уже знакомых с высокоуровневыми языками программирования, такими как Pascal, C++ или Java. Основной акцент делается на системное понимание технологий, используемых в веб-программировании, а не на глубину освоения именно технологий Ruby. Поэтому курс также будет полезен слушателям, имеющим отрывочные знания о веб-технологиях на любых языках.
Читать полностью »

Что бы далеко не ходить, сразу определимся с терминами.

  • Инкапсуляция — упаковка данных и функций в единый компонент.
  • Сокрытие — представляет собой принцип проектирования, заключающийся в разграничении доступа различных частей программы к внутренним компонентам друг друга.

Взято с вики. В языке программирования Ruby с инкапсуляцией вроде как всё хорошо. С сокрытием на первый взгляд тоже, нам доступны локальные переменные, переменные инстансов, разные уровни доступа к методам (public, protected, private). Но иногда этого может не хватать.

Читать полностью »

Это история о том, почему вы никогда не должны замалчивать ошибки, когда вы внутри транзакции в базе данных. Узнайте, о том как правильно использовать транзакции и что делать, когда их использовать — не вариант. Спойлер: речь пойдёт об advisory locks в PostgreSQL!

Я работал над проектом, в котором пользователи могут импортировать большое количество тяжёлых сущностей (назовём их товарами — products) из внешнего сервиса в наше приложение. К каждому товару при этом загружается ещё больше разнообразных связанных с ним данных с внешних API. Нередка ситуация, когда пользователю нужно загрузить сотни товаров вместе со всеми-всеми зависимостями, в итоге импорт одного товара занимает ощутимое время (30-60 секунд), а весь процесс может порядочно так затянуться. Пользователю может надоесть ждать результата и у него есть право нажать кнопку «Отмена» в любой момент и приложение должно быть полезным с тем количеством товаров, которые удалось загрузить к этому моменту.

Читать полностью »

TL;DR: Тропа SPA темна и полна ужасов. Ты можешь бесстрашно сражаться с ними… или выбрать другой путь, который приведёт тебя к нужному месту: современный Rails.

Выбираемся из кроличей норы SPA при помощи современного Rails - 1

Я вспоминаю, как думал, что Rails фокусируется на неправильной цели, когда DHH анонсировали Turbolinks в 2012 году. Тогда я был убеждён в том, что мгновенное время ответа во время взаимодействия с пользователем — это ключ к превосходному UX. Из-за возникающих задержек сети, такая интерактивность возможна, только если вы минимизируете зависимость от сети и вместо сетевых обращений поддерживаете большую часть состояния на клиенте.

Я думал, что это необходимо для приложений, над которыми я работал. И с таким мнением я перепробовал множество подходов и фреймворков для реализации одного и того же шаблона: Single-page applications (SPA). Я верил, что SPA — это будущее. Несколько лет спустя, я не уверен в том, каково же будущее, но я точно хочу найти альтернативу.
Читать полностью »

С первым днём лета! Это не только сезон отпусков (кому повезло с начальством и не приходится отдыхать в феврале), но и лучшее время для поиска работы и новых заказчиков. К тому же, завтра суббота, поэтому, если вы:

  • в Москве,
  • профессионал в Java, C# (.NET), Cloud, C++, Ruby on Rails, Test Automation
  • или менеджер разработки, специализирующийся на SaaS, Java, QA, Ruby on Rails или C# (.NET)

— нет причин не заглянуть на огонёк в коворкинг Gravity на Бауманской.

image
Ужас, который можно будет забыть, перейдя на фриланс

Ровно в девять утра мы начинаем наш очередной турнир для сильнейших менеджеров и разработчиков. Турнир не имеет строгого ограничения по времени (кроме одного — мы о нем расскажем на самом мероприятии), но ориентировочно всех этапы занимают около 5-6 часов.

Оффлайновые турниры Crossover — это глобальные мероприятия, которые проходят в один день по всему миру. Если вы читаете «Хабр» из Киева, Варшавы, Будапешта, Бухареста, Буэнос-Айреса, Стамбула или Сан-Паулу — это значит, что завтра мы проводим турниры и в ваших городах.

Читать полностью »

Здравствуй Хабр и Ruby-сообщество! Спешим сообщить, что уже совсем скоро, 10 июня 2018 года, во второй раз состоится конференция для разработчиков на Ruby и Ruby on Rails — Saint P Rubyconf 2018. Слоган конференции — «Ruby: the best parts». Место проведения — Санкт-Петербург, Корпус ИТМО на ул. Ломоносова, 9.Читать полностью »