Обновить
2.5

Ruby *

Динамический высокоуровневый язык программирования

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

factory_trace gem поможет почистить ваши factories

Время на прочтение2 мин
Охват и читатели1.6K
Если вы пишите тесты для вашего проекта и используете factory_bot для генерации тестовых данных, то представляю вам гем factory_trace, который поможет вам поддерживать ваши factories & traits в актуальном состоянии.
Читать дальше →

Evrone и DataArt проведут в Воронеже серию митапов

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


Первая встреча, посвященная языку Ruby, пройдет 20 апреля в отеле Ramada Plaza. На следующей, в начале июня, речь пойдет о машинном обучении, далее — два митапа о Java и фронтенд-разработке и большая итоговая конференция.

Компания Evrone известна, прежде всего, проведением московской конференции RubyRussia. На этот DataArt и Evrone решили организовать большое событие для Ruby-сообщества за пределами Москвы или Санкт-Петербурга.
Читать дальше →

Что раздувает память в Ruby?

Время на прочтение9 мин
Охват и читатели13K
У нас в Phusion работает простой многопоточный HTTP-прокси на Ruby (раздаёт пакеты DEB и RPM). Я видел на нём потребление памяти 1,3 ГБ. Но это безумие для stateless-процесса…


Вопрос: Что это? Ответ: Использование памяти процессом Ruby с течением времени!

Оказывается, я не одинок в этой проблеме. Приложения Ruby могут использовать много памяти. Но почему? Согласно Heroku и Нейту Беркопеку, в основном раздутие связано с фрагментацией памяти и чрезмерным распределением по кучам.
Читать дальше →

Как я отказался от Ruby в пользу Python, работая над бэкендом

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


Перевели для вас статью Бенуа Зен, разработчика ПО в компании Sqreen. Бенуа работает над backend веб-сервиса и недавно перешел с Ruby на Python.

В 2008 году, когда я еще учился на разработчика ПО, два моих друга решили основать компанию, назвав ее Feedbooks. Их целью было создание качественных электронных книг, которые любой человек мог бы быстро найти и загрузить (при желании — поделиться со знакомыми). Проект представлялся им как цифровая библиотека самиздата.

Веб-сайт, который стал бы лицом сервиса, должен был быть быстрым, эффективным и простым в управлении. Примерно в то время появилось демо-видео Ruby on Rails «Как создать блог за 15 минут», после чего основатели твердо решили работать именно с ним.

Rails + Postgres + bindings

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

Привет друзья. Ни для кого не секрет, что работая на крупных проектах со сложной логикой, Active Record становится не помощником, а обузой. Представьте, что вам необходимо сделать очень сложный запрос для PostgreSQL нативным образом (на чистом SQL), где должно присутствовать некоторое количество переменных. Но в Rails есть одна неприятная мелочь, функционал выполнения нативных запросов не позволяет использовать именованные биндинги. Но решение есть :) Опробовано и успешно внедрено на проекте с Rails API 5.2 + Ruby 2.6.0 + Postgres 11.
Читать дальше →

Поваренная книга разработчика: DDD-рецепты (4-я часть, Структуры)

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

Введение


Итак, мы уже определились с областью применения, методологией и архитектурой. Перейдем от теории к практике, к написанию кода. Хотелось бы начать с шаблонов проектирования, которые описывают бизнес логику — Service и Interactor. Но прежде чем приступить к ним, изучим структурные паттерны — ValueObject и Entity. Разрабатывать мы будем на языке ruby. В дальнейших статьях разберем все паттерны, необходимые для разработки с использованием Вариативной архитектуры. Все наработки, являющиеся приложениями к данному циклу статей, соберем в отдельный фреймворк.


Blacjack & hockers


И мы уже подобрали подходящее название — LunaPark.
Текущие наработки выложенны на Github.
Разобрав все шаблоны, соберем один полноценный микросервис.

Зачем нам еще один велосипед?

Пацаны, так Ruby умер или нет?

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


Последнее время, когда я говорю с разработчиками или компаниями, часто слышу одну и ту же историю разными словами — «мы писали на Ruby, но сейчас переезжаем». С одной стороны, ничего удивительного. Разработка — дело изменчивое, всегда появляется что-то новое, каждый день надо тратить кучу мозгов, чтобы оставаться актуальным.

Но при этом существуют же некие преданность технологии и даже культ инструмента. Скажи пхп-шнику, что пора переезжать на .NET, услышишь «PHP отличный, полмира на нем пишет», или просто получишь в лоб.

Что же не так с Ruby, и куда делась его взрывная популярность? Я поговорил с несколькими рубистами. Например, Максимом Индыковым из Staply, чья команда переезжает с Ruby на Go, и с Алексеем Кузнецовым из GeekBrains, компании, которая начиналась с курсов по Ruby, а сейчас отказалась от них полностью.
Читать дальше →

Решаем проблемы типов данных в Ruby или Make data reliable again

Время на прочтение7 мин
Охват и читатели6K
В этой статье я хотел бы рассказать о том, какие проблемы с типами данных есть в Ruby, с какими проблемами столкнулся я, как их можно решить и как сделать так, чтобы на данные, с которыми мы работаем, можно было положиться.

image
Читать дальше →

Как прокачать belongs_to чтобы работал в два раза быстрее (database_validations gem)

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

В данной статье, я покажу почему нужно использовать db_belongs_to из database_validations гема вместо привычного нам belongs_to.

Читать дальше →

Настоящая валидация на уникальность

Время на прочтение2 мин
Охват и читатели3.9K
Каждый рубист, поработавший с Ruby On Rails знаком с ORM ActiveRecord. Обсудим одну из предложенных из коробки валидаций, а именно, валидации на уникальность, и почему database_validations gem спасет консистенцию вашей базы данных.
Читать дальше →

Соответствие между ограничениями базы данных и валидациями

Время на прочтение2 мин
Охват и читатели1.5K
Спустя некоторое время с начала разработки вашего проекта, вы можете заметить, что у вас есть несоответствия между ограничениями в базе данных и валидациями в приложении. В данной статье, я объясняю как gem database_consistency поможет вам привести в порядок вашу базу данных.
Читать дальше →

Поваренная книга разработчика: DDD-рецепты (3-я часть, Архитектура приложения)

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

Введение


В рамках предыдущих статей мы выделили область применения подхода и рассмотрели основные методологические принципы Domain Driven Design.


В данной статье я хотел бы обозначить основные современные подходы к построению архитектуры корпоративных систем: Supple, Screaming, Clean и дать им свою четкую интерпретацию в виде полноценного готового решения.


WM


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

Читать дальше →

Большая конференция NIXMultiConf (Харьков)

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


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


А еще мы много чего знаем в IT и делимся нашими знаниями вот уже больше 6 лет. Только представьте, первая конфа — ThinkPHP #1 — в линейке Никсовых конференций прошла 30 мая 2012-го! Да-да, это когда доллар был по 8, а айтишников только привыкали называть айтишниками, а не компьютерщиками :).

С тех пор мы обросли 8 направлениями, провели 35 конференций, презентовали около 105 докладов, ответили в среднем на 315 вопросов из зала, совершили 2 переезда на новую локацию, и вот теперь готовы не только к залу побольше, но и к формату поудобнее.

В ноябре, а именно 18 числа, мы проводим большую Никсовую мультиконференцию. ThinkPHP, Sync.NET, ThinkAndroid, WordPress Kharkiv, RubyRoars, ThinkPM — все эти направления в один день, на одной площадке, на одной волне.
Читать дальше →

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

Хайринг, хантинг, обучение и развитие рубистов. HR-уголок на конференции RubyRussia-2018

Время на прочтение6 мин
Охват и читатели4.2K
6 октября в рамках конференции RubyRussia был проведен круглый стол «Хайринг, хантинг, обучение и развитие рубистов. HR-уголок». Более 30 участников собралось поговорить о наболевшем: собеседования, найм, адаптацию и развитие сотрудников. В круглом столе участвовали эйчары, тимлиды, технические директора — все, кто причастен к hr-процессам в компании.

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

image
Читать дальше →

Чем хорош Ruby on Rails и как он ускоряет разработку

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


Этот пост — перевод статьи программиста Кшиштофа Копидловски, посвященной разбору преимуществ Ruby on Rails. Материал будет интересен в первую очередь начинающим программистам и уж затем — профессионалам.

Ruby on Rails поможет сэкономить время, которое вы обычно тратите на разработку. Просто потому, что при использовании этого фреймворка кода будет меньше, а функциональность останется прежней.
Читать дальше →

Поваренная книга разработчика: Domain Driven Design рецепты ( 2-я часть, структура и взаимодействие )

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

ddd-header


Введение


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


В данной статье я хотел бы сделать краткий обзор основных принципов DDD, а также поделиться личным опытом их применения. Более подробно будет рассказано о коммуникационных и структурных подходах с примерами их реализации.


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

Читать дальше →

Тестирование приложения на Go как черный ящик при помощи Rspec

Время на прочтение6 мин
Охват и читатели3.7K
Хорошо написанные тесты значительно уменьшают риск “поломать” приложение при добавлении новой фитчи или исправлении ошибки. В сложных системах, состоящих из нескольких взаимосвязанных компонентов, наиболее сложным является тестирование их точек соприкосновения.

В этой статье я расскажу о том как мы столкнулись со сложностью написания хороших тестов при разработке компонента на Go и как решали эту задачу используя библиотеку RSpec в Ruby on Rails.
Читать дальше →

Поваренная книга Ruby-разработчика: Domain Driven Design рецепты ( 1-я часть, область применения )

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

Введение


Я хотел бы рассказать об опыте применения практик DDD к существующему Ruby on Rails проекту. Изначально, мы имели монолит, который писался 10 лет. Основная трудность проекта была в достаточно сложных процессах, и высокой связанности. Нам удалось не только декомпозировать приложение на отдельные сервисы, но и существенно повысить читаемость кода, сделать описываемые процессы прозрачными.


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


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

Читать дальше →

Чарльз Наттер о динамических языках в JVM на jug.msk.ru

Время на прочтение2 мин
Охват и читатели3.5K
На очередной встрече московского сообщества Java-разработчиков jug.msk.ru, прошедшей 4 октября 2018 года, Чарльз Наттер рассказал о технологиях, используемых JRuby и другими динамическими языками для JVM.


Читать дальше →

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

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

Как вы попали в мир программирования и Ruby?

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

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

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