Обновить
2.5

Ruby *

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

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

Продвинутые перечисления с Ruby

Время на прочтение9 мин
Охват и читатели18K
Перечисления (enumeration) по определению это — «действие упоминания некоторого количества чего-либо один за одним». В программировании, вместо упоминания, мы выбираем любое действие, которое хотим произвести, будь то простой вывод на монитор или выполнение некоторого рода выборки и/или преобразования над элементом.

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

RailsClub 2017: ждем всех рубистов 23 сентября в Москве

Время на прочтение5 мин
Охват и читатели1.8K
Всем привет! Соскучились по нам? ) Мы уже готовимся к новой встрече. Сегодня расскажем о том, что будет на RailsClub 2017 и о том, как еще можно попасть в программу!

23 сентября, конгресс-центр Технополис Москва. Регистрация на сайте.

Итак, что будет:

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

RubyMine 2017.2: Docker Compose, автокоррекции RuboCop в редакторе, улучшенный VCS

Время на прочтение3 мин
Охват и читатели4.2K
Здравствуй, Хабр! На днях мы выпустили RubyMine 2017.2, новую версию нашей IDE для Ruby и Rails, и спешим рассказать о новинке.



  • Docker Compose
  • Отладка приложений в Docker Compose
  • Автокоррекции RuboCop
  • “Хлебные крошки” для Ruby
  • Улучшения поддержки JavaScript
  • Новое в VCS
  • Пользовательский интерфейс
  • Другие улучшения
Читать дальше →

Создание движка для блога с помощью Phoenix и Elixir / Часть 9. Каналы

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


От переводчика: «Elixir и Phoenix — прекрасный пример того, куда движется современная веб-разработка. Уже сейчас эти инструменты предоставляют качественный доступ к технологиям реального времени для веб-приложений. Сайты с повышенной интерактивностью, многопользовательские браузерные игры, микросервисы — те направления, в которых данные технологии сослужат хорошую службу. Далее представлен перевод серии из 11 статей, подробно описывающих аспекты разработки на фреймворке Феникс казалось бы такой тривиальной вещи, как блоговый движок. Но не спешите кукситься, будет действительно интересно, особенно если статьи побудят вас обратить внимание на Эликсир либо стать его последователями.

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

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

Анонс Ruby Meetup #6

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

Традиционная встреча рубистов с докладами, общением и пиццей состоится 20 июля в офисе компании Rambler&Co!
Читать дальше →

Ruby on Rails соглашение. Часть 4

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


Цените интегрированные системы


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

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

Именно упор на расширение возможностей отдельного разработчика подталкивает нас к интегрированным системам. Интегрированная система позволяет убрать ненужные абстракции, уменьшить дублирование между слоями (например, использовать одни и те же шаблоны на сервере и на клиенте), а самое главное — до последнего не допустить перехода к распределенной архитектуре.
Читать дальше →

Развертывание Redmine с помощью Capistrano

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


Это вторая часть моего руководства о том, как самостоятельно администрировать Redmine в долгосрочной перспективе. Первая часть была посвящена управлению собственной версией Redmine с помощью Git (ссылка на перевод).


Имея собственный репозиторий Redmine, пришло время ...

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

Анонс RamblerElixir #3

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

Приглашаем разработчиков, тимлидов и всех, кто так или иначе связан с разработкой на Elixir, принять участие в RamblerElixir Meetup, который состоится 14 июня 19:00, в среду, на уютной мансарде Rambler&Co.
Читать дальше →

Ruby on Rails соглашение. Часть 3

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


Ни одна парадигма


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

В Rails — это не так. Это не один, идеальный крой ткани. Это одеяло. Совокупность многих разных идей и даже парадигм. Многие из них, как правило, противоречат друг другу, если их сравнивать друг с другом и один за другим. Но это не то что мы пытаемся сделать. Это не одно большое соревнование, в котором должен быть объявлен один победитель.

Возьмите шаблоны, с которыми мы создаем представление в нашем Rails-MVC-пироге. По умолчанию все хелперы, которые позволяют нам извлекать код из этих шаблонов, — это просто большой набор функций! Это единое пространство имен. О, потрясение и ужас, это как PHP-суп!
Читать дальше →

Как правильно писать логи (?)

Время на прочтение4 мин
Охват и читатели70K
Тема может и банальная, но когда программа начинает работать как то не так, и вообще вести себя очень странно, часто приходится читать логи. И много логов, особенно если нет возможности отлаживать программу и не получается воспроизвести ошибку. Наверно каждый выработал для себя какие то правила, что, как и когда логировать. Ниже я хочу рассмотреть несколько правил записи сообщений в лог, а также будет небольшое сравнение библиотек логирования для языков php, ruby и go. Сборщики логов и системы доставки не будут рассматриваться сознательно (их обсуждали уже много раз).
Читать дальше →

Ruby on Rails соглашение. Часть 2

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


Соглашение над конфигурацией


Один из ранних девизов Rails звучал так: «Ты не красивая и уникальная снежинка». Девиз гласил, что отказываясь от индивидуальности можно обойти решение тривиальных проблем и добиться более быстрого прогресса в областях, которые действительно значимы.

Кого волнует, в каком формате описываются ваши первичные ключи в базе данных? Действительно ли это важно, если речь идет о «id», «postId», «posts_id» или «pid»? Достойно ли это решение постоянного обсуждения? Нет.
Читать дальше →

Лучший способ загрузки файлов в Ruby с помощью Shrine. Часть 2. Загрузчик

Время на прочтение5 мин
Охват и читатели3.2K
Это вторая часть из серии постов о Shrine. Цель этой серии статей – показать преимущества Shrine над существующими загрузчиками файлов.



В предыдущем посте я говорил о том что мотивировало меня на создание Shrine. В этой статье я хочу показать вам фундамент, на котором основан Shrine — хранилище, загрузчик и загруженные файлы.
Читать дальше →

Лучший способ загрузки файлов в Ruby с помощью Shrine. Часть 1

Время на прочтение10 мин
Охват и читатели6.5K
Это первая часть из серии постов о Shrine. Цель этой серии статей – показать преимущества Shrine над существующими загрузчиками файлов.


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

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

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

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

Высокопроизводительные сервисы на Crystal, введение от новичка

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

Введение


DISCLAIMER

мнение автора может не совпадать с вашим мнением, добро пожаловать в комментарии.


В доисторические времена высокопроизводительные Web-приложения можно было писать, в основном, на C или C++. Поддерживать такие приложения было не просто дорого, а очень дорого.


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


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


Если же немного снизить планку надежности, то здесь перед нами широкий выбор, включая Node, Go, Nim и Crystal. Можно взглянуть на типичные сравнительные данные по производительности, включая более обширные.


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


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


Если нам нужно больше запросов в секунду, то выбор на сегодня — Go. Эта среда программирования обладает великолепными характеристиками производительности, поддержку со стороны крупных компаний и немалое число активных проектов.


Так почему же Crystal?

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

Из Rails 4 в Rails 5: как это было

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

Жил-был поставщик облачных сервисов и захотелось ему не отставать от прогресса. И решил он обновиться с Rails 4.2.8 до Rails 5.0.2. А как это было, что по пути отвалилось, что по лбу вдарило с ускорением и какой опыт из этого вынесли — читайте под катом.

Узнать как же это было

Ruby on Rails соглашение. Часть 1

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


Феноменальная популярность Ruby on Rails в значительной степени обусловлена переходом к новым трендам и технологиям в нужный момент времени.

Но, к сожалению, технические преимущества с течением времени становятся не актуальными. Поэтому необходимо подробное объяснение того, каким образом RoR не только продолжает оставаться актуальным, но расширяет свое влияние и сообщество.
Мое предположение, что несокрушимым фактором было и остается его противоречивое соглашение.

Соглашение активно развивалось последние десять лет, но большая часть основных идей осталась не тронута. Я не претендую на некую фундаментальную уникальность этих идей. Главное достижение Rails — это объединение вокруг себя сильного сообщества людей с нестандартным подходом и мировоззрением о природе программирования и программистах.
Читать дальше →

Не Ruby единым

Время на прочтение6 мин
Охват и читатели11K
Ведущий разработчик Александр Бугаев – один из Ruby-евангелистов в EPAM. Ему нравятся сложные задачи, он готов работать по ночам, творить дома или на хакатонах. Александр рассказал о своем авантюрном пути в программировании. О новых Ruby on Rails-проектах уровня enterprise, которым нужны разработчики. А также о том, почему не бывает универсальных решений.

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

RubyMine 2017.1: Docker, RuboCop, автогенерация Rails-тестов, улучшения для Puppet

Время на прочтение3 мин
Охват и читатели4.5K
Привет, Хабр! Недавно мы выпустили RubyMine 2017.1, новую версию нашей IDE для Ruby и Rails, и уже обновили её до более стабильной версии 2017.1.1. Пора рассказать о том, что в ней нового.


  • Docker
  • Создание RVM-гемсетов
  • RuboCop
  • Мгновенное создание Rails-тестов
  • Улучшения для разработки модулей Puppet
  • Структура проекта Puppet
  • Улучшения для JavaScript
  • Обновленный поиск в VCS

Как устроено автоматическое тестирование в Почте Mail.Ru под iOS

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

image


Некоторое время назад мы рассказали вам об автоматическом тестировании нашей Почты на Android и получили огромное количество вопросов от читателей. Сегодня приоткроем вам часть нашей «внутренней кухни», которая касается автотестирования на iOS. Для тестирования каждой сборки мы проводим более 500 автотестов, которые выполняются менее чем за один час. Как мы их реализовывали и зачем? С какими проблемами сталкивались и как смогли их решить? Обо всём этом читайте под катом.

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

SEM раз отмерь. Или «как узнать SEM ли ты и что с этим делать дальше?»

Время на прочтение6 мин
Охват и читатели5.9K
Да, мы запускаем вторую серию Турниров Кроссовера!

2 апреля в Петербурге — в этот раз мы ищем Software Engineering Managers и Technical Product Managers, а потом 22 апреля в Москве (.NET или Java техлидов).

Но прежде, чем рассказать о том, что будет – давайте посмотрим, как это было в Москве 18 февраля.



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

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