Толстые модели сложны в поддержке. Они, конечно, лучше, чем контроллеры, захламленные логикой предметной области, но, как правило, нарушают Single Responsibility Principle(SRP). “Всё, что делает пользователь” не является single responsibility.
В начале проекта SRP соблюдается легко. Но со временем модели становятся де-факто местом для бизнес-логики. И спустя два года у модели User больше 500 строчек кода и 50 методов в public.
Цель проектирования — раскладывать растущее приложение по маленьким инкапсулированным объектам и модулям. Fat models, skinny controllers — первый шаг в рефакторинге, так давайте сделаем и второй.Читать полностью »
Рубрика «ruby on rails» - 34
7 паттернов рефакторинга толстых моделей в Rails
2012-11-09 в 11:14, admin, рубрики: ruby on rails, переводы, рефакторинг, метки: ruby on rails, рефакторингКак подружить Sphinx с OpenShift для ThinkingSphinx под Rails
2012-11-08 в 14:45, admin, рубрики: openshift, ruby on rails, ruby on rails 3, sphinx, Серверное администрирование, метки: OpenShift, ruby on rails 3, sphinx Для стейджинга моих небольших проектов на Rails я использую Openshift. Впринципе для небольших проектов он очень удобен — удобный деплой, все самое необходимое из коробки. Чего еще душе может быть необходимо? Но душа захотела сфинкса, при том очень сильно хзахотела. Так как среди картриджей я сфинкса не обнаружил, то пошел в google за советом.
А в гугле ничего… Ну или почти ничего. Все советовали поднимать DIY, накатывать все вручную, некоторые из моих знакомых советовали пересесть на AWS, но я в упор не хотел признавать, что под OpenShift нельзя поднять сфинкс. А так как приложение уже крутилось под сборкой для рельс то и DIY создавать не хотелось и я, стал думать как же все-таки поднять sphinx в уже готовой среде.
Под катом то, что я придумал.
Читать полностью »
Puppet под нагрузкой
2012-11-01 в 12:50, admin, рубрики: badoo, highload, linux, puppet, ruby on rails, unicorn, баду, Блог компании Badoo, высокая нагрузка, конфигурирование, системное администрирование, метки: badoo, highload, puppet, ruby on rails, unicorn, баду, высокая нагрузка, конфигурированиеPuppet — довольно удобный инструмент для управления конфигурациями. По сути, это система, которая позволяет автоматизировать настройку и управление большим парком машин и сервисов.
Базовой информации о самой системе много, в том числе и на Хабре: здесь, здесь и здесь. Мы же постарались собрать в одной статье несколько «рецептов» использования Puppet под действительно большими нагрузками — в «боевых условиях» Badoo.
О чём пойдет речь:
- Puppet: ликбез;
- кластеризация, масштабирование;
- асинхронный Storeconfigs;
- сбор отчётов;
- анализ полученных данных.
Pow — легкий, быстрый, удобный
2012-10-31 в 8:46, admin, рубрики: mac os x, ruby on rails, Веб-разработка, метки: ruby on railsКак много у вас приложений, сайтов, систем на Ruby, запускаемых под Rails и другие frameworks? Как часто вам приходится лезть в терминал и запускать приложения через 'rails s' и другие консольные команды? Это трата времени, сложность в управлении (в плане организации проектов). Как было бы хорошо, если бы все проекты были бы в одном месте и запускались по одному клику…
Я хочу рассказать вам про Pow. С одной стороны это простой Rack сервер для запуска ваших проектов, с другой стороны это очень удобный инструмент. Сервер разработан компанией 37signals. Единственная оговорка: сервер работает только под Mac OSX.
Читать полностью »
Унаследованные базы данных в Rails 3
2012-10-18 в 9:48, admin, рубрики: class, ruby on rails, метки: class, ruby on rails Основано на реальных событиях, произошедших(происходящих) с реальными людьми.
Если вы работаете с унаследованными базами данных, у вас не всегда есть возможность менять имена полей, когда поля начинают конфликтовать с Ruby on Rails. Самый простой пример, это поле с именем 'class' в одной из ваших таблиц. Рельсам это действительно не нравится. Это как теща, которой не нравится твоя новая прическа, и она обращает на это внимание при любой возможности.
В виду отсутствия драматургического таланта, переводчик не смог, породить более яркую метафору, создающую общую ассоциацию, в противоположность частной
Опыт участия в RailsRumble
2012-10-17 в 17:40, admin, рубрики: railsrumble, ruby, ruby on rails, оценка сроков, планирование, Программирование, управление проектами, метки: railsrumble, ruby, ruby on rails, оценка сроков, планированиеВ прошедшие выходные (13 и 14 октября) мы с aishek и еще двумя нашими коллегами участвовали в хакатоне Rails Rumble 2012. По условиям конкурса за 48 часов нужно задеплоить готовое Rails-приложение.
Надо сказать, что кроме выпитого ящика пива и прочего фана мы получили действительно хороший опыт.
Читать полностью »
Опыт участия в Rails Rumble
2012-10-17 в 17:40, admin, рубрики: railsrumble, ruby, ruby on rails, оценка сроков, планирование, Программирование, управление проектами, метки: railsrumble, ruby, ruby on rails, оценка сроков, планированиеВ прошедшие выходные (13 и 14 октября) мы с aishek и еще двумя нашими коллегами участвовали в хакатоне Rails Rumble 2012. По условиям конкурса за 48 часов нужно задеплоить готовое Rails-приложение.
Надо сказать, что кроме выпитого ящика пива и прочего фана мы получили действительно хороший опыт.
Читать полностью »
GitFM – рекомендации Github репозиториев
2012-10-15 в 17:28, admin, рубрики: eventmachine, github, railsrumble, ruby, ruby on rails, Песочница, метки: eventmachine, github, railsrumble, ruby, ruby on rails
Gitfm.com – сервис персональных рекомендаций Github репозиториев на основе коллаборативной фильтрации starred репозиториев пользователя.
Под катом описание архитектуры и двухдневная хроника, т.к. проект был создан с нуля за 48 часов в рамках конкурса RailsRumble2012.
Читать полностью »
RailsClub’Moscow 2012. Материалы
2012-10-12 в 15:12, admin, рубрики: railsclub, railsclub.ru, ruby, ruby on rails, Блог компании «RailsClub», конференция, метки: railsclub, railsclub.ru, ruby, ruby on rails, конференцияДобрый вечер, уважаемые посетители конференций RailsClub.
В сентябре мы провели нашу очередную конференцию. Хотим искренне поблагодарить всех участников, пришедших на наше мероприятие.
В этот раз нас собралось действительно много. Я рад, что увидел много новых лиц. По моим ощущениям, процентов 80 из пришедших ребят — мне не знакомы. Это значит, что наше сообщество стремительно растет. И я очень рад тому, что railsclub вносит свой вклад в развитие сообщества и способствует данному росту.
Наши мероприятия продолжаются. Впереди нас ждет секция railslub'а на highload'е и конференция RailsClub'Ульяновск.
Друзья, простите, пожалуйста, за некоторые задержки в публикации материалов конференции. Наконец, нам удалось собрать все вместе.
Фотографии:
Конференция — www.facebook.com/media/set/?set=a.282688708508940.59084.115204928590653
AfterParty — www.facebook.com/media/set/?set=a.283311401780004.59279.115204928590653
Видео — railsclub.ru/materials/video_2
Презентации — railsclub.ru/files/presentations/railsclub_moscow_2012.zip
Еще раз благодарим наших спонсоров и всех, кто помогал нам.
Ruby-встречи в Санкт-Петербурге снова в моде
2012-10-11 в 7:54, admin, рубрики: javascript, rails, ruby, ruby on rails, общение, метки: javascript, rails, ruby, общение В четверг 4 октября в Бизнес Инкубаторе «Ингрия» прошла первая встреча Saint Petersburg Ruby User Group. Хотелось бы провести некую ретроспективу мероприятия, подвести итоги, собрать мнения и рассказать о дальнейших планах.
Читать полностью »