> "/config/app-" + Rails.env + ".yml")
> Зачем мне тут дополнительный уровень косвенности?
Там немного другой подход, конфиг можно делать на каждый компонент,
это позволяет легко их настраивать.
И поэтому удобно когда это делается автоматически а не вручную каждый
раз.
> Покажи код, который ты считаешь сложным и как ты его упростишь? Я не
> увидел пока этого в примерах.
Хм, там вроде есть (во вчерашних примерах не было, но седня в новом я
добавил это), в случае без Micon'а нужен такой код:
# reading application config
require 'yaml'
Ultima.config = YAML.load_file "#{dir}/config/config.yml"
# initializing router
require 'router'
router = Router.new
router.url_root = Ultima.config['url_root']
Ultima.router = router
# loading request and controller
require 'request'
require 'controller'
# Assemblilng Application
require 'pages_controller'
А во втором примере, с Micon - все это делается автоматически.
По настоящему сложный пример привести сложно потому что это-же всетаки
пример а не полноценное приложение.
> Непонятно, какая проблема решается.
Я лично использую его в качестве склета для небольшлго фреймворка -
клона рельсов ( http://ruby-lang.info как пример простого сайта).
Одной из задач было - сделать возможным разделение как приложения так
и самого фреймворка на части, и пытаясь сделать это я заметил что
многократно повторяю один и тот-же сценарий связанный со сборкой
компонентов. Я выделил его в отдельный фреймворк - это собственно
Micon и есть.
Но наверно да, такой низкоуровневый компонент, без конкретного примера
- не особо понятно зачем он нужен.
On 16 авг, 23:51, Max Lapshin <max.laps...@gmail.com> wrote:
> 2011/8/16 alexey.petrushin <alexey.petrus...@gmail.com>:
>
> > Так-же как AcriveRecord делает тривиальными вполне себе сложные
> > запросы. Он делает простыми запросы на которые приходится 90% всех
> > случаев использования и прямой доступ к драйверу если нужно что-то
> > специфичное.
>
> ActiveRecord делает тривиальными тривиальные запросы, которые в силу
> говорливого SQL-я выглядят достаточно громоздко, хотя от этого не
> перестают быть тривиальными.
>
> Если запрос на SQL действительно сложный, то ActiveRecord не спасает.
> Причём тут IoC я не понимаю.
>
> > Так-же и тут, большая часть всех зависимостей сводится к таким вещам
> > как: загрузить зависимости, загрузить код, загрузить конфиг, собрать и
> > связать с другим приложением. Micon разрешает такие случаи
> > автоматически.
>
> Вот в чём проблема то в рельсах загрузить код? Даже require писать уже
> не надо: автолоадер стал достаточно предсказуемым и очень удобным.
> Загрузить конфиг проще простого: Config = YAML.load(Rails.root +
> "/config/app-" + Rails.env + ".yml")
> Зачем мне тут дополнительный уровень косвенности?
>
> > Зачем делают рефакторинг и удаление ненужного и лишнего кода? Чтобы
> > упростить систему.
>
> Покажи код, который ты считаешь сложным и как ты его упростишь? Я не
> увидел пока этого в примерах.
>
> > Скажем так, этого почти не бывает в рельсах, точнее я не видел,
>
> Во-первых <<я не видел>> -- это хорошая поправка. На деле возникают проблемы.
>
> Вот делали мы биллинг. Думаешь это очень просто так задизайнить
> систему приёма платежей так, что бы её можно было выдрать из одного
> приложения и вставить в другое? Хрен там. Я вообще не уверен в том,
> что это возможно сделать и причина тому в том, что действительно
> разнообразная бизнес-логика делает механизм обобщенного наследования
> кода неприемлемо сложным.
>
> Т.е. условного говоря написать обобщенный фреймворк на все случаи
> жизни становится хуже, чем копипастить какие-то куски каждый раз.
>
> > наоборот, когда все модули системы инициилизируются по одному и тому-
> > же сценарию - все становится проще, знаешь куда идти и где искать, чем
> > когда каждый модуль имеет свой собственную уникальную инициализацию.
>
> Куда идти то? Написан какой-то абстрактный вызов какого-то модуля,
> который неизвестно где определится.
> Куда мне смотреть следующей строчкой?
>
> > это как посмотреть, когда этот object->invoke('setWidth', ...) всего в
> > одном экземпляре, а конструкций типа object->setXxx() сотни
> > разбросанных по всей системе - то что это спорный вопрос что проще.
>
> Явные вызовы легче отследить.
>
>
>
> > П.С.
> > кстати, если вам что-то показалось непонятным или странным в
> > документации - дайте знать пожалуйста,
>
> Непонятно, какая проблема решается.
--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
Комментариев нет:
Отправить комментарий