Рецепты для Yii 2
23 октября 2016
Доклад от члена команды Yii, Дмитрия Науменко.
23 октября 2016
Доклад от члена команды Yii, Дмитрия Науменко.
© 2005—2025, Александр Макаров (Sam Dark)
~ дизайн: fazeful design //Отработало за 0.01314 с. Скушано памяти: 0.82MB
Комментарии RSS по email OK
Жуткий звук просто
Вот теперь стало ясно, а то я никак не мог уловить зачем пихать бизнес-логику в модель, но всё равно туда её пихал, типа в MVC так нужно :D
Аналогичная презентация от Дмитрия была в Одессе, но звук там лучше - www.youtube.com/watch?v=WL0-bd2Afho
У него, кстати, есть еще интересные презентации - slides.silverfire.me
VitaliyL, там совсем другая презентация.
Sam Дима вначале сам сказал, что в Одессе уже читал этот доклад
Да, но по факту доклад отличается.
Немного не понял, почему плохо в контроллерах писать голый SQL? Если это например статистика, то почему нет?
XAKEPEHOK, потому что это не задача контроллера. Его дело — принять данные и передать view или модели, забрать результат и отдать далее.
Sam, все равно не пойму. Если у меня есть вывод какой-то сложной статистики, состоящей из скажем 5 разных запросов, которые с использованием AR делать бесполезно, т.к. они используют фитчи, специфичные для конкретной СУБД. Эта статистика 100% нигде в другом месте юзаться не будет. Для чего в таком случае делать отдельные сущности? Ради абстракции в случае скажем смены движка БД? Тоже сомнительно в виду того, что весь код хоть как будет лежать в одном месте
Но если мы не тестируем и 99% не будем ничего менять, оно, по факту, может оставаться и в контроллере.
Понял. Про тесты не подумал (только начинаю их юзать). Спасибо!
Sam, я не понимаю в чём отличается, посмотрел с плохим звуком, теперь открыл одесскую версию и вижу всё тоже самое. Что эе отличается?
Конец.
Спасибо за доклад, все четко. Побольше бы таких докладов.
Задам возможно глупый вопрос. А есть ли стандартное название или положение директорий для классов бизнес логики или это уже на усмотрение программистов, я просто создаю в корне модуля папку classes и туда все складываю, но есть сомнения, что это не особо правильно и возможно для этого есть специальные места, но в доке я не нашел. Спасибо.
На усмотрение. Среди полюбившихся мне: logic, domain (от DDD)
Да, отличается в первую очередь развернутостью. Харьковский я читал после того, как еще раз переосмыслил некоторые вещи.
Спасибо за отзывы
Звук вообще писался с петлички, которая была на мне. Почему на видео взяли звук с камеры - понятия не имею. Неделю назад купил себе хорошую петличку и в будущем буду сам записывать звук, чтобы не было таких провтыков
Дмитрий Спасибо! Вы меня чутка левелапнули... доменный подход понравился, сейчас я только модели наследовал для конкретной логики.
Я сейчас делаю минимум 1 наследование.. сейчас схема такая:
Уровень автогенерации модели в директории /model/activeRecords - только то что автогенерируется через gii, ручками не трогаем
Базовый уровень логики /model/activeModels - либо вся бизнес логика, либо только общая
/model/activeModels/currentLogicName - некая конкретная логика, если надо еще правил валидации накидать для какого-то данного случая, в случае если модель разраслась и требуется раскидать её на разные части.
После доклада видимо добавлю такую штукенцию
/model/ddd/(logic name)/(sublogic name)/(...)
XAKEPEHOK,
Читал как-то одну интересную книжку по ООП, в которой было написано о том, что MVC является составным паттерном и состоит он из двух паттернов: Наблюдатель и Стратегия.. Взаимоотношения между Контроллером - Моделью и Контроллером - Видом должны реализовать паттерн стратегия...
Это значит, что контроллер должен выполнять только функцию выбора из множества моделей и множества видов...
Взаимоотношения между моделью и видом это паттерн наблюдатель... Это значит что Модель должна оповещать вид об изменении своего состояния напрямую.. без контроллера...
Если эти условия не выполняются , возможно, что Вы реализовали не MVC, а что - то другое.
kosuha606, книга была явно не про MVC в том виде, что он используется в веб.
sam,
Да конечно там было все на Java и с взаимоотношениями между видом и моделью я загнул.. просто сказал как это есть в Java, но речь же о контроллерах...
Мне кажется, что Контроллер должен реализовать паттерн Стратегия и в Веб тоже.. может я и не прав.
MVC в вебе отличается. Если уж мы говорим про Java, то это у нас будет Model 2.