Как стать автором
Обновить
2.45

Ruby *

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

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

RubyRussia 2019. Юлиан Покровский: как оптимизировать монолит

Время на прочтение4 мин
Количество просмотров1.5K
Несмотря на огромное количество материалов по теме оптимизации монолита, часто хочется убежать от глубоко изучения вопроса и попробовать угадать, как сделать приложение быстрей или компактней. Хорошая новость: принцип Парето работает и здесь. На конференции RubyRussia 28 сентября Юлиан Покровский расскажет о необходимых приемах. А пара тизеров будет в этом интервью Юлиана с Григорием Петровым.

image

Чем ты занимаешься в мире IT, Ruby, твои интересы, экспертиза?
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии2

Кир Шатров: Shopify начался с Rails и здесь искренне любят этот фреймворк

Время на прочтение7 мин
Количество просмотров4.4K
На конференции RubyRussia Кир Шатров расскажет об архитектуре Shopify. Как одного из самых больших и нагруженных в мире приложений на Rails поддерживает рост бизнеса на протяжении 10 лет, не переходя на микросервисы, Elixir и другие популярные альтернативы? В традиционном интервью перед конференцией вопросы Киру задал Анатолий Зайцев, разработчик компании Evrone.

image

Расскажи, как ты начал карьеру?
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии25

RubyRussia 2019. Михаил Пронякин: безопасен ли Ruby

Время на прочтение4 мин
Количество просмотров2.2K
На конференции RubyRussia будет много докладов о том, как писать код и как делать это лучше других. Но если продукт, который выпускает ваша компания, небезопасен, то это может привести к большим проблемам. Григорий Петров обсудил эту важную тему с Михаилом Пронякиным из компании «ОНСЕК», разработчик комплексной платформы «Валарм».

image

Расскажи, чем ты занимаешься и как используешь Ruby?
Читать дальше →
Всего голосов 20: ↑14 и ↓6+8
Комментарии0

Поднимаем свой DNS-over-HTTPS сервер

Время на прочтение11 мин
Количество просмотров57K

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


DOH


До последнего времени, несмотря на очевидность уязвимости DNS трафика, который, до сих пор, по большей части, передаётся в открытом виде, для злонамеренных действий со стороны провайдеров, стремящихся повысить своих доходы за счёт встраивания рекламы в контент, государственных силовых органов и цензуры, а также просто преступников, процесс усиления его защиты, несмотря на наличие различных технологий, таких как DNSSEC/DANE, DNScrypt, DNS-over-TLS и DNS-over-HTTPS, буксовал. И если серверные решения, а некоторые из них существуют уже довольно долгое время, широко известны и доступны, то поддержка их со стороны клиентского программного обеспечения оставляет желать много лучшего.

Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии29

Истории

Григорий Петров: работа с сетью в Ruby

Время на прочтение7 мин
Количество просмотров3.2K
28 сентября на конференции RubyRussia DevRel компании Evrone Григорий Петров расскажет о том, как общаются микросервисы. В сегодняшнем интервью Иван Соловьев поговорил с Григорием о теме его предстоящего выступления и не только об этом.

image

Расскажи о себе, чем ты занимаешься в Evrone?
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии0

Иван Шаматов: как написать деньги

Время на прочтение5 мин
Количество просмотров2.2K
Привет!

Мы готовимся к предстоящей конференции RubyRussia 2019 (вы уже отметили в календаре 28 сентября?) и беседуем с нашими спикерами о жизни, комьюнити и программировании. В сегодняшнем интервью Феликс Яснопольский из Evrone общается с Иваном Шаматовым: лидером Saint P Ruby Community (тут можно присоединиться к уютному чату сообщества в Telegram) и VP of engineering в Cybergizer.

image

О чем будет твое выступление на предстоящей конференции?
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии0

Takashi Kokubun: как заставить приложения на Ruby работать быстрее

Время на прочтение6 мин
Количество просмотров2.9K
Центральной российской Ruby конференции 28 сентября исполняется 10 лет. В этом году у RubyRussia новая площадка, целых 4 потока отборных докладов, общение и, конечно, легендарное афтепати! Среди спикеров Yukihiro Matsumoto, Takashi Kokubun, Xavier Noria, Nick Sutterer, Genadi Samokovarov и не только!

В рамках подготовки мы беседуем со спикерами о Ruby, работе и жизни. Сегодня публикуем материал, в котором Дмитрий Матвеев (project manager в Evrone) задает вопросы Takashi Kokubun.

image
Спикер RubyRussia 2019, оптимизатор JIT-компилятора Ruby, поддерживает Haml и ERB, бэкэнд-инженер в ArmTreasure Data.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии1

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

Время на прочтение19 мин
Количество просмотров15K

Введение


В рамках предыдущих статей мы описали: область применения, методологические основы, пример архитектуры и структуры. В данной статье, я хотел бы рассказать как описывать процессы, о принципах сбора требований, чем отличаются бизнес требования от функциональных, как перейти от требований — к коду. Рассказать о принципах применения Вариантов Использования (Use Case) и как они нам могут помочь. Разобрать на примерах варианты реализации шаблонов проектирования Interactor и Service Layer.


likeyourgrandmom


Примеры приведенные в статье даны с использованием нашего решения LunaPark, оно поможет вам с первыми шагами в описанных подходах.


Отделяем функциональные требования от бизнес требований.


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


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


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

Готовим пирог с капустой
Всего голосов 14: ↑12 и ↓2+10
Комментарии6

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

Время на прочтение22 мин
Количество просмотров2.2K
Мне надоело смотреть на прошлое. Есть много руководств по воссозданию внешнего облика исторических артефактов, но часто мы забываем, что это творческий акт. Возможно, мы слишком привязаны к своим экранам, слишком много значения придаём внешнему облику. Давайте вместо этого попробуем услышать что-то из прошлого.

Богатая литература по археоакустике и звуковым ландшафтам помогает воссоздать звук места, каким он был (например, см. Виртуальный Собор Святого Павла или работу Джеффа Вейча по древней Остии). Но мне интересно «озвучить» сами данные. Я хочу определить синтаксис для представления данных в виде звука, чтобы эти алгоритмы можно было использовать в исторической науке. Друкер сказал знаменитую фразу, что «данные» — это на самом деле не то, что дано, а скорее то, что захвачено, трансформировано, то есть 'capta'. При озвучивании данных я буквально воспроизвожу прошлое в настоящем. Поэтому на передний план выходят допущения и преобразования этих данных. Полученные звуки являются «деформированным исполнением», которое заставляет по-новому услышать современные пласты истории.

Я хочу услышать смысл прошлого, но знаю, что это невозможно. Тем не менее, когда я слышу инструмент, то могу физически представить музыканта; по отзвукам и резонансам могу различить физическое пространство. Я чувствую бас, могу двигаться в ритме. Музыка охватывает моё тело, всё воображение. Ассоциации со слышанными ранее звуками, музыкой и тонами создают глубокий темпоральный опыт, систему воплощённых взаимоотношений между мной и прошлым. Визуальность? У нас так давно существуют визуальные представления о прошлом, что эти грамматики почти потеряли художественную выразительность и перформативный аспект.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Один день из жизни QA-automation

Время на прочтение6 мин
Количество просмотров6K

Как пришлось стать немногой qa-автоматизитором: что при этом ощутил, пережил и про дивную архитектуру и инфраструктуру автоматического тестирования глазами проходившего мимо разработчика.

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии2

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

Время на прочтение2 мин
Количество просмотров1.5K
Если вы пишите тесты для вашего проекта и используете factory_bot для генерации тестовых данных, то представляю вам гем factory_trace, который поможет вам поддерживать ваши factories & traits в актуальном состоянии.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии0

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

Время на прочтение2 мин
Количество просмотров1.3K


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

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

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

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


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

Оказывается, я не одинок в этой проблеме. Приложения Ruby могут использовать много памяти. Но почему? Согласно Heroku и Нейту Беркопеку, в основном раздутие связано с фрагментацией памяти и чрезмерным распределением по кучам.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии3

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

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

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


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

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

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

Rails + Postgres + bindings

Время на прочтение3 мин
Количество просмотров5.1K
image

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

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

Время на прочтение13 мин
Количество просмотров13K

Введение


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


Blacjack & hockers


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

Зачем нам еще один велосипед?
Всего голосов 14: ↑14 и ↓0+14
Комментарии18

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

Время на прочтение5 мин
Количество просмотров72K


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

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

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

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

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

image
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии9

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

Время на прочтение2 мин
Количество просмотров2.6K

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

Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии2

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

Время на прочтение2 мин
Количество просмотров3.6K
Каждый рубист, поработавший с Ruby On Rails знаком с ORM ActiveRecord. Обсудим одну из предложенных из коробки валидаций, а именно, валидации на уникальность, и почему database_validations gem спасет консистенцию вашей базы данных.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии5

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

Работа

Программист Ruby
7 вакансий
Ruby on Rails
9 вакансий