Обновить
8K+

Ruby *

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

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

Книга «Ruby. Объектно-ориентированное проектирование»

Время на прочтение5 мин
Охват и читатели15K
image Привет, Хаброжители! Совсем недавно мы перевели бестселлер Сэнди Метц.

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

Внимательно изучив это руководство, вы сможете: • Понять, как писать на Ruby качественный код в духе ООП • Решать, что должно входить в состав класса Ruby • Не допускать тесной связи между объектами в тех случаях, когда требуется разграничить функциональность • Определять гибкие интерфейсы между объектами • Освоить утиную типизацию • Эффективно задействовать наследование, композицию и полиморфизм • Разрабатывать экономные тесты • Доводить до совершенства любой legacy-код Ruby.
Читать дальше →

Создание Elixir-приложения на примере. От инициализации до публикации

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

image


Данная статья участвует в конкурсе от Wunsh.ru — русскоязычное сообщество Elixir. Практики и просто сочувствующие — присоединяйтесь!


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


Вступление


"Elixir — динамический, функциональный язык программирования, разработанный для создания масштабируемых и легко поддерживаемых систем." — elixir-lang.org


Используя Elixir для создания ваших приложений вы обязательно столкнётесь с Mix. Он станет вам незаменимым помощником, так как через него вы сможете выполнять такие команды как создание, сборка, тестирование и публикация приложений, а также управление зависимостями и многое другое. Если вы знакомы с Ruby, то этот инструмент очень похож на Bundler, RubyGems и Rake, вместе взятые. В двух словах Mix — это удобный инструмент, который поставляется с Elixir и выполняет не меньше задач, чем швейцарский нож.


Инициализация нового приложения

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

RubyMine 2016.3: Отладка в режиме attach, обновленная поддержка Puppet, синхронизация SDK через rsync

Время на прочтение4 мин
Охват и читатели5.1K
Привет, хабравчане!

В ноябре мы анонсировали обновленные IntelliJ IDEA, CLion, PyCharm и DataGrip, а эта статья — для Ruby/Rails-разработчиков. Мы выпустили RubyMine 2016.3, заключительное обновление нашей IDE для Ruby и Rails в этом году! Обновление доступно для скачивания и бесплатного 30-дневного ознакомления на нашем сайте.


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

RamblerElixir #1

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


8 декабря в 19:00 на Мансарде Rambler&Co состоится meetup Elixir разработчиков. Elixir — функциональный язык программирования c динамической типизацией для разработки распределённых, отказоустойчивых приложений, построенный на базе виртуальной машины Erlang (без GIL), имеет очень приятный синтаксис и низкий порог вхождения.
Читать дальше →

Сказка о бэкенде, ruby и rails

Время на прочтение5 мин
Охват и читатели16K
Это очередной перевод статьи про rails, в этот раз моей собственной. Статья носит развлекательный характер и предназначена для людей не знакомых с бэкендом и rails приложениями.

Оригинал статьи тут и картинки взяты там же.

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

Что же, этот мир очень велик и не каждый видел его край. Сейчас он также велик как наш, к счастью, в нем нет границ и с каждым днем он расширяется. Там появляются новые государства, возможно вы слышали о некоторых из них, например PhP или Python, в этих государствах появляются города (мы их называем приложения), а в городах жители (объекты и сущности).

Добро пожаловать в мир Ruby

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

Как мы делали интерактивный квест для RailsClub

Время на прочтение3 мин
Охват и читатели5.4K
RailsClub — конференция, которую AT Consulting посещает практически с момента ее основания. В этом году мы стали ее золотым партнером и решили придумать для участников что-то более интересное, чем розыгрыш призов, и написали интерактивный квест, включающий 15 заданий. Большая часть из них — на знание Ruby и несколько творческих. Опыт получился интересный, так как это был наш первый квест для мероприятий. По итогам проведения квеста мы собрали много отзывов и вопросов по отдельным заданиям. В этой статье мы расскажем о том, как создавали квест, и разберем ответы.



Команда состояла из одного front-end, двух back-end разработчиков и дизайнера.
Читать дальше →

Ваш язык программирования — отстой

Время на прочтение54 мин
Охват и читатели141K
1 Почему JavaScript отстой
• 1.1 Плохая конструкция
• 1.2 Система типов
• 1.3 Плохие функции
• 1.4 Отсутствующие функции
• 1.5 DOM
2 Почему Lua отстой
3 Почему PHP отстой
• 3.1 Исправлено в поддерживаемых в настоящее время версиях
4 Почему Perl 5 отстой
5 Почему Python отстой
• 5.1 Исправлено в Python 3
6 Почему Ruby отстой
7 Почему Flex/ActionScript отстой
8 Почему скриптовые языки отстой
9 Почему C отстой
10 Почему C++ отстой
11 Почему .NET отстой
12 Почему C# отстой
13 Почему VB.NET отстой
15 Почему Objective-C отстой
16 Почему Java отстой
• 16.1 Синтаксис
• 16.2 Исправлено в Java 7 (2011)
• 16.3 Модель
• 16.4 Библиотека
• 16.5 Обсуждение
17 Почему Backbase отстой
18 Почему XML отстой
19 Почему отстой XSLT/XPath
20 Почему CSS отстой
• 20.1 Исправлено в CSS3
21 Почему Scala отстой
22 Почему Haskell отстой
23 Почему Closure отстой
24 Почему Go отстой
• 24.1 Базовые средства программирования (базовый язык)
• 24.2 Взаимосовместимость
• 24.3 Стандартная библиотека
• 24.4 Набор инструментальных средств
• 24.5 Сообщество
25 Почему Rust отстой
• 25.1 Безопасность
• 25.2 Синтаксис
• 25.3 Конструкция API и система типов
• 25.4 Сообщество
• 25.5 Набор инструментальных средств

Почему JavaScript отстой


Учтите, что некоторые положения относятся не к самому JavaScript, а к программным интерфейсам веб-приложений (https://developer.mozilla.org/en/docs/Web/API).

Плохая конструкция

• Каждый скрипт исполняется в едином глобальном пространстве имён, доступ в которое возможен в браузерах с оконным объектом.
• Camel-регистр никуда не годится:

XMLHttpRequest
HTMLHRElement

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

Автоматизированное тестирование плагинов Redmine

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

За прошедший год мы разработали четыре плагина для связки Redmine + Telegram (раз, два, три, четыре).


Потихонечку вырабатываются свои Best Practices в отношении них. В этой заметке расскажем о тестировании и интеграции с Travis CI.


Почему решили о тестировании рассказать? Потому что тестирование плагина для Redmine — тот ещё квест.


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

JRuby + Ratpack = ❤️

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

Многие разработчики на Ruby знают как обстоят дела с асинхронным выполнением кода на имеющихся серверах. Либо вы используете что-то на EventMachine, либо колдуете с Ruby::Concurrent, Celluloid.


В любом случае, это работает не сильно эффективно из-за GIL (ждем, надеемся и верим в Ruby 3).
Но есть реализации свободные от этой проблемы, одна из них поверх JVM — JRuby, где теже самые библиотеки будут чувствовать себя гораздо комфортней.


Много расписывать не буду, думаю все как минимум слышали про него. Главной особенностью данной реализации является легкая интеграция с любой библиотекой на JVM. Это открывает большой простор в выборе библиотек и готовых инструментов.

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

Итоги Ruby Hero Russia Award 2016

Время на прочтение1 мин
Охват и читатели2.9K
Всем привет! Конференция RailsClub’2016 завершена, а вместе с ней и подведены итоги Ruby Hero Russia Award 2016.

Ruby Hero Russia Award 2016 – это премия за выдающийся вклад в развитие технологий и сообщества языка Ruby.

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

Подтверждение номера телефона, используя Ruby on rails и Twilio

Время на прочтение2 мин
Охват и читатели9.5K
Как-то раз передо мной стояла задача сделать подтверждение номера телефона. И, так как у меня совсем нет звездочек на гитхабе (и инвайта на хабре), было принято решение сделать гем.

image

В качестве смс-шлюза был выбран сервис Twilio, ибо он удобный и недорогой. Потратив на это дело несколько часов, получился, как по мне, весьма удобный гем.
Читать дальше →

RailsClub 2016: подкасты с Иваном Немытченко и Ильей Зыкиным

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

До RailsClub 2016 совсем немного! Пока мы готовим 600 пакетов раздатки, хотим напомнить вам, что пора голосовать за Героев Руби (все подробности тут) и познакомить поближе еще с двумя нашими спикерами — Ильей Зыкиным (Toptal) и Иваном Немытченко (Gitlab). Наши товарищи из RubyNoName подкаста записали с каждым из них по увлекательному выпуску-интервью.

Послушать можно на сайте подкаста (тут Иван, тут Илья). А ниже расшифровываем по фрагменту из каждого разговора.
Читать дальше →

Ruby Hero Russia Award 2016

Время на прочтение2 мин
Охват и читатели2.6K
Всем привет!
До конференции RailsClub’2016 осталось всего 4 дня, и все уже ждут встречи с нашими звездными докладчиками.

Как мы неоднократно говорили, цель конференции – популяризация языка Ruby в России и в мире. В рамках RailsClub’a мы хотим собираться вместе, слушать доклады великих, а также выявлять и поощрять труд тех из нас, кто делает большой вклад в развитие родных технологий. Поэтому несколько месяцев назад мы анонсировали премию Ruby Hero Russia Award 2016 за вклад в развитие языка Ruby и open-source технологий, связанных с Ruby (конечно же, для наших соотечественников).

Все эти месяцы вы бодро номинировали претендентов на премию. Настало время определить победителя!
Читать дальше →

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

RailsClub 2016: интервью со Steve Klabnik

Время на прочтение5 мин
Охват и читатели4K
RailsClub 2016 22 октября, билетов осталось совсем мало. Не откладывайте регистрацию, если собираетесь идти! Мы публикуем разговоры с нашими спикерами, и сегодня это Steve Klabnik — член Rust core team, активный open source контрибьютер и очень интересный собеседник!
Автор книг “The Rust Programming Language”, “Rails 4 in Action” и “Designing Hypermedia APIs”. Живет в Бруклине, сам о себе пишет, что «проводит слишком много времени на GitHub».

Стив уже выступал на RailsClub в 2012 году. И мы также публиковали интервью с ним (любопытным можно посмотреть тут). С тех пор Стив плотно занялся Rust, сделал много интересных штук и мы поняли, что нужно обязательно пригласить его снова :)

Думаю, эта наша публикация будет интересна не только рубистам, но и поклонникам Rust, которых в России становится все больше. На последнем митапе к нам подошли ребята из русскоязычного Rust-сообщества rustycrate.ru . Приглашают всех, кто после RailsClub заинтересуется Rust, не стесняться присоединяться и задавать вопросы.

image
Доклад на нашей конференции — Exploring Ruby through Rust.
Ruby написан на C. Многие классы, которые мы знаем и любим, написаны на Ruby, некоторые нет. Изучая, как работает MRI мы можем узнать о Ruby много интересного. В докладе Стив покажет веселый хак: перепишет куски Ruby-интерпретатора на Rust. В процессе много узнаем о внутреннем устройстве Ruby и о том, как начать хакать код на С.

Под катом приводим наши вопросы, ответы Стива в оригинале и нашем вольном переводе:
Читать дальше →

RailsClub 2016: интервью с Zach Briggs

Время на прочтение7 мин
Охват и читатели3K
Юхуу! Неделя до конференции RailsClub 2016. Все наши гости (включая Матца, да) совсем скоро прилетят в Москву. А мы готовим 600 пакетов раздатки, 600 ланчбоксов с обедами, несчетное количество чая и кофе, маффинов и пирожков, вовсю репетируем доклады со спикерами.

Еще можно успеть заскочить в последний вагон и поучаствовать в главном Ruby событии года в России.

Купить билет и зарезервировать себе местечко в зале можно на Railsclub.ru

image Сегодня мы хотим показать вам интервью с Zach Briggs, спикером предстоящей конференции.

Он из Чикаго, работает в TableXI, выступал с докладами и воркшопами на RailsConf, CodeMash, Barcelona Ruby Conf, KalamazooX и многих других конференциях.

Вот тезисы предстоящего доклада:

JavaScript for Rails Devs

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

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

Мы считаем, что это стоит знать! Под катом ответы Зака на наши вопросы о технологиях и жизни. Как обычно, публикуем ответы в оригинале и нашем вольном переводе.
Читать дальше →

Зачем вскрывать черный ящик JVM — Интервью с Charles Nutter, JVM-разработчиком из Red Hat

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


Осень – отличное время для встречи со старыми друзьями, поездок на конференции, прогулок по паркам. Многие уже вернулись из отпусков с новыми впечатлениями, идеями, готовые делиться ими, общаться с окружающими. Наше сегодняшнее интервью не о путешествии, хотя, несомненно, погружение в мир Java тоже можно назвать таковым. Разговор пойдет о JVM. Наш собеседник – Charles Nutter, разработчик JVM в Red Hat, ведущий инженер проекта JRuby.

Итак, запасаемся кофе и начинаем.

— Наше тема сегодня – это JVM и ее «тёмное» содержимое. Charles, скажите, когда для вас JVM перестала быть загадкой?
Читать дальше →

Пишем Ruby gem для Yandex Direct API

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

Очень хотелось изучить Ruby получше, а рабочего проекта не было. И я попробовал написать gem для работы с Yandex Direct API.


Причин было несколько. Среди них: Yandex Direct API очень типичен для Яндекса и современных REST-сервисов вообще. Если разобраться и преодолеть типичные ошибки, то можно легко и быстро написать аналоги для прочих API Яндекса (и не только). И ещё: у всех аналогов, которые мне удалось найти, были проблемы с поддержкой версий Директа: одни были заточены под 4, другие под новую 5, и поддержке units я нигде не нашёл.


Метапрограммирование — великая вещь


Основная идея gem-а — раз в языке вроде Ruby или Python можно создавать новые методы и JSON-подобные объекты на лету, то методы интерфейс для доступа к REST-сервису могут повторять функции самого Rest-сервиса. Чтобы можно было писать так:


request = {
    "SelectionCriteria" => {
      "Types" => ["TEXT_CAMPAIGN"]
    },
    "FieldNames" => ["Id", "Name"],
    "TextCampaignFieldNames" => ["BiddingStrategy"]
}

options = { token: Token }
@direct = Ya::API::Direct::Client.new(options)
json = direct.campaigns.get(request)

А вместо того, чтобы писать справку, отсылать пользователей к мануалам по указанному API.

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

RailsClub 2016: Интервью c Владимиром Дементьевым

Время на прочтение20 мин
Охват и читатели4.6K
Всем привет! Мы вовсю готовимся к RailsClub 2016. На сайте уже выложены тезисы большей части докладов — советуем посмотреть! Уже зарегистрировалось почти 400 участников, присоединяйтесь, до 22 октября осталось не так много времени!

image Продолжаем выкладывать интервью с нашими докладчиками в подкасте RubyNoName. Сегодняшний разговор с Владимиром Дементьевым, разработчиком в Evil Martians.

Аудио можно послушать на сайте подкаста, а здесь делимся расшифровкой.
Читать дальше →

Руби(н) vs Питон: самые важные вопросы и ответы

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


«Питон или Руби» — это один из самых горячо обсуждаемых топиков в мире программирования. Впереди него только “emacs или vim” и “pro-skub или anti-skub” по важности и сложности. Сегодня мы изучим разницу и ответим на вопросы, а также объективно и окончательно решим, что лучше.


Что такое Питон?


Питон это крупная змея, которая обитает в юго-восточных регионах планеты. Они не ядовитые и нейтрализуют врагов в основном удушением. Многие из сохранившихся видов находятся под угрозой исчезновения.


Что такое Руби(н)?


Руби (рубин) — это яркий, красный драгоценный камень. Его принято относить к группе четырех драгоценных камней, наряду с изумрудами, бриллиантами и сапфирами. Существует большой спор: рубины — это красные сапфиры или сапфиры — это голубые рубины.


В чем схожесть?


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


  • Динамическая типизация: Тип, к которому относится слово, динамически определяется из контекста. Питон может относится к семейству (питонов), роду (broghammerus) или к виду (сетчатый питон). Аналогично, рубин может быть конкретным минералом (корунд с примесями хрома), или относиться к общей категории красных камней.
  • Интерпретируемый: Питоны и рубины часто используются как символы и метафоры, особенно в поэзии и мифологии.
  • Объектно-ориентированные: Они оба — объекты, но некоторым людям некомфортно относиться к животным как к объектам.
  • Высокоуровневые: Я изучал в университете физику, и все, что больше атома водорода считаю «высокоуровневым». Я не шучу. Мы еще не нашли решение уравнению Шредингера для атома гелия, а это все лишь атом водорода с дополнительной болтающейся хреновиной.
Читать дальше →

RailsClub 2016: Интервью c Алексеем Тактаровым

Время на прочтение12 мин
Охват и читатели3.2K
Всем привет! До RailsClub 2016 осталось чуть больше месяца. Самое время регистрироваться!

Мы уже рассказали, что в этом году к нам приедут выступать Юкихиро Мацумото, Акира Мацуда, Шон Гриффин, Стив Клабник и Зак Бригс. А сегодня мы начинаем публиковать традиционные интервью с нашими докладчиками. В этом году сделать разговор со спикерами интересным нам помогает подкаст RubyNoName.

imageРебята записали первый разговор, с Алексеем Тактаровым, фронтенд(!) разработчиком из These Guys. Алексей специализируется на разработке single-page приложений, пропагандирует чистоту и простоту дизайна и кода. Принимал участие в проектах Смартомато, ficus.io и resume.io, работал со Злыми марсианами; его основные инструменты — Ember.js, React и Ruby on Rails. В свободное время занимается южной около-фронтенд тусовкой Code Hipsters.

Мы впервые ставим в программу бэкенд конференции доклад про фронт. Никуда без него в 2016 году :). Лешин доклад называется "Дайте фронтенду в Rails второй шанс!".
Читать дальше →