Обновить
8K+

Ruby *

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

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

Тестирование API сервисов и RSpec

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

Иногда бывает необходимость написать небольшой АПИ сервис, часто в виде прототипа. И часто этот прототип потом так и остаётся в первоначально написанном виде следуя принципу «работает — не трогай». Переписывание даже относительно маленького сервиса сопряжено с возможностью внесения ошибки или случайного незначительно изменения поведения, которое обнаружится далеко не сразу. На помощь тут приходит тестирование по методу черного ящика (функциональное тестирование). Написание тестов является важной частью процесса разработки, а время потраченное на написание тестов может быть гораздо больше, чем реализация тестируемого функционала. Предлагаю рассмотреть метод тестирования, когда тестируемый код (сервис) и авто тесты написаны на разных языках программирование. Данный подход позволяет писать тесты без зависимости от первоначально выбранной технологии, что позволяет достаточно легко «выкинуть» прототип и переписать требуемый функционал на других технологиях. Плюс это демонстрация того, что тесты не обязательно должны быть написаны на том же языке, что и тестируемый сервис.
Читать дальше →

Делаем приём платежей криптовалютой своими руками

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

Привет, Хабр!


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


В этой статье я постараюсь максимально подробно, без акцента на каком-либо языке программирования, описать, как сделать приём платежей Bitcoin (а также, при желании — Litecoin, Dash, Bitcoin Cash, Steep, ONION и т.п.), начиная с разворачивания полной ноды и заканчивания проверкой поступления платежа.

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

tdlib-ruby: как сделать Telegram-клиент на Ruby

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

image
Одна из особенностей мессенджера Telegram — широкие возможности API (Bot API и Telegram API). Команда Telegram пошла ещё дальше и выпустила библиотеку TDLib (Telegram Database Library), позволяющую разрабатывать альтернативные клиенты Telegram и не задумываться о низкоуровневых деталях реализации (работа с сетью, шифрование и локальное хранение данных).



TDLib работает на Android, iOS, Windows, macOS, Linux, Windows Phone, WebAssembly, watchOS, tvOS, Tizen, Cygwin и других *nix системах, а так же интегрируется с любым языком программирования, поддерживающим выполнение C-функций.


В этой статье мы рассмотрим использование TDLib в Ruby и создание gem'а для взаимодействия с JSON-интерфейсом библиотеки.

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

Анонс ElixirLangMoscow Meetup #7

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

Клуб ElixirLangMoscow при поддержке Rambler&Co приглашает разработчиков, тимлидов и всех, кто так или иначе связан с разработкой на Elixir, принять участие в ElixirLangMoscow Meetup, который состоится 15 февраля в 19:00, в четверг, в баре «Дорогая, я перезвоню».
Читать дальше →

Я ненавижу константы в Ruby

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

Ruby — очень сложный язык программирования. Он невероятно красивый и читабельный, однако у него есть множество тем и особенностей, которые могут оставаться "темным лесом" даже для опытного Ruby-разработчика. Одной из таких тем является поиск констант.


Несмотря на заголовок, гнева в посте не будет.

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

RubyMine 2017.3. Более быстрая IDE, WSL, Embedded Puppet, и многое другое

Время на прочтение5 мин
Охват и читатели3.8K
Здравствуй, Хабр! Как можно заметить по последним постам в блоге JetBrains, многие продукты компании находятся в стадии заключительных релизов в этом году.

В этой серии мы расскажем про новую версию IDE для Ruby и Rails, RubyMine 2017.3.


Как мы готовили Crystal к production

Время на прочтение1 мин
Охват и читатели5K
К версии 0.23 язык представлял собой весьма наивный концепт быстрого и простого языка.

И это было очень удобно при разработке микросервисов, таких же простых, как на Ruby, но более быстрых, чем на Go (в большинстве применений).

К сожалению, в языке (вернее, в его стандартной библиотеке) нашлось несколько проблем, мешающих использовать его в современном мире. Основная проблема — HashDoS.

Я подошёл к этому с одной стороны, реализовав нормализацию чисел, например, но тут свыше пришел ангел по имени @funny-falcon, и уютный мирок Crystal офигел. Один pull request, учитывающий особенности LLVM, генерации хэшей, сами хэши, JSON и кучу иного — стал предметом обсуждений более чем на 200 комментариев, что для маленького проекта вообще нонсенс.

В итоге pull request закрыт (дикая нагрузка).

Но почти все его идеи уже реализованы и находятся в Crystal master.

Теперь на нем уже можно писать код, который можно отдавать наружу.

Настройка Minio и Nginx для RoR приложения

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

Minio — что это


Minio это простое, быстрое и совместимое с AWS S3 хранилище объектов. Minio создан для размещения неструктурированных данных, таких как фотографии, видеозаписи, файлы журналов, резервные копии, а также образы виртуальных машин и контейнеров. Небольшой размер позволяет включать его в состав стека приложений, аналогичного Node.js, Redis и MySQL. В minio также поддерживается распределенный режим (distributed mode), который предоставляет возможность подключения к одному серверу хранения объектов множества дисков, в том числе расположенных на разных машинах.

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

RailsClub 2017. Материалы

Время на прочтение1 мин
Охват и читатели3.1K
23 сентября в Москве прошла конференция RailsClub. Под катом — много видео, немного фотографий, ссылки на презентации. Начнем с отчетного ролика — в нем коротко о том, как все было.


ruby -e для упрощения работы в консоли

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

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

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

Когда Феникс успел убить Рейлс?

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


Случается, что некоторые задачи не удаётся решить на привычном для вас языке программирования. Предположим, перед нами встала задача реализовать обмен сообщениями в реальном времени при больших объёмах трафика. Как сделать это оптимально? По понятным причинам, Руби – не лучший для этого вариант, поэтому придётся начинать поиски альтернатив. Перед вами появится множество путей, и как для рубиста, самым оптимальным выбором будет использование Эликсира.


Эликсир – функциональный язык программирования с синтаксисом Руби, работающий на виртуальной машине Эрланга. Следовательно, для человека из мира Руби знакомство с языком пройдёт очень легко. Хотя для того, чтобы понять его полностью, придётся постараться, не раз перечитывая документацию.


Ответ на вопрос из заголовка и масса интересного об Эликсире сразу же под катом.

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

Анонс RamblerElixir #4

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

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

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

RailsClub 2017. Интервью с организатором elixir-lang.moscow Никитой Соболевым

Время на прочтение5 мин
Охват и читатели2.5K
Мы уже пакуем 600 пакетов раздатки для участников RailsClub 2017 23 сентября, а наши спикеры добавляют последние штрихи к своим презентациям. Сегодня Алексей Могильников поговорил об Elixir c Никитой Соболевым, который делает сервисы в wemake.services, организет встречи elixir-lang.moscow и является амбассадором Auth0
.

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

RailsClub 2017. Ответ на три главных вопроса от Piotr Solnica

Время на прочтение3 мин
Охват и читатели1.9K
До RailsClub 2017 совсем немного (кстати, даже если вы не идете, не забывайте голосовать за Героев Руби). Сегодня хотим познакомить поближе еще с одним нашим гостем — Piotr Solnica, автором rom-rb и dry-rb и, как Петр пишет про себя, «all-around OSS contributor».

image

Как ты считаешь, какая самая большая задача сейчас стоит перед Ruby и RoR сообществом?
Читать дальше →

RailsClub 2017. Интервью с Никитой Шильниковым, Dry-rb и Rom-rb core-разработчиком

Время на прочтение4 мин
Охват и читатели3.3K
Отсчет до конференции RailsClub 2017 идет на дни, а мы продолжаем публиковать разговоры с нашими спикерами. Павел Аргентов расспросил Никиту Шильникова, разработчика Dry-rb и Rom-rb, о работе, книгах и состоянии дел в Ruby-сообществе.

image

Как ты начал программировать на Ruby?
Читать дальше →

RailsClub 2017. Интервью с Luca Guidi, автором Hanami: смешиваем FP и OOP в Ruby

Время на прочтение7 мин
Охват и читатели3.1K
Всем привет! Мы вовсю готовимся к RailsClub, который состоится 23 сентября (ааааа, это уже на следующей неделе!!). Программа на сайте, 500 крутых рубистов уже зарегистрировались, ждем только тебя! Еще можно успеть заскочить в последний вагон и поучаствовать в главном Ruby событии года в России.

У Павла Аргентова получилось очень интересное интервью с потрясающим человеком. Luca Guidi — семьянин, независимый OSS разработчик, автор Ruby фреймворка Hanami.

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

RailsClub 2017: Интервью с Richard Schneeman

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

Мы вовсю готовимся к предстоящей конференции RailsClub 2017 (все случится 23 сентября) и беседуем с нашими спикерами о жизни и программировании. Сегодня Михаил Моргунов разговаривал с Richard Schneeman из Heroku, Ruby Hero 2016, Топ 50 Rails contributors.

image

Почему в докладе ты хочешь поговорить о потоках в Ruby?
Читать дальше →

Осторожнее с тем, что измеряете — MJIT vs TruffleRuby: в 2,1 раза медленнее или в 4,2 раза быстрее

Время на прочтение11 мин
Охват и читатели5.4K
Вы видели результаты бенчмарков MJIT? Они удивительные, правда? MJIT буквально выносит все остальные реализации без вариантов. Где он был все эти годы? Всё, теперь с гонкой закончено?

Однако вы можете понять из заголовка, что не всё так просто. Но прежде чем разобрать проблемы этих конкретных бенчмарков (конечно, вы можете пролистать вниз к симпатичным диаграммам), нужно рассмотреть важные базовые основы сравнительного анализа.

MJIT? TruffleRuby? Что это всё такое?


MJIT — это ответвление Ruby на Github от Владимира Макарова, разработчика GCC, где реализована динамическая JIT-компиляция (Just In Time Compilation) на самом популярном интерпретаторе Ruby — CRuby. Это отнюдь не окончательная версия, наоборот, проект на ранней стадии разработки. Многообещающие результаты бенчмарков были опубликованы 15 июня 2017 года, и это основной предмет обсуждения в данной статье.

Hanami Getting Started

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


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


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

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