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

Ruby *

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

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

Неофициальный гайд по Active Admin

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

Статья про Ruby в блоге компании ДомКлик! Как так получилось, что в молодую компанию завезли мертвый язык? Секрет в том, что на Ruby можно быстро написать и протестировать бизнес-идею. И делается это не без помощи Rails и Active Admin — библиотеки, которая позволяет быстро создать админку с минимальными затратами сил и времени.



Часто можно встретить мнение, что Active Admin хорош только для 15-минутного блога. Мы в ДомКлик считаем (и доказываем на практике), что из этой библиотеки можно выжать намного больше.


Я расскажу про некоторые подходы, которые мы применяем при работе с Active Admin.

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

Как работают профайлеры в Ruby и Python?

Время на прочтение8 мин
Количество просмотров7K
Перевод статьи подготовлен в преддверии старта продвинутого курса «Разработчик Python».

Оригинал статьи можно прочитать тут.





Всем привет! В качестве аперитива к профайлеру на Ruby я хотела рассказать о том, как работают уже существующие профайлеры на Ruby и Python. Также это поможет дать ответ на вопрос, который мне задает множество людей: «Как написать профайлер?»

В этой статье мы сфокусируемся на профайлерах процессора (а не, допустим, профайлерах памяти/кучи). Я расскажу о некоторых базовых подходах к написанию профайлера, приведу примеры кода и покажу много примеров популярных профайлеров на Ruby и Python, а также расскажу, как они работают под капотом.
Читать дальше →

Миграции данных в Ruby On Rails

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

img


TL;DR Пожалуйста, выносите код миграции данных в Rake-задачи или пользуйтесь полноценными гемами в стиле миграций схемы. Покрывайте тестами эту логику.

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

Ruby Digest 2020·07·2

Время на прочтение4 мин
Количество просмотров1.7K
Ruby Digest 2020 с 16 по 31 июля: новинки, новости, медиа, релизы, статьи, обучение.
Смотрим, что интресного было во второй половине июля вокруг Ruby.


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

Сложности работы с ANTLR: пишем грамматику Ruby

Время на прочтение11 мин
Количество просмотров3.6K
image В «Ростелеком-Солар» мы разрабатываем статический анализатор кода на уязвимости и НДВ, который работает в том числе на деревьях разбора. Для их построения мы пользуемся оптимизированной версией ANTLR4 – инструмента для разработки компиляторов, интерпретаторов и трансляторов.

В репозитории можно найти грамматики множества языков программирования. Однако в нем отсутствует грамматика Ruby, которую, по всей видимости, никто так и не реализовал. Есть только грамматика похожего самодельного языка, парсящая лишь простейшие случаи. Это неудивительно, ведь грамматику Ruby сложно реализовать, так как язык обладает нетривиальным синтаксисом. Но она очень пригодилась бы тем, кто, например, захочет написать свой язык и задумается, как это сделать. Или тем, кому нужно решить технические сложности, рассмотренные в нашей статье. Ну что же – придется писать новую грамматику, чем прямо здесь и займемся.
Читать дальше →

Ruby Digest 2020·07·1

Время на прочтение3 мин
Количество просмотров2.2K
Ruby Digest 2020 с 1 по 15 июля: релизы, статьи, мультимедиа, обучение. Разбираемся,
что происходило в первой половине июля вокруг языка Ruby.

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

Турнирная сортировка

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

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

Новый взгляд на Fullstack-разработку с фреймворком Ruby on Rails

Время на прочтение12 мин
Количество просмотров9.2K
Можно ли всерьёз обсуждать fullstack-разработку? Если смотреть в сторону больших фреймворков для frontend и для backend, то разговор про fullstack выглядит сомнительно. Предлагаю посмотреть на термин fullstack с точки зрения Ruby on Rails и прежних более простых принципов реализации интерактивности на классических веб-страницах. Представляю обзор frontend-возможностей, предусмотренных во фреймворке Ruby on Rails или связанных с ним.

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

Как мы проводим собеседования в Барселоне

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

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


Все, что написано ниже, может вам подойти, а может — и нет. Я не претендую на истину в последней инстанции, я просто рассказываю, к чему пришли мы, и почему нам это нравится. Также я поделюсь примерами паттернов поведения и кода, которые практически однозначно решают за, или против, кандидата — невзирая почти ни на что остальное.


Мы — продуктовая компания, нам не нужны вахтовые работники на три месяца. Это тоже накладывает отпечаток на процесс отбора. Мы не в состоянии конкурировать по зарплатам с молодыми заинвестированными стартапами (это не значит, что мы работаем за копейки, просто перекупить талантливый мозг не получится). Зарплата выше средней по рынку, но можно найти галеры сразу тысяч на десять годовых щедрее. Нам приходится искать свой путь завлечения специалистов, и я о нем расскажу.

Поехали.

Расшифровка моего интервью с автором Ruby

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

Во время осенней конференции Ruby Russia я, на правах организатора, поймал в кулуарах автора Ruby и устроил ему часовой допрос интервью. Вопросы старался выбирать незаезженные, чтобы ответы были нам полезны, а не “за все хорошее против всего плохого”. И дедушка таки смог меня, старого плюсового разработчика, удивить! Под катом — расшифровка интервью, нетривиальное мнение Юкихиро Мацумото про типы вообще и руби в частности, а также возможность все это обсудить в комментах. На связи я с руби-командой Evrone наперевес. Мацумото мы приглашаем в Москву регулярно, есть возможность заранее придумать интересные вопросы для будущих интервью.

Lowkiq. Зачем мы его сделали?

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

Lowkiq — это новый сервер упорядоченной обработки фоновых задач для ruby и redis. Он был создан в компании BIA-Technologies, разрабатывающей логистические решения.



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

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

Pry → REPL для Ruby, который сто́ит того

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

REPL


REPL в мире наколенной разработки расшифровывается как Read → Evaluate → Print Loop. Зачитали, выполнили, напечатали, и так много раз.


Ruby, как и многие другие языки, поставляется с собственной реализацией REPL под названием irb. Который, хотя и справляется с примитивными задачами, все-таки полностью удовлетворить запросы взыскательного разработчика не может. Но существует и гораздо более развитая альтернатива: pry.


Pry Logo

Несколько рецептов правильной прожарки Pry в домашних условиях

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

Кастомные SwiftLint Rules

Время на прочтение3 мин
Количество просмотров6K
Привет, Habr! Меня зовут Алексей, я iOS Developer в компании FINCH. Скоро Новый год — самое время чтобы начать жить по-другому, а поможет в этом такая классная штука как SwiftLint. В статье я расскажу, почему ее обязательно нужно внедрять во все проекты, включая legacy и pet-проекты, а также покажу как выжать из этого инструмента максимум, используя регулярные строки.
Читать дальше →

Находим потерянные файлы в нескольких Xcode таргетах

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

Привет, я Саня — iOS-разработчик в Surf, и в этой статье поделюсь своим способом решения головной боли, которая возникает при работе на проекте с несколькими таргетами.


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

Еще один DSL для валидаций

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

Недавно я написал небольшой гем для валидаций и хотел бы поделиться с вами его реализацией.


Идеи, которые преследовались при создании библиотеки:


  • Простота
  • Отсутствие магии
  • Легкость в освоении
  • Возможность кастомизации и минимум ограничений.

Почти все эти пункты завязаны на первом — простоте. Итоговая реализация невероятно маленькая, поэтому я не отниму у вас много времени.


С исходным кодом можно ознакомиться здесь.

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

С чего начинается создание маркетплейса. Часть вторая

Время на прочтение4 мин
Количество просмотров4.8K
Всем привет. В своей прошлой статье “С чего начинается создание маркетплейса. Часть первая” я написал об общих вопросах создания маркетплейса. Один из пунктов был Бизнес модель. Именно на этом сегодня я и хочу остановиться более подробно. Расскажу вам о трех бизнес кейсах, через которые прошла наша команда из Синдикода (Syndicode). Для всех бизнес кейсов разработка для бэкенда велась на Ruby (Ruby on Rails) и React для фронтенда. Но подробнее о технологиях и процессе разработки я расскажу в последующих статьях. Сегодня же я буду делиться успехами и провалами бизнес моделей, с которыми мне довелось столкнуться.
Читать дальше →

Размер имеет значение

Время на прочтение5 мин
Количество просмотров4.1K
И черт меня дернул написать материал «Фреймворки — больше минусов чем плюсов». Точнее назвать материал именно так. Пылился он себе, пылился в песочнице, но вот в прошлом месяце его оттуда извлекли и… такого количества комментариев я не ожидал.

Сразу стало понятно, что ответить всем не получится. Честно попытался сделать, но быстро сообразил, что проще написать еще один материал. Чем сейчас и занимаюсь. И так.
Читать дальше →

Спецификации сигнатур методов в Ruby с синтаксисом как в Elixir

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

Спецификации сигнатур функций (Typespecs)


Эликсир позаимствовал из Эрланга многое. Например, оба — языки с динамической
типизацией (что прекрасно, что бы вам там категоричные строгие типы в касках
не говорили). При этом, в обоих языках присутствуют расширенные возможности для
проверки типов, когда это надо.


Вот введение в typespecs, а вот здесь можно ознакомиться с ними подробнее.


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


@spec concat(binary(), any()) :: {:ok, binary()} | {:error, any()}
def concat(origin, any), do: origin <> IO.inspect(any)
Давайте сделаем так же в ruby

С чего начинается создание маркетплейса. Часть первая

Время на прочтение4 мин
Количество просмотров28K
На сегодняшний день такой вид ИТ бизнеса, как маркетплейс, получает все большее распространение. И этому есть вполне очевидные причины. Одна из них — это очень высокая ликвидность, а также большой потенциал к последующему росту, что при грамотном подходе может принести очень впечатляющую прибыль. Именно об этом грамотном подходе я сегодня и хочу с вами поговорить.
Читать дальше →

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