Как стать автором
Поиск
Написать публикацию
Обновить
1.47

Ruby *

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

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

Rails + Postgres + bindings

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

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

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

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

Введение


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


Blacjack & hockers


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Введение


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


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


WM


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

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

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

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


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


А еще мы много чего знаем в 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 мин
Количество просмотров4K
6 октября в рамках конференции RubyRussia был проведен круглый стол «Хайринг, хантинг, обучение и развитие рубистов. HR-уголок». Более 30 участников собралось поговорить о наболевшем: собеседования, найм, адаптацию и развитие сотрудников. В круглом столе участвовали эйчары, тимлиды, технические директора — все, кто причастен к hr-процессам в компании.

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

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

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

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


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

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

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

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

ddd-header


Введение


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


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


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

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

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

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

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

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

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

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

Введение


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


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


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

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

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

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


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

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

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

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

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

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

Как мы собрали 12-этажный стек технологий и не сошли с ума

Время на прочтение8 мин
Количество просмотров7.1K
Appodeal — это компания из ~100 человек, которые работают в Москве, Сан-Франциско, Барнауле, Луцке, Кирове, Барселоне, а с июня 2018 года — еще и в Минске.

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

image

Для тех, кто еще не знаком с Ad Tech — это область работы технологичных компаний, которые работают в сфере рекламы. Когда рассказываешь кому-то, что ты работаешь в сфере мобильной рекламы, то люди часто реагируют скептически — видимо, на ум приходит надоедливая реклама «Азино три топора». На самом деле это лишь верхушка айсберга, и вся эта “дикая” реклама не имеет никакого отношения к настоящему рекламному бизнесу.
Читать дальше →

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

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



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

Интервью со спикером конференции RubyRussia Маркусом Ширпом

Время на прочтение5 мин
Количество просмотров970
Всем привет! Чуть больше, чем через неделю в Москве пройдет конференция RubyRussia. В сегодняшнем интервью разработчик из Evrone Михаил Моргунов пообщался с одним из наших спикеров — Маркусом Ширпом, создателем популярного инструмента Ruby Mutation Testing.


Первый вопрос — про Mutant. Что нам нужно знать об этом инструменте? О чем будет доклад на RubyRussia?
Читать дальше →

Идеала нет: как я искал язык программирования для себя

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


От переводчика: этот пост — несколько сокращенный перевод оригинальной статьи Гала Шлезингера, опытного frontend-разработчика. Ему очень нравится программировать, а его хобби — изучение различных (и порою весьма неожиданных) языков программирования как для рабочих целей, так и для собственных pet-проектов. О достоинствах и недостатках нескольких из них Гал и рассказывает в этом материале.

Несмотря на то что на работе я чаще всего работаю с Java, JS и Ruby, мне нравится изучать новые языки и фреймворки. Мне кажется, что постоянное обучение помогает формировать новые интересные идеи, которые можно использовать при необходимости для решения определенной задачи. Кроме того, функциональное программирование помогает понять больше про объектно-ориентированное программирование, а постоянная работа с Rails позволяет изучить многие нюансы тестирования (конечно, если вы будете практиковаться). Проблема в том, что рано или поздно в процессе изучения других языков вы начинаете задумываться: а есть ли среди них идеальный, где были бы собраны все полезные функции, найденные вами в других?

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