Программирование на Ruby - Новости

Книга "Надежный деплой Rails приложений" на русском языке

Я опубликовал перевод книги Reliably Deploying Rails Applications: https://leanpub.com/deploying_rails_applications-ru/

Эта книга посвящена автоматизации настройки серверов при помощи Chef и деплою на них Rails-приложений с использованием Capistrano.

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

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

Вторая часть - о Capistrano, автоматизации деплоя (в том числе zero downtime deploy), работе с виртуальными хостами, SSL-сертификатами и автоматизации повседневных задач.

С благодарностью приму любой фидбек, пишите на leanpub@frey.su :)

Источник: rubyflow.ru

Как (почти) ничего не делая, попасть в Ruby-топ на GitHub

Маленькая библиотека ментора mkdev Виктора Шепелева под названием worldize за первые несколько дней своей жизни набрала сотню «звёздочек» на GitHub, четыре дня подряд была в топ-10 «репозиториев дня», попала в топ «репозиториев недели» и в популярную рассылку Ruby Weekly. В этой статье Виктор расскажет, как эта штука получилась.

Как (почти) ничего не делая, попасть в Ruby-топ на GitHub

alt text

Источник: rubyflow.ru

Цикл статей о деплое статических сайтов на Jekyll и Middleman

Я написал три статьи, которые помогут вам без проблем разместить ваши статические сайты на Jekyll и/или Middleman на один VPS и без проблем деплоить их на любые серверы в будущем.

Надеюсь, будет полезно :)

Источник: rubyflow.ru

На CodenameCRUD опубликован курс по Javascript

В курсе рассматривается как сам язык, так и работа с jQuery, AngularJS и Backbone.js.

В качестве практики будет предложено выполнить несколько заданий по написанию фронтенд-приложений и затем соединить фронтенд-приложение с бэкендом на Ruby on Rails

http://codenamecrud.ru/javascript-and-jquery

Источник: rubyflow.ru

Expert Fridays 2016 - Ruby on Rails Meetup

19 февраля в Казани пройдет первая неформальная IT-посиделка 2016 года в рамках серии митапов Expert Fridays.

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

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

Если вы хотите выступить с мини-докладом на 10-15 минут, то просто приготовьте свою тему и нажмите “стать спикером” на сайте: http://expertfridays.com. Либо регистрируйтесь как участник и приходите расслабиться, послушать и пообщаться с коллегами.

За дополнительной информацией обращайтесь:
Константин Макарычев

, Skype: mkf.simpson, +79872632641
Татьяна Козовая

, Skype: tkozovaya

alt text

Начало мероприятия: 19:00

Место проведения: Navigator/Campus, ул. Мусина 61В
Организатор: компания Provectus

Источник: rubyflow.ru

Ruby vs Elixir - code quality on Github

http://ruby2elixir.github.io/posts/2015/12-17-elixir-vs-ruby---code-quality.html

A quick comparison of language code bases and some resulting (biased) conclusions.

Источник: rubyflow.ru

Курс по HTML5 и CSS3 на CodenameCRUD

Мы опубликовали курс по HTML5 и CSS3 :)

В курсе будут затронуты как основы фронтенда, так и некоторые продвинутые практики, такие, как анимации и эффекты CSS3 и лучшие практик фронтенда в целом.

http://codenamecrud.ru/html5-and-css3

Любой фидбек привествуется и принимается с благодарностью :)

Источник: rubyflow.ru

Деплой на Heroku

Однажды меня окончательно достала беда с деплоем на Heroku. Я сел и придумал, как это делать правильно.

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

http://be9.ru/2015/11/16/heroku-deployment.html

Источник: rubyflow.ru

[видео] Fix RSpec!

По всей видимости,

Источник: rubyflow.ru

Построить клон RSpec

Давайте строить RSpec клон, который может обрабатывать некоторые основные черты.

И, может быть, заменить оригинал в вашем следующем проекте, кто знает?

https://medium.com/@cyri_/building-rspec-with-fix-bb2feb240bd3

Удачного тестирования!

Источник: rubyflow.ru

Самая последняя статья о настройке сервера для Rails

Обилие статей о настройке боевого сервера под Rails всегда накаляло меня. Складывается впечатление, что многие программисты никогда не сталкивались с задачей сложнее конфигурации nginx. Я решил наконец раз и навсегда закончить эту нездоровую практику и сделал гем, который с помощью Chef без лишних вопросов устанавливает и настраивает всё необходимое для типового Rails-приложения:

$ gem install from-scratch
$ scratchify your_app_name your.host.com

Для запуска команды вам нужен SSH root-доступ.

Команда установит все нужные пакеты, создаст "бесправного" пользователя deploy, установит под него RVM с MRI 2.2.3, установит PostgreSQL, создаст в ней схему под приложение, установит nginx, загрузит типовой конфиг под rails-приложение, и сгенерирует папку для приложения с файлами database.yml и secrets.yml, готовую под деплой с Capistrano. Подробнее можно прочитать тут:

https://github.com/sandrew/from-scratch

Источник: rubyflow.ru

Онлайн-иненсив "Профессиональная разработка на Ruby on Rails"

alt text

Друзья,

Онлайн-школа Thinknetica приглашает вас принять участие в онлайн-интенсиве "Профессиональная разработка на Ruby on Rails".

Пройдя наш интенсив (даже частично), вы совершенно точно радикально улучшите свои навыки в RoR и сможете найти работу в этой области.

Набор проходит уже в 7-й раз. За это время мы обучили почти 150 человек, многие из которых стали успешными веб-разработчиками.

Для кого?

Этот интенсив для тех, кто уже знает основы Ruby on Rails, но хочет стать профессионалом и научиться создавать production-ready приложения.

Что будет?

На курсе основное внимание уделено лучшим практикам и подходам профессиональных разработчиков. Вы научитесь создавать приложения «с нуля» и до деплоя. Изучите такие техники как TDD/BDD, agile-методологии, git flow. Познакомитесь со множеством полезных библиотек, узнаете о внутреннем устройстве Rails, научитесь писать хороший код, проектировать архитектуру, создавать REST API, настраивать сервер и делать деплой, а также многому другому.

За 3 месяца с нами вы освоите больше, чем самостоятельно за год.

Как проходит интенсив?

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

Наши менторы - это профессиональные разработчики с многолетним стажем в должности CTO или Team Lead, которые делают отличный код ревью и дают важные и нужные советы по улучшению вашего кода.

Но предупрежадем: работать придется много и плотно!

Что в итоге?

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

Регистрируйтесь, пока есть места!

Источник: rubyflow.ru

На CodenameCRUD опубликован курс по Ruby on Rails!

Прежде всего, хочу напомнить, что такое CodenameCRUD вообще :) Это самообразовательный проект-роадмап, основное предназначение которого заключается в том, чтобы позволить любому желающему с самого нуля погрузиться в веб-разработку и узнать обо всех её основных аспектах.

До сегодняшнего дня на сайте проекта было доступно три курса: "Введение в веб-разработку", "Основы веб-разработки" и "Программирование на Ruby". Сегодня, после длительной работы, был опубликован курс "Ruby on Rails".

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

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

Источник: rubyflow.ru

Сказ о том, как я провёл две недели в поисках утечки памяти

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

Почему я решил описать свои приключения? Дело не только в практическом стремлении сохранить все мелкие скрипты и куски кода. Мне на минуточку показалось, что это и есть UNIX way – то, что меня вело. Каждый шаг был связан с очередной небольшой утилитой или библиотекой, которая хорошо решает свою задачу. И я в итоге достиг успеха.

http://be9.ru/2015/09/12/memory-leak.html

Источник: rubyflow.ru

Представляя Fix

Fix представляет собой новый инструмент в спецификации.

Фикс минимум инструментов тестирования. Это меньше, чем 200 строк кода. Он основан на Spectus, Matchi и Defi.

Вот пример кода:

class Monster
  def self.get
    {
      boo: {
        name: 'Boo',
        life: 123,
        mana: 42
      },
      hasu: {
        name: 'Hasu',
        life: 88,
        mana: 40
      }
    }
  end

  def get(id)
    self.class.get.fetch(id)
  end
end

С Fix, мы можем написать этот тест:

require_relative 'monster'
require 'fix'

Fix.describe Monster do
  on :get do
    on :keys do
      it { MUST Eql: %i(boo hasu) }
    end
  end

  on :new do
    on :get, :boo do
      it { MUST Eql: { name: 'Boo', life: 123, mana: 42 } }
    end

    on :get, :boom do
      it { MUST RaiseException: KeyError }
    end
  end
end

Результат:

ruby monster_fix_spec.rb
...

Ran 3 tests in 0.000411 seconds
100% compliant - 0 infos, 0 failures, 0 errors

Для более подробной информации, вы можете прочитать в документации и кода.

Счастливый кодирования!

Источник: rubyflow.ru

RailsClub 2015: Привет всем рубистам и рубисткам!

С радостью рассказываем о том, какую программу мы приготовили на RailsClub 2015, который состоится 26 сентября в Москве. Все подробности на сайте конференции railsclub.ru (кстати, зацените наш новый сайт). Приглашаем всех неравнодушных, главное российское Ruby-событие года нельзя пропускать! Билет сейчас стоит 7000, но уже через неделю будет дороже.

Что же будет:

PERFORMANCE IN THE DETAILS: A WAY TO MAKE FASTER RUBY

Koichi Sasada, Член команды Яцухиро Мацумото в Heroku, директор Ruby Association

Heroku Matz team is working to improve quality of CRuby/MRI. Quality has several meanings, such as stability, low resource consumption, and of course speed. My main goal is to make faster Ruby.

However, we don't have one absolute solution to speed up Ruby interpreter. Instead of one solution, we introduce variety of techniques to improve Ruby's performance. In this talk, I will show you recent achievements by techniques in details.

RAILS 5: AWESOME FEATURES AND BREAKING CHANGES

Claudio Baccigalipo, контрибьютор в Rails на счету которого более 100 коммитов, член Rails Issues team

Each major release of Rails brings shiny new features and mild headaches for developers required to upgrade their applications and gems. Rails API, ActionCable, Turbolinks 3 are only a few of the changes announced for Rails 5. How can programmers get ready for the future without breaking their legacy code?

In this talk, I will cover the improvements brought by Rails 5, explain the Core team’s motivations behind each feature, and illustrate the upgrade process to smoothly transition gems and apps from Rails 4.2 to Rails 5.0.

MOCKING LANGUAGE

Sam Phippen, yчастник RSpec core team, разработчик в Fun and Plausible Solutions

This talk is an investigation into the different kinds of ways we isolate objects from their collaborators. They all seem to provide similar capabilities but there is an underlying language that talks to us about different kinds of design smells that we might have in our applications.

This talk will cover the different kinds of test doubles that we use in our applications and what they indicate about the designs of our software.

VOLT: RUBY WEB DEVELOPMENT RECHARGED

Bozhidar Batsov, Автор RuboCop и редактор Ruby and Rails style guides

Volt is a reactive web framework where your Ruby code runs both on the server and the client. Sounds crazy, right? Trust me, though, this is pretty amazing and will blow your minds.

Volt is probably the most exciting web framework in the land of Ruby since Rails. In this talk we'll go over the core ideas and principles of Volt, the advantages of Volt over traditional web apps and we'll play with a few basic examples. We'll wrap with a look towards Volt's bright future. Above all else — we'll have fun!

LAMBDA AND KAPPA ARCHITECTURES IN RUBY ON RAILS

Тимофей Цветков, Toptal Core Team, analytics department

Nowadays it’s absolutely clear that data is one of the most valuable assets and thoughtful data analysis plays essential role in any company’s success. Whether you run machine learning algorithms to build smarter and more user friendly applications or to build financial and marketing reports for stake holders, you need to perform data transformations and calculations. Such applications can’t be designed in a classical Ruby on Rails way. Lambda and Kappa architectures are common patterns for building data processing applications.

Toptal is a constantly growing company and is on track for $100M in revenue in 2015. To archive this in Toptal, we’re constantly improving our processes, KPIs and of course, our application. We’re searching for pitfalls and places to improve by monitoring our processes and by analysing our data.

In this talk we will discuss main principles of Lambda and Kappa architectures and their implementations using Ruby on Rails based on Toptal’s analytics team experience.

КАК ПЕРЕСТАТЬ БЫТЬ RAILS-РАЗРАБОТЧИКОМ

Иван Немытченко, Разработчик и энтузиаст IT мероприятий

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

Как только перестаешь принимать на веру дефолтный способ организации кода в Rails, происходят замечательные вещи. В моем случае, новые роли объектов(Form objects, Services, Repositories) появились в коде естественным образом — как решения конкретных проблем, а не потому-что так завещал нам Мартин Фаулер. В итоге я получил гибкий(модульный, если хотите) код, который несложно поддерживать и модифицировать.
Коллеги, хватит перекладывать вину за бардак в коде на DHH! 2015 год — отличное время, чтобы стать кем-то большим, чем программист-на-фрэймворке.

МИКРОСЕРВИСЫ И ELIXIR ДЛЯ RAILS-РАЗРАБОТЧИКОВ

Самат Галимов и Борис Горячев, Meduza.io

Рассказ пойдет о том, как мы разделяем наше основное rails приложение и создаем микросервис-архитектуру. Как за год было написано более 10-ти проектов разных уровней сложности, и чем мы руководствовались, когда это затевали.

Для нас зачастую выбор языка/фреймворка под проект чуть ли не сложнее, чем написание самого проекта, и в докладе мы постараемся объяснить целесообразность того или иного выбора(заранее признаюсь — в некоторых местах мы славно напортачили).

Также расскажем о случаях, когда лучше заблаговременно сойти с рельс и как себя при этом обезопасить. В конце доклада мы постараемся убедить вас попробовать elixir — прекрасный молодой функциональный язык программирования. На десерт несколько примеров, где он стал для нас right tool for the job.

МИКРОСЕРВИСЫ В GETT: ОТКРЫТИЕ НОВЫХ НАПРАВЛЕНИЙ И РАБОТА ПОД НАГРУЗКОЙ.

Андрей Дерябни, Тимлид Evil Martians, один из марсианских долгожителей

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

В этом Gett помогала команда марсиан под руководством Андрея. За короткий срок у Gett получилось перейти от монолитной архитектуре к использованию микросервисов — в боевом режиме, в четырех странах (США, Великобритания, Россия, Израиль). Это позволило существенно ускорить и упростить работу над разработкой новых направлений.
Вместо теоретических рассказов о том, как здорово использовать микросервисы и почему все якобы непременно должны это делать, Андрей сконцентрируется на практике и боевом опыте. В докладе он расскажет про сложности, с которыми пришлось столкнуться при разработке микросервисов и способами их решения — реализация взаимодействия сервисов (средствами REST API), версионирование состояния системы, логирование изменений (стратегия COW), распределенное конфигурирование (ZooKeeper), работа с shared-частями микросервисов, развертвывание (Chef) и тестирование. Отдельно Андрей подробно остановится на реализации паттерна Circuit Breaker для решения проблем в канале связи между сервисами.

ИЩЕМ ГДЕ И ПОЧЕМУ PRODUCTION ПРИЛОЖЕНИЕ ТОРМОЗИТ

Андрей Куманяев, Разработчик в Coub

Многие из разработчиков мира Ruby on Rails знакомы с богатым набором инструментов для профилировали приложения в development среде. Зачастую, работа с этими инструментами заканчивается до/после выкатки фичи в production. Сначала все может работать хорошо и быстро, ну а дальше… как повезет.

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

RUBY OBJECT MAPPER: REVOLUTION

Александр Кириллов, Разработчик в Evrone

Ruby Object Mapper (ROM) — экспериментальная Ruby библиотека для реализации отображения «чистых» Ruby объектов, позволяющая без лишних ограничений использовать всю мощь выбранного хранилища данных.

ROM основан на нескольких концепциях, отличающихся от «нормальной» Ruby ORM. Я расскажу об этих концепциях, разберу особенности библиотеки и покажу как жить без Active Record.

ТЕСТИРОВАНИЕ И “SOFTWARE WRITER” ГОД СПУСТЯ

Семен Бареев, Ведущий Ruby разработчик в Rambler & Co

Год назад, во время открытия RailsConf 2014, David Heinemeier Hansson поделился с нами своими мыслями по поводу профессии инженера­разработчика ПО (или “писателя ПО”, по его версии) и по поводу TDD. Вкратце, DHH высказался довольно резко в сторону TDD, аргументируя это тем что TDD ломает дизайн, делая его необоснованно сложным для понимания, давая при этом ложное чувство уверенности основанное на выдуманных показателях (coverage, ratio, speed).

Я примерил роль “Писателя ПО”. Следуя советам Дэвида, я старался тестировать всю систему, а не отдельные юниты, фокусируясь на интеграционных и “frontend” тестах. В процессе я столкнулся с непониманием некоторых коллег и бизнес лидеров. Мне пришлось развеятеть несколько мифов о тестировании, и я поделюсь этим опытом с другими разработчиками.

Кроме того, я узнал несколько трюков для ускорения тестов, освоил несколько новых инструментов для тестирования, которые я упомяну в моем докладе.

BUILDING RAILSPERF, A TOOLKIT TO DETECT PERFORMANCE REGRESSIONSIN RUBY ON RAILS CORE

Кирилл Шатров, Разработчик в Evil Martians, мейнтейнер Capistrano и Sorcery

На примере бета-версий Rails 4.2 мы убедились, как часто в фреймворке Rails могут случаться регрессии производительности, и как легко они могут остаться незамеченными.

Проблема производительности и ее регрессий становится все более острой в Ruby-сообществе. Это подтолкнуло меня и других контрибьюторов Rails к разработке Rubybench, сервиса для поиска регрессий производительности в Ruby и Rails.

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

LT: CRYSTAL

Анна Щербинина, Лид веб команды в Artec Group

Crystal — компилируемый в нативный код язык. Как говорят сами разработчики, его синтаксис вдохновлен Ruby. Поэтому порог вождения для ruby разработчика не высок, и, действительно, глядя на код невольно возникает вопрос: это Crystal или Ruby? Расскажу о реализации микросервиса на Crystal: сходстве и различи c Ruby, плюсах, минусах и использовании в production.

LT: ACTIVE SUPPORT INSTRUMENTATION

Кирилл Горин, Разработчик в Toptal

Все пользуются средствами мониторинга для Rails приложений, но не все знают, что они работают на основе встроенных в Rails инструментов. Active Support Instrumentation один из них. В этом докладе я расскажу как его использовать и как можно самому написать конкурента New Relic.

LT: PERSONAL HEROKU ADD-ON WITH DOCKER

Владимир Ярцев, Tехнический директор в Cloud Castle

В каталоге аддонов Heroku более 100 готовых микросервисов, но иногда подходящего аддона нет, а с Heroku уходить не хочется.
Одно из решений — Docker, который позволяет собрать микросервис, взяв за основу образ с Docker Hub. Вот только поддержка инфраструктуры микросервиса в этом случае ложится на плечи разработчика.
Я расскажу, как совместить удобство Heroku с гибкостью Docker, заставив микросервис вести себя как аддон Heroku.

Как вы заметили, докладов стало больше. Это потому, что русскоязычные спикеры теперь выступают в два параллельных потока. В связи с этим мы переезжаем на новую площадку — Конгресс-центр Технополис Москва. Кстати, в программе еще осталось два свободных слота, а также 4 слота для блиц-докладов по 10 минут. Хотите проявить себя? Пишите на elena@evrone.ru.

В этом году нас уже поддерживают три замечательные компании:

Генеральный спонсор:

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

Золотой спонсор:

Cloud Castle — разработчик мобильных и веб-приложений на Ruby On Rails для стартапов и развивающегося бизнеса в Самаре, Нью-Йорке и Шарлотте. Мы помогаем предпринимателям запустить мобильные и веб-сервисы для их бизнеса.

Серебряный спонсор:

AT-Consulting — один из сильнейших игроков на рынке информационных технологий и ИТ-услуг для компаний телекоммуникационного, финансового, государственного, топливно-энергетического и других секторов.

Приглашаем партнеров!
И конечно, приходите на RailsClub 2015 — регистрация тут.

Бонус для тех, кто дочитал до конца: видео руби секции с DevConf 2015 и второго Ruby митапа. Приятного просмотра!

Источник: rubyflow.ru

Вход для пользователей

Новые пользователи