--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror...@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-un...@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
Совершенно точно, что для хорошей модульной системы обязательно нужна
Общая Шина Данных!
Вы лучше опишите, чего вы хотите добиться, какую задачу вы решаете. Не
на уровне реализации опишите, а на уровне бизнес логики. Может вам и
не нужна вся эта борода с ядрами и зависимостями. Контингент ror2ru
обладает весьма достойными навыками построения архитектуры систем, вам
могут подсказать более изящное решение проблемы, как только узнают в
чем состоит сама проблема, а не промежуточная стадия ее решения в
одном конкретном направлении
31 января 2012 г. 21:44 пользователь Vitaly Kurennov
<vkur...@gmail.com> написал:
--
Alex V. Dmitriev
Jabber/GTalk/MSN/AIM: rene....@gmail.com
Skype: rene-dekart
Blog: http://railorz.ru
Вот теперь все становится на порядок яснее.
Я бы посоветовал сделать следующее: вынести в модули только реально
общие части - авторизацию, отправку сообщений, управление правами и
так далее. Модули делать используя rails engine. А весь функционал,
специфичный для конкретных заказчиков, делать непосредственно в самом
приложении. Если какой-то функционал будет повторяться от заказчика к
заказчику - тоже выносить в модули, но только тогда когда как минимум
три проекта будут делить общий функционал - для двух проектов проще
патчами перекидывать изменения
Еще один вариант - это не выносить ничего в модули, а сделать некий
абстрактный скелет с общим функционалом и от него делать клоны. Git
позволяет полностью клонировать репозиторий в новый и потом
портировать изменения из общего репозиторя (core) в репозиторий
конкретного заказчика через git pull. Можно делать общие системные
изменения в главном проекте и потом портировать в клиентские, а
кастомизации делать непосредственно в клиентском репозитории.
1 февраля 2012 г. 17:52 пользователь Константин Рейдо
<konstant...@gmail.com> написал:
+1
CRM на российском рынке это такая тема... Короче, каждый вкладывает в
эти буквочки свой смысл (и свято верит, что "это и есть CRM"). А
потому, надежда заранее выделить универсальные модули прикладной
логики - в данном случае иллюзия. Универсальным, в данном случае,
будут сменно "системные" (условно) элементы функционала. Их и стоит
выделять.
Помимо таких явных проблем типа меняющести бизнес-логики на ходу, есть и другое.
Я не просто так рассказал про Общую Шину Данных. Если при
проектировании системы произнести эти слова (ОШД), то надо
расходиться в отпуск, возвращаться и делать всё с нуля. Ни одна
система на ОШД не взлетела.
Проблема мне видится в том, что пока в голове сидит ОШД, автор кода
мыслит кирпичиками бизнес-логики, которые
соединены стрелочками. Самое плохое в этом то, что ни одна система так
не устроена!
Такое восприятие сложной компьютерной системы смещает акцент с того,
что важно. А важны _потоки_ данных и управления.
Это лирика. Теперь совет. Совет такой: начать писать то, что
получается. По мере написания рефакторить, унифицировать и
если будет всё ок, то через год что-то начнет вырисовываться.
Моим признаком неплохой архитектуры является вот что: когда появляется
бизнес-требование и его получается реализовать в коде
в рамках имеющейся инфраструктуры — это неплохая архитектура.
Беда всех «модульных» систем в том, что на практике при написании
любого, даже простого модуля, приходится перекраивать архитектуру,
потому что концепция ОШД не подразумевала _такой_ коммуникации модуля
с остальными кирпичиками.
http://railorz.ru/articles/157-customization/
Топикстартеру на заметку. Все из личного опыта.
1 февраля 2012 г. 18:44 пользователь Alex Dmitriev
<rene....@gmail.com> написал: