Форум → Программирование → PHP для идиотов → Шаблоны проектирования
Шаблоны проектирования
Страницы: ← Следующая страница →
-
Народу нет, в гугл посылать некого. Придется на данном этапе в узком кругу дискутировать и набивать контент :)
Предлагаю похоливарить на священную тему — паттерны. Насколько они нужны вообще и в PHP в частности.
Во-первых, считаю, что для ознакомление с данной темой несомненно полезно для общего развития.
Во-вторых, глубоко уважаю товарищей Отцов Основателей.
В-третих, многих из их адептов считаю полными психами.
Основной вопрос, это то, что считать паттерном. С одной стороны, это абстрактный алгоритм решения абстрактной, но достаточно распространенной задачи. Выработаный на основании многократного решения этой задачи множеством людей.
Однако, для многих интелектуально укуренных людей, паттерн это другое. Паттерн, это то, что полдесятка умных людей описало в своих книжках. Отступать нельзя, толковать нельзя.
То есть, если я многократно решаю какую-то задачу, смотрю, как её решают другие и вырабатываю свой шаблон, то это никакой не шаблон. А я никакой не программист, а убогий плебей и почему бы мне не пойти не почитать умных книжек. Впрочем можно не ходить, так как я до них не дорос.
То, что я решаю свои задачи на языке PHP, несколько отличном от Java и работающем в достаточно специфичной среде, никого не волнует.
Задачи есть только те, которые описаны в книжках, а все остальные можно свести к ним. Решения данные в этих книжках были абсолютно эффективными. И остаются ими не взирая на систему, платформу и вообще развитие вычислительной техники.
А MVC, это синоним разделения кода и данных, что само по себе есть абсолютное благо, а все остальное зло. И этот MVC нужно тащить чуть ли не в той реализации, в которой он был для Smalltalk'а, куда не попадя.
______
А теперь к практике. Основное, что бросается в глаза, создание огромного количества вспомагательных классов и объектов. Каждая, сколько бы то ни было, отдельная функциональность — класс. Изначальный посыл вроде бы верный — разбиение кода на отдельные модули + возможность замены одного объекта на другой с тем же интерфейсом, без затрагивания системы, где он использутеся + возможность использования в других местах. Но иногда доходит до идиотизма. Действия, которые больше ни в жизнь не будут использоваться вне данного класса, а то и метода, выносятся в объекты, а над ними строится громоздкий интерфейс.
Хотя, например, в Яве и подобных языках, где существуют вложенные пространства имен и вложенные классы, а так же какая-никакая компиляция, это по большому счету пофигу. Придется человеку дольше по кнопкам стучать, но он сам это выбрал, а вспомагательные объекты изолированы в своем пространстве имен и никому не мешают.
Однако в PHP все валится в GLOBAL и здесь начинается вообще полный п.ец.
По моему личному ИМХО, это гораздо более противно основам вменяемого программирования, чем то, чтобы запихнуть в один класс пусть побольше действий и различного функционала, вместо того, чтобы разгребать глобальную область. -
24 июля 2007 г. 12:28, спустя 1 час 4 минуты 30 секунд
угу, а теперь вот представляем что над каким-либо кодом работает с десяток программистов и у каждого свои шаблоны…
а потом один уходит и с его кодом начинают разбираться остальные..
програмы мелкомягких быстро раскупаются не потому что у них идеальный код, который юзеру кстати до лампочки, или они лишены глюков. А потому что они разрабатываются быстро. т.е быстро реагируют на потребителя. а скорость достигается за счет использования универсальных, классических механизмов. -
24 июля 2007 г. 23:47, спустя 11 часов 19 минут 4 секунды
Неужели мелкомягкие не умеют думать?
Неужели мелкомягкие программируют на PHP? -
25 июля 2007 г. 4:43, спустя 4 часа 55 минут 44 секунды
Книжки тоже люди пишут. А людям свойственно ошибаться. Стоит придерживаться здравого смысла, а не слепо идти за поводырями. -
25 июля 2007 г. 6:17, спустя 1 час 34 минуты 24 секунды
То есть, если я многократно решаю какую-то задачу, смотрю, как её решают другие и вырабатываю свой шаблон, то это никакой не шаблон. А я никакой не программист, а убогий плебей и почему бы мне не пойти не почитать умных книжек. Впрочем можно не ходить, так как я до них не дорос.
Для тебя это будет паттерном, для многих других нет… хотя возиможно такой паттерн уже естьТо, что я решаю свои задачи на языке PHP, несколько отличном от Java и работающем в достаточно специфичной среде, никого не волнует.
Выбор методик разработки, совершенно не зависят от языка программирования(имею ввиду объектно ориентированного)…А MVC, это синоним разделения кода и данных, что само по себе есть абсолютное благо, а все остальное зло. И этот MVC нужно тащить чуть ли не в той реализации, в которой он был для Smalltalk'а, куда не попадя.
MVC - дестивительно уникальный паттерн, и при грамотном его использовании это всё таки благо… Да и раслоение системы должно быть….Действия, которые больше ни в жизнь не будут использоваться вне данного класса, а то и метода, выносятся в объекты, а над ними строится громоздкий интерфейс.
Не зарекайся!По моему личному ИМХО, это гораздо более противно основам вменяемого программирования, чем то, чтобы запихнуть в один класс пусть побольше действий и различного функционала, вместо того, чтобы разгребать глобальную область.
Класс должен выполнять узкую функциональность и фактически не знать о других. А большие классы - это "запах" от которого надо избавлятьься.А людям свойственно ошибаться.
Ага особенно когда вопросом ООП занимаешся лет 20!угу, а теперь вот представляем что над каким-либо кодом работает с десяток программистов и у каждого свои шаблоны…
а потом один уходит и с его кодом начинают разбираться остальные..
Парное программирование и разбор кода спасут проект!А потому что они разрабатываются быстро. т.е быстро реагируют на потребителя. а скорость достигается за счет использования универсальных, классических механизмов.
+++++++++++++++100 -
25 июля 2007 г. 6:26, спустя 9 минут 1 секунду
Выбор методик разработки, совершенно не зависят от языка программирования(имею ввиду объектно ориентированного)…
А что считать методикой? Расписывание структуры классов и взаимосвязей между ними, уже не методика, а алгоритм конкретной реализации.А большие классы - это "запах" от которого надо избавлятьься.
Куда избавляться? В глобальный контекст? Буду изолированные пространства имен, буду избавляться.MVC - дестивительно уникальный паттерн, и при грамотном его использовании это всё таки благо…
Грамотного использования быть не может. Может быть только дословно правильное и неправильное :)Ага особенно когда вопросом ООП занимаешся лет 20!
Если эти 20 лет 1970-1990 на языке smalltalk, то некоторые вещи могут быть неприменимы к PHP 2007-го.а скорость достигается за счет использования универсальных, классических механизмов.
Исходники винды кто-то достал? -
25 июля 2007 г. 6:52, спустя 25 минут 50 секунд
Если эти 20 лет 1970-1990 на языке smalltalk, то некоторые вещи могут быть неприменимы к PHP 2007-го.
не только на smalltalk,но и на JAVA, С++ , С#А что считать методикой? Расписывание структуры классов и взаимосвязей между ними, уже не методика, а алгоритм конкретной реализации.
XP, TDD, Парное программирование, Scrum(вроде так пишется), всё это ООП методологии, что касается алгоритма то это скорее всего дизайн системы.Исходники винды кто-то достал?
скорость разработки… и винда тут не при чём!Грамотного использования быть не может. Может быть только дословно правильное и неправильное :)
тогда что считать правильным?Куда избавляться? В глобальный контекст? Буду изолированные пространства имен, буду избавляться.
А вот это каждый решает сам! т.к. рефакторинг это искуство, всё зависит от задачи. -
25 июля 2007 г. 7:06, спустя 14 минут 24 секунды
не только на smalltalk,но и на JAVA, С++ , С#
Мы о какой-то конкретной личности говорим?тогда что считать правильным?
Правильное это то, что написано в умной книжке и овеяно авторитетом умного человека. И не допускает никаких изменений.А вот это каждый решает сам! т.к. рефакторинг это искуство, всё зависит от задачи.
А от языка не зависит? -
25 июля 2007 г. 10:21, спустя 3 часа 14 минут 37 секунд
Мы о какой-то конкретной личности говорим?
Не но 99% идеологов ООП в какой то мере писали на этих языкахА от языка не зависит?
Я считаб что нет. по крайней мере php5 не в полной жопе -
1 августа 2007 г. 11:59, спустя 7 дней 1 час 38 минут
а есть где почитать про шаблоны применительно именно к php? знаю те что из мана - singleton и factory и всё… -
5 августа 2007 г. 17:50, спустя 4 дня 5 часов 50 минут
а есть где почитать про шаблоны применительно именно к php? знаю те что из мана - singleton и factory и всё…
Какая разница на каком языке писать, шаблон он и в африке шаблон… -
10 августа 2007 г. 1:40, спустя 4 дня 7 часов 50 минут
С первого поста тема уже провалилась…
Остался тока флейм.
Команда… Может я не понимаю этой темы потомучто работаю один все время?
По началу работали вдвоем, писАли один сайт, но разные проекты на нем…https://smappi.org/ - платформа по созданию API на все случаи жизни -
10 августа 2007 г. 1:42, спустя 2 минуты 11 секунд
Сейчас пользуюсь своей CMS, использую Smarty как шаблонизатор.https://smappi.org/ - платформа по созданию API на все случаи жизни -
-
13 августа 2007 г. 5:08, спустя 3 дня 3 часа 14 минут
а есть где почитать про шаблоны применительно именно к php?
http://www.books.ru/shop/books/441006
Вообще книг по этому поводу много написано. Шаблон не должен зависеть от языка программирования, главное - понимание.
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!