Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Паттерны проектирования поле чтения Miško Hevery


Автор: ArNic 3.8.2012, 00:51
Почитав умных людей н тему: до какой степени птатерны могут быть злом пришел к выводу:
  • Паттерну MVC в php луше предпочесть на HMVC
  • Сингтон с интегрированным реестром удобня хреновина и не является злом, если его будет использовать ядро
  • Остальные классы должны инициализироваться в переменные
  • Метод неймспесов ничем не отличается от autoload

Чего еще не доподитожил или пришел к неверному выводу?


Автор: Sentox 3.8.2012, 01:09
Цитата

Почитав умных людей н тему: до какой степени птатерны могут быть злом пришел к выводу:

До момента когда паттерн становится "несгибаемой" парадигмой. Лучше почитать в этом случае Фаулера, сказавшего что паттерн есть фундамент построения но никак не лекарство от всех болезней и истина в последней инстанции. 
Архитектура строится взависимости от лежащих задач, а точнее, и это Вам как раз стоило бы в первую очередь изучить прежде чем браться за паттерны, по анализу предметных областей бизнес-требований вытекающий из сценариев задач и их ограничений, с последующим "вычленением" и построением зависимостей объектов предметной области и включением объектов технической области. Отсюда уже выстраиваются варианты архитектур с применением паттернов как фундаментальных наработок, но ни как жёстких условий применения.
В одном случае MVC, в другом HMVC, в третьем случае FrontController(ApplicationController)->PageController->DataLayer или  FrontController(ApplicationController)->PageController->DomainModel->DataLayer
Взависимости от требований и используется подходящая структура.

Синглтон удобен там где требуется защитить объект от непроизвольного создания новой единицы, что может понести непредсказуемые результаты и не будет злом если того будет требовать ситуация, например (не будем брать уже приевшиеся соединения) профиль пользователя (особенно если он построен в стиле AR с Gateway), отображение реляционной таблицы в множество записей (RecordSet может быть синглтоном и для производительности находится в ОП постоянно тем же демоном, если она очень не производительна или в случае очень динамичного использования).

Вот итог и ответ на все выводы в в топике.

К слову 
Цитата

Паттерну MVC в php луше предпочесть на HMVC

не в php, а в паттерне представления данных web области вцелом.

Автор: baldina 4.8.2012, 00:00
Цитата(ArNic @  3.8.2012,  00:51 Найти цитируемый пост)
Паттерну MVC в php луше предпочесть на HMVC

а если данные не иерархические?
а если в конкретной задаче целесообразнее получать части иерархии ajax запросами и модель естественно разбивается на плоские куски?
не сотвори себе кумира.
Цитата(Sentox @  3.8.2012,  01:09 Найти цитируемый пост)
 Фаулера, сказавшего что паттерн есть фундамент построения но никак не лекарство от всех болезней

что бы Фаулер ни говорил, паттерны не есть фундамент. Это прочный фундамент состоит из паттернов. Паттерн суть название метода. Выделяют их не для того, что бы научить, а что бы идентифицировать метод кратким названием, не размазывая рассказ по тарелке.

Автор: Sentox 4.8.2012, 00:11
Цитата

что бы Фаулер ни говорил, паттерны не есть фундамент. Это прочный фундамент состоит из паттернов.

ЭЭЭ .... мммм ... я есть не понимай. Так Вы за или против.
Я не виноват, виноват не Я. Жёстко конечно.
Цитата

. Выделяют их не для того, что бы научить,

Пцц, а почему нельзя взять в оборот для обучения  smile 

Автор: baldina 4.8.2012, 01:02
Цитата(Sentox @  4.8.2012,  00:11 Найти цитируемый пост)
почему нельзя взять в оборот для обучения

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

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

думаю Фаулер имел в виду, что в основе хорошего приложения можно обнаружить паттерны, т.е. качественные типовые решения.
заметьте, рассматривается готовое решение, а не метод построения.
я так понимаю, в этом мы с Вами сходимся))

 smile 
у меня был замечательный препод матана (увы, уже покойный), он говорил:
Цитата

Дифференцировать можно уметь или не уметь. Дифференцировать можно научить обезьяну.
А интегрировать можно не уметь, можно уметь, а можно уметь здорово интегрировать.


Автор: Sentox 4.8.2012, 01:10
Цитата

что в основе хорошего приложения можно обнаружить паттерны,

Цитата у Мартина, а он у кого то взял smile
"Хороший код  красив, красивый код не может быть не хорошим" 
Самое интересное Вы поддерживаете ту же сторну что и я. В чём разноглаися smile   )))))?

Цитата

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

нет, увы, уже технологии и развития шагнули вперёд довольно большим шагом, так что мы гонимся за шаблонами (да же если  того не ощущаем, так как всё однотипно), а если и делаем велосипеды возвращаемся к их лучшим конструкторам smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)