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

Ruby on Rails *

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

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

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

Один день из жизни 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

Истории

Построение сервис-ориентированной архитектуры на Rails + Kafka

Время на прочтение8 мин
Количество просмотров6K
Привет, Хабр! Представляю вашему вниманию пост, который является текстовой адаптацией выступления Stella Cotton на RailsConf 2018 и переводом статьи «Building a Service-oriented Architecture with Rails and Kafka» автора Stella Cotton.

В последнее время отчетливо виден переход проектов от монолитной архитектуры в пользу микросервисов. В этом гайде мы узнаем основы Kafka и как событийно-ориентированный подход может улучшить ваше Rails приложение. Также мы поговорим о проблемах мониторинга и масштабируемости сервисов, которые работают через событийно-ориентированный подход.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

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

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


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

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

Простейший JSON RESTful API на Эликсир

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

Как реализовать на Эликсир JSON API endpoint без каких либо фреймворков?


От переводчика:
В статье приведён пример очень простого веб-приложения, которое можно рассматривать как Hello, World! в создании простейшего API на Эликсире.
Код примера незначительно изменён для того, чтобы соответствовать текущим версиям библиотек.
Полный код примера с изменениями можно увидеть на GitHub.



Проблемы нового языка


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

какой же будет результат?
Всего голосов 18: ↑17 и ↓1+16
Комментарии0

Установка diaspora*

Время на прочтение3 мин
Количество просмотров4K
«В жизни важен первый шаг», — слова из песни. В установке diaspora* — тоже. В diaspora* wiki для подминов написано, что запуск собственного сервера diaspora* требует технических умений и времени. А далее — инструкции по установке для некоторых популярных дистрибутивов Linux, а также для пары версий MacOS. Сейчас Windows не поддерживается.
Читать дальше →
Всего голосов 18: ↑13 и ↓5+8
Комментарии5

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

Почему валидации email регуляркой недостаточно. Проверка MX-записей с примерами на PHP и Ruby

Время на прочтение3 мин
Количество просмотров9.3K
Уж сколько раз твердили Миру… Существует давний и, вероятно, нескончаемый спор о том, какой именно регуляркой правильно и нужно проверять поле email пользователя.

Да, проверять регуляркой действительно нужно. Но ведь наши продукты работают в Сети. Так почему бы не использовать её настоящую мощь?
Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии27

Пацаны, так 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

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

Время на прочтение2 мин
Количество просмотров1.4K
Спустя некоторое время с начала разработки вашего проекта, вы можете заметить, что у вас есть несоответствия между ограничениями в базе данных и валидациями в приложении. В данной статье, я объясняю как gem database_consistency поможет вам привести в порядок вашу базу данных.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии3

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

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

Введение


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


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


WM


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

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

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

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


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

Ruby on Rails поможет сэкономить время, которое вы обычно тратите на разработку. Просто потому, что при использовании этого фреймворка кода будет меньше, а функциональность останется прежней.
Читать дальше →
Всего голосов 28: ↑12 и ↓16-4
Комментарии21

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

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

ddd-header


Введение


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


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


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

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

5+1 случай, когда спецификация REST API играет огромную роль

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

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


Что такое RESTful API?



Это миф.


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

Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии32