Работаем над web приложением(на Catalyst), где часть функционала -
построение разнообразных отчетов. Отчеты строятся на стороне
клиента(графики, таблицы) на основании данных, получаемых с сервера. У
нас тут возник философский спор, как было бы лучше реализовать данную
часть приложения.
Идея первая: весь функционал по формированию данных для отчетов
выносится в отдельный класс(независимый от web). В Catalyst создается
контроллер reports, который занимается просто передачей параметров на
вход упомянутого выше класса. Например: /reports?
report=ReportA&accounts=1,2,3&date=A
Идея вторая: тот же самый контроллер reports наполняется конкретными
реализациями отчетов(или функциями, передающими запросы классам
логики). Например: /reports/reporta?accounts=1,2,3&date=A
Оба подхода более-менее взаимозаменяемы, но какой было бы лучше
выбрать? Или есть еще другие варианты, которые мы упустили?
On 11/04/2011 07:12 PM, Serg Gulko wrote:
> В Catalyst создается
> контроллер reports, который занимается просто передачей параметров на
> вход упомянутого выше класса.
>
> Идея вторая: тот же самый контроллер reports наполняется конкретными
> реализациями отчетов(или функциями, передающими запросы классам
> логики).
Этот вопрос для похож на "MVC или просто VC" ? И раз этот вопрос вообще
возник, значит модель будет достаточно большой.
Я бы пошел по пути MVC - уже потому, что модель будет намного проще
тестировать. Я уже не говорю о возможном повтороном использовании кода.
--
Regards
yko
ИМХО, выносить реализацию отчетов в контроллер - это далеко ну лучший
вариант. И кроме того, он усложнит тестирование логики отчетов.
--
З повагою,
Віктор Турський
Боюсь тут имеется ввиду вопрос MVC vs (VC + отдельная логика)
Я выступаю за MVC потому как оно самодостаточно. А писать отдельный
универсальный контроллер, который будет заниматся диспетчеризацией
запросов к внешней логике имхо лишне. Собственно этим уже сам каталист
занимается. Диспетчеризирует вызовы к собственным моделям.
Внешняя логика переносима и более тестируемв, но при этом добавляется еще
один уровень абстракции.
--
С Уважением, Николай aka Nab.
"пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ пїЅ пїЅпїЅпїЅ, пїЅ пїЅпїЅпїЅ" пїЅ Bearman (пїЅпїЅпїЅ пїЅпїЅпїЅ-пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ)
--- пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ ---
пїЅпїЅ пїЅпїЅпїЅпїЅ: "Serg Gulko" <s.g...@gmail.com>
пїЅпїЅпїЅпїЅ: "Kiev Perl Users Group" <kiev-perl-...@googlegroups.com>
пїЅпїЅпїЅпїЅ: 4 пїЅпїЅпїЅпїЅпїЅпїЅ 2011, 20:12:39
пїЅпїЅпїЅпїЅ: пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
> пїЅпїЅпїЅпїЅпїЅпїЅпїЅ, пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ...
>
> пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ web пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ(пїЅпїЅ Catalyst), пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ -
> пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ. пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
> пїЅпїЅпїЅпїЅпїЅпїЅпїЅ(пїЅпїЅпїЅпїЅпїЅпїЅпїЅ, пїЅпїЅпїЅпїЅпїЅпїЅпїЅ) пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ, пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ. пїЅ
> пїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ, пїЅпїЅпїЅ пїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ
> пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ.
>
> пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ: пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
> пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ(пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ web). пїЅ Catalyst пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
> пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ reports, пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ
> пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ. пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ: /reports?
> report=ReportA&accounts=1,2,3&date=A
>
> пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ: пїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ reports пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
> пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ(пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ, пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
> пїЅпїЅпїЅпїЅпїЅпїЅ). пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ: /reports/reporta?accounts=1,2,3&date=A
>
> пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ-пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ, пїЅпїЅ пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅ
> пїЅпїЅпїЅпїЅпїЅпїЅпїЅ? пїЅпїЅпїЅ пїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ, пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ?
:D "говно будет и так, и так" © Bearman (или кто-то другой) --- Исходное сообщение --- От кого: "Serg Gulko" <s.g...@gmail.com> Кому: "Kiev Perl Users Group" <kiev-perl-...@googlegroups.com> Дата: 4 ноября 2011, 20:12:39 Тема: Построение системы отчетов > Коллеги, поделитесь опытом... > > Работаем над web приложением(на Catalyst), где часть функционала - > построение разнообразных отчетов. Отчеты строятся на стороне > клиента(графики, таблицы) на основании данных, получаемых с сервера. У > нас тут возник философский спор, как было бы лучше реализовать данную > часть приложения. > > Идея первая: весь функционал по формированию данных для отчетов > выносится в отдельный класс(независимый от web). В Catalyst создается > контроллер reports, который занимается просто передачей параметров на > вход упомянутого выше класса. Например: /reports? > report=ReportA&accounts=1,2,3&date=A > > Идея вторая: тот же самый контроллер reports наполняется конкретными > реализациями отчетов(или функциями, передающими запросы классам > логики). Например: /reports/reporta?accounts=1,2,3&date=A > > Оба подхода более-менее взаимозаменяемы, но какой было бы лучше > выбрать? Или есть еще другие варианты, которые мы упустили?
Внешняя логика переносима и более тестируемв, но при этом добавляется еще один уровень абстракции.
05.11.11, Serg V. Gulko<s.g...@gmail.com> написал(а):
>
>
>> Внешняя логика переносима и более тестируемв, но при этом добавляется еще
>>
>> один уровень абстракции.
>>
>
> Скорее, обертку.
>
--
Best Regards!
Nickolay Briginetc.