Варимся в собственном соку?

Статус
В этой теме нельзя размещать новые ответы.

AmdY

Пью пиво
Команда форума
Автор оригинала: HraKK
обоснуй
сугубо имхо.
в вебе есть задачи:
1. вывод коллекции
2. вывод одного айтема
3. форма редактирования айтема
4. другое
если 1-3 будет делать модель, это сэкономит процентов >80% времени разработки. функции контроллера очень успешно можно перенести на вэб сервер. и т.д. пока это чисто моя теория, надеюсь, в последствии облепить её кодом.
 

HraKK

Мудак
Команда форума
Ирокез
уверен у AmdY будет свое объяснение, но мне приходилось разрабатывать не только то что видит посетитель, но и soap сервисы, и прочее, где необходимость mvc ну просто отсутсвует, в то-же время кеширование, бд... очень востребовательно
Всем приходилось, не надо куда угодно mvc совать да? Еще в hello word воткни.

-~{}~ 23.02.09 20:34:

AmdY
Смотри вот моя цмс:
1. вывод коллекции
Например колекция новостей, роутер направляет в модуль публикаций, в публицации в контроллере по запросу назначается нужная категория что асигнится в View $this->view = $Category;
Во вью я уже пишу
PHP:
<?php forech( $Category->getArticles() as $Article):?>
<li><?=$Article->title?>
<?php endforeach?>
При запросе нужных данных, они беруться из модели.
[quote]2. вывод одного айтема[/QUOTE]
Аналогично
[quote]3. форма редактирования айтема[/QUOTE]
Все тоже самое, только данные приходят на ActiveRecord. 
[quote]4. другое[/QUOTE]
Создаем свой контролер и описываем действие.

Не знаю где ты тут найдешь 80% времени разработки - но как по мне наоборот в сложных системах уменшит. Я модель вообще сделал и не трогаю от проекта к прокту, обьекты тоже, только разные Action на контроллеры цепляю)
 

AmdY

Пью пиво
Команда форума
HraKK
а сортировка, пэйджинг, всё это приходился делать в контроллере получаем параметры, в модели применяем условия, во вью меняем шаблон, а форму тоже нужно ручками прописывать всё во вьюхе?
хотя согласен, 80 - это относится к плохим фреймворкам.
 

HraKK

Мудак
Команда форума
Сортирвка во вьюхе, указываешь как параметр.
Пейджинг - только в контролеере указываешь что нужен обьект Paginator.
Шаблон в любом случае придется менять только тут ты в моделе будешь описывать поведение а тут я в шаблоне
<?php foreach( $Paginator->getList() as $Row):?>
 

AmdY

Пью пиво
Команда форума
ой, сразу не обратил внимание, что ты тащишь данные прямо в вьюхе. вот я в принципе и говорил о таких спорных взглядах, а mvc привёл к примеры.
чесно объявляю свой слив, не готов спорить о таких обстрактных на данный момент своих теориях. когда попробую свою идею, поделюсь опытом.
 

pilot911

Новичок
все так сложно у вас.. и как это админить, новости писать, новые страницы создавать.. думайте лучше об интерфейсах, фреймворков хватает выше крыши
 

fixxxer

К.О.
Партнер клуба
>> сортировка, пэйджинг, всё это приходился делать в контроллере

такой mvc действительно не нужен. потому что это не mvc, а какая-то фигня.

-~{}~ 24.02.09 07:47:

а вот пост Пилота меня даже несколько смутил, потому что он, в конечном счете, прав. Фреймворки нужны программистам, конечному пользователю совершенно по фигу на качество кода :)

я достаточно насмотрелся на фреймворки, писавшиеся месяцами, вроде бы в деталях продуманные, но при разработке на них они фейлились на совершенно обыкновенных по сути задачах -- сделать страницу, как на макете, с описанным поведением: хак на хаке получался. Спрашивается, зачем нам фреймворк, если его использование только все усложняет.

с другой стороны, достаточно беглого взгляда на код Пилотовского движка, чтобы убедиться, что design patterns все-таки офигенная штука. :) (
pilot911, не обижайся ;))

какой вывод можно сделать. Написать фреймворк, который заранее решит все проблемы, невозможно. Лучше всего его выделить впоследствии из грамотно написанного достаточно сложного проекта. И исползовать для других своих же собственных проектов. А универсальнвый фреймворк, который устроит всех, это утопия.
Фреймворком, кстати, я считаю "абстрактное приложение", расширяемое для реализации нужного функционала. А например ZF, или WACT, это скорее набор библиотек, способных при соответствующей обвязке образовать фреймворк. Так вот для задач, отличающихся от типовых, удобнее как раз последнее :)
Ну и опять же, не стоит все заранее пытаться спланировать. Не получится. Говнокодим, реафкторим, говнокодим, рефакторим - это нормальный цикл разработки.

Сумбурно чото получилось, но может мысль понятна.

-~{}~ 24.02.09 07:59:

А, и вот еще, самое важное то я упустил. Перейдем немножко в плоскость бизнеса, а точнее рассмотрим затраты на техническую сторону любого проекта. Затраты (немножко грубо, но для наших рассуждений достаточно такой точности) состоят из затрат на разработку и затрат на поддержку. Возьмем одну крайность, наймем индусов за еду, затраты на разработку будут невелики, но последующие затраты на поддержку этого кода превысят все возможные рамки, вплоть до полного переписывания. Такое, кстати, бывает в жизни, и после этого можно броситься в другую крайность. Нанять супер-дупер профи, помешанных на этом деле, и дать им полную свободу действий. Они сделают хорошую архитектуру, напишут замечательный код, но любой человек увлекается. Программирование это само по себе искусство абстрагирования, выделения общего. И этим можно заниматься бесконечно. Увлечься тут крайне легко, и получим мы мегауниверсальный фреймворк, потенциально решающий в сто раз больше задач, чем необходимо, за время разработки, на порядки превышающее действительно необходимое для решения изначальной задачи.
То есть, во всем нужен баланс. А баланс - именно затрат на разработку и на поддержку.
Ключ к успеху - своевременный рефакторинг. Индусы его делают позже, чем надо (или вообще не делают), увлеченные профи - с самого начала. И то, и другое - ошибка. Всему свое время ;)
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
fixxxer
Золотые слова "Написать фреймворк, который заранее решит все проблемы, невозможно"

Никто и не предлагает писать очередной фремворк их действительно великое множество и пользуются ими ну совсем незначительная часть + сами разрабочики.

Поэтому суть не в написании типового фреймворка, а создание типовых решение отдельных задач. Ну к примеру nested tree, тот-же пагнификатор и т.д. т.е. не представление этих элементов а отточеный алгоритм.

То-же +1 "Ключ к успеху - своевременный рефакторинг", но одно дело когда для твоего бизнеса достаточно установить отдельный компонент, второе дело, когда тебе самому помимо поддержания бизнеса и движение вперед необходимо проводить рефакторинг. Согласен это на любителя, можно годами оттачивать свою реализацию и не знать что уже есть более продвинутые и грамотные решение
 

zerkms

TDD infected
Команда форума
[offtop]
слава богу запилили тему про кризис и программистов и нашли новую игрушку
[/offtop]

:))
 

pilot911

Новичок
fixxxer

от тебя критика принимается со "спасибо", умеешь же ты критиковать.. так мягко и ненавзячиво

ядро надо будет еще раз обдумать, мало критики, к сожалению

но промеж делом, сделал новое видео по управлению новостным ресурсом с моментальной сменой структуры любой страницы - оцените, мне интересно ваше мнение

http://telenok.org/ru/possibilities/#video
 

atv

Новичок
я пытаюсь донести идею, что нет целостных законченых кубиков на основе которых можно строить orm-ы crm-ы и т.д.
Хто сказал что нет :) А PHP_Application :))) Там компонентная архитектура, приложение собираешь только из необходимых тебе компонентов.

У тебя приложение для командной строки, отлично, часть компонентов не используешь, причём действительно не используешь (не подключаешь их к проекту), а не как в Симфони колдуешь с настройками, логика которых отрабатывает при каждом запуске приложения.

У тебя СОАП сервис, хорошо, используешь другой набор компонентов.

Тебе необходимо использовать свой компонент вместо готового, без проблем, подставляешь свой, который будет обслуживать те же события.

А LightOrm как раз и строиться на основе кубиков из PHP_Application

Лучше всего его выделить впоследствии из грамотно написанного достаточно сложного проекта.
А кто сказал что именно так не делается? Спроси у того же zerkms.

Ну к примеру nested tree, тот-же пагнификатор и т.д. т.е. не представление этих элементов а отточеный алгоритм
Ну так есть же!!! (тут нужно было бы сказать "посмотри PHP_Application" :D ).
И про какое представление ты говоришь в nested tree? И в чём сложность алгоритма "пагнификатора", что его нужно распространять отдельной библиотекой? А в PEAR ты заглядывал?
 

HraKK

Мудак
Команда форума
pilot911
Всеравно все остались при мнении что графически не верстают шаблоны.
+ Увидел настройки роутера в цмске - это вообще 5! А пхп код который эвалиться как по мне все 100!))
 

pilot911

Новичок
Автор оригинала: HraKK
pilot911
Все равно все остались при мнении что графически не верстают шаблоны.
+ Увидел настройки роутера в цмске - это вообще 5! А пхп код который эвалиться как по мне все 100!))
это круто, очень удобная фича :)

ибо: кто-то же должен в роутер загонять строки для регулярки ? пусть это будет удобно и через админский интерфейс, чем копанием в коде и поблемами в отслеживании существующих URLов
 

HraKK

Мудак
Команда форума
безп*сды это круто! Как и php код в админке. Все это просто нереально круто.
 

HraKK

Мудак
Команда форума
Вот это и есть конкретно.
Я всю жизнь мечтал создавая странички прописывать в админке роутинг и пхп код.
 

pilot911

Новичок
Автор оригинала: HraKK
Вот это и есть конкретно.
Я всю жизнь мечтал создавая странички прописывать в админке роутинг и пхп код.
ну ладно, как это делается у тебя ?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху