Рубрика «ruby on rails» - 34

ActiveSupport::Notifications – это встроенная в рельсы система уведомлений. Вы можете подписаться на определенные уведомления в Rails и вызывать свой код когда они будут посланы. Это чем-то похоже на ActiveSupport::Callbacks, но работают во всем проекте и события не нужно заранее объявлять.

Читать полностью »

Ruby на вашем сервере может работать в 2 раза медленее из за RVM
Просматривая сегодня «Ruby Inside», наткнулся на статью Justin Kulesza Is Your Application Running with Ruby – Slow?. Статья от 6 ноября, но Хабре об этой ситуации ни слова. А суть статьи вот в чем: ребята переносили свое приложение с сервера на Solaris на сервер с Ubuntu и использовали RVM для компиляции Ruby. Однако после переноса они заметили, что приложение стало как-будто бы тормознутее. Сначала погрешили на железо, но быстро выяснили, что дело в RVM, а именно в том, что RVM совершенно не использует оптимизацию при компиляции.
Читать полностью »

Успешный программный продукт обычно проходит за свою жизнь через руки множества разработчиков. Вы — лишь одно из звеньев в цепочке опекунов вашего проекта, и каждая строчка кода, которую Вы написали — это оставленный Вами артефакт, который когда-нибудь будет изучаться Будущим Разработчиком. Также, как Вы унаследовали решения разработчиков, которые были до Вас, другие разработчики унаследуют решения, которые Вы делаете сегодня. Они получат от нас в наследство все наши недоразумения, срезанные нами углы, примененные нами недопонятые паттерны и техники, наше невнимание к деталям, нашу лень, наши изменения, сделанные на скорую руку, наших скелетов в шкафах, наше грязное белье. И гораздо реже — выгоду от нашей дисциплинированности, наших обсуждений и подготовок.

Работая в интересах Будущих Разработчиков
Читать полностью »

Толстые модели сложны в поддержке. Они, конечно, лучше, чем контроллеры, захламленные логикой предметной области, но, как правило, нарушают Single Responsibility Principle(SRP). “Всё, что делает пользователь” не является single responsibility.
В начале проекта SRP соблюдается легко. Но со временем модели становятся де-факто местом для бизнес-логики. И спустя два года у модели User больше 500 строчек кода и 50 методов в public.
Цель проектирования — раскладывать растущее приложение по маленьким инкапсулированным объектам и модулям. Fat models, skinny controllers — первый шаг в рефакторинге, так давайте сделаем и второй.Читать полностью »

Для стейджинга моих небольших проектов на Rails я использую Openshift. Впринципе для небольших проектов он очень удобен — удобный деплой, все самое необходимое из коробки. Чего еще душе может быть необходимо? Но душа захотела сфинкса, при том очень сильно хзахотела. Так как среди картриджей я сфинкса не обнаружил, то пошел в google за советом.
А в гугле ничего… Ну или почти ничего. Все советовали поднимать DIY, накатывать все вручную, некоторые из моих знакомых советовали пересесть на AWS, но я в упор не хотел признавать, что под OpenShift нельзя поднять сфинкс. А так как приложение уже крутилось под сборкой для рельс то и DIY создавать не хотелось и я, стал думать как же все-таки поднять sphinx в уже готовой среде.
Под катом то, что я придумал.
Читать полностью »

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

Базовой информации о самой системе много, в том числе и на Хабре: здесь, здесь и здесь. Мы же постарались собрать в одной статье несколько «рецептов» использования Puppet под действительно большими нагрузками — в «боевых условиях» Badoo.

О чём пойдет речь:

  • Puppet: ликбез;
  • кластеризация, масштабирование;
  • асинхронный Storeconfigs;
  • сбор отчётов;
  • анализ полученных данных.

Читать полностью »

Как много у вас приложений, сайтов, систем на Ruby, запускаемых под Rails и другие frameworks? Как часто вам приходится лезть в терминал и запускать приложения через 'rails s' и другие консольные команды? Это трата времени, сложность в управлении (в плане организации проектов). Как было бы хорошо, если бы все проекты были бы в одном месте и запускались по одному клику…

Я хочу рассказать вам про Pow. С одной стороны это простой Rack сервер для запуска ваших проектов, с другой стороны это очень удобный инструмент. Сервер разработан компанией 37signals. Единственная оговорка: сервер работает только под Mac OSX.
Читать полностью »

Основано на реальных событиях, произошедших(происходящих) с реальными людьми.
Унаследованные базы данных в Rails 3
Если вы работаете с унаследованными базами данных, у вас не всегда есть возможность менять имена полей, когда поля начинают конфликтовать с Ruby on Rails. Самый простой пример, это поле с именем 'class' в одной из ваших таблиц. Рельсам это действительно не нравится. Это как теща, которой не нравится твоя новая прическа, и она обращает на это внимание при любой возможности.

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

Читать полностью »

В прошедшие выходные (13 и 14 октября) мы с aishek и еще двумя нашими коллегами участвовали в хакатоне Rails Rumble 2012. По условиям конкурса за 48 часов нужно задеплоить готовое Rails-приложение.

Надо сказать, что кроме выпитого ящика пива и прочего фана мы получили действительно хороший опыт.
Читать полностью »

В прошедшие выходные (13 и 14 октября) мы с aishek и еще двумя нашими коллегами участвовали в хакатоне Rails Rumble 2012. По условиям конкурса за 48 часов нужно задеплоить готовое Rails-приложение.

Надо сказать, что кроме выпитого ящика пива и прочего фана мы получили действительно хороший опыт.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js