fisher
накатила суть
проблемы объектного сознания
выношу в отдельный тред, все запасаемся бисером и попкорном!
значит, тема очень флеймовая, поэтому убить её можно будет элементарно (не сомневаюсь, что эт опроизойдет - у меня лишь робкая надежда, что это произойдет не мгновенно).
итак, хочется собрать воедино - хотя бы ссылками на имеющиеся "фундаментальные" тексты - все вопросы касательно oop vs не-oop.
c чего всё начиналось:
http://phpclub.ru/talk/showthread.php?s=&threadid=81731
программа = данные + работа с данными (тезис классиков "данные+алгоритмы" в эпоху 1С бугалтерии и сосальных сетей выглядит неубедительно). объекты - промежуточные построения, умозрительные. то есть, вторичны - данные и работа над ними не обязательно "объекты". программа либо полезна либо бесполезна. то есть суть работы - результат, не процесс (ну закипайте же скорее, учоные!). объектная парадигма как сладкая пища для ума - моделирование не в области жизни а в области монад - подмена: программирование ради программирования. многочисленные споры, паттерны, только запутывающие новичка. паттерны - как метод наведения порядка: ребят, вот делайте так и меньше запутаетесь. красивый язык и множество умозрительных конструкций как средство построения мирка, и новой иерархии (не могу создать бизнес или достичь результата - так буду хотя бы выглядеть мега-умным). один мой коллега - хороший парень - на полном серьезе как-то предлагал любой объект рожать через фабрики, потому что там проще подменить процесс рождения, если вместо "тяжелого объекта" надо по вопросам производительности поставить "легкий" (не говорю что абсолютно плохая идея - просто иллюстрация образа мышления). много мелких объектов - много операций над CPU, тормоза, высокая стоимость владения (стоимость владения большого веб-проекта в разы превышает фонд зп).
наконец, ниже пояса. инкапсуляция как одобрение интеллектуальной слепоты (мне неважно что там - унаследую и понеслась. пример - одна из моих функций "следить за производительностью". регулярно нахожу в коде циклическое создание какого-то Model объекта, который лезет во внешний сервис за данными, хотя эти данные в этом конкретном месте не нужны. то есть - слепота, не позволяющая опуститься на "физический уровень" и думать не в пространстве монад а в пространстве утилизации конкретных имеющихся ресурсов. в приведенном примере - очевидный ошибка общей архитектуры, с точки зрения апи, то есть не вина конкретного человека кто использует model, но мы берем тупо model потому что он делает то, что нам нужно и всё остальное пофиг). интеллектуальная слепота как метод заработка - роботы-кодеры, продажа отчуждаемых библиотек. ну и в крышку гроба - тотальная не-математичность, не-реляционность и сплошной ОРМ.
пока хватит
P.S. сам я пишу "умеренный объектный код" и ни в коем случае не пропагандирую отказ от. просто вскрываю основные на мой взгляд проблемы.
выношу в отдельный тред, все запасаемся бисером и попкорном!
значит, тема очень флеймовая, поэтому убить её можно будет элементарно (не сомневаюсь, что эт опроизойдет - у меня лишь робкая надежда, что это произойдет не мгновенно).
итак, хочется собрать воедино - хотя бы ссылками на имеющиеся "фундаментальные" тексты - все вопросы касательно oop vs не-oop.
c чего всё начиналось:
http://phpclub.ru/talk/showthread.php?s=&threadid=81731
значит, в качестве ответа, почему ооп не должно "навязываться" и затравки для обсуждения - но тезисно.Автор оригинала: fixxxer
ммм. проблема то не в объектной идеологии, а в том, что объектный подход очень чувствителен к косякам и все надо делать очень аккуратно, иначе получается дикая помойка. требуется намного больше думать головным мозгом, и тщательно подходить к архитектурным решениям =) зато куча профита и экономии времени на разработку при грамотно заложенном фундаменте. если сразу заложены косяки, то это выходит бомба замедленного действия и мысль "а ну его нах.. этот ооп" вполне предсказуема
но это действительно где нибудь в другом месте надо обсудить![]()
программа = данные + работа с данными (тезис классиков "данные+алгоритмы" в эпоху 1С бугалтерии и сосальных сетей выглядит неубедительно). объекты - промежуточные построения, умозрительные. то есть, вторичны - данные и работа над ними не обязательно "объекты". программа либо полезна либо бесполезна. то есть суть работы - результат, не процесс (ну закипайте же скорее, учоные!). объектная парадигма как сладкая пища для ума - моделирование не в области жизни а в области монад - подмена: программирование ради программирования. многочисленные споры, паттерны, только запутывающие новичка. паттерны - как метод наведения порядка: ребят, вот делайте так и меньше запутаетесь. красивый язык и множество умозрительных конструкций как средство построения мирка, и новой иерархии (не могу создать бизнес или достичь результата - так буду хотя бы выглядеть мега-умным). один мой коллега - хороший парень - на полном серьезе как-то предлагал любой объект рожать через фабрики, потому что там проще подменить процесс рождения, если вместо "тяжелого объекта" надо по вопросам производительности поставить "легкий" (не говорю что абсолютно плохая идея - просто иллюстрация образа мышления). много мелких объектов - много операций над CPU, тормоза, высокая стоимость владения (стоимость владения большого веб-проекта в разы превышает фонд зп).
наконец, ниже пояса. инкапсуляция как одобрение интеллектуальной слепоты (мне неважно что там - унаследую и понеслась. пример - одна из моих функций "следить за производительностью". регулярно нахожу в коде циклическое создание какого-то Model объекта, который лезет во внешний сервис за данными, хотя эти данные в этом конкретном месте не нужны. то есть - слепота, не позволяющая опуститься на "физический уровень" и думать не в пространстве монад а в пространстве утилизации конкретных имеющихся ресурсов. в приведенном примере - очевидный ошибка общей архитектуры, с точки зрения апи, то есть не вина конкретного человека кто использует model, но мы берем тупо model потому что он делает то, что нам нужно и всё остальное пофиг). интеллектуальная слепота как метод заработка - роботы-кодеры, продажа отчуждаемых библиотек. ну и в крышку гроба - тотальная не-математичность, не-реляционность и сплошной ОРМ.
пока хватит

P.S. сам я пишу "умеренный объектный код" и ни в коем случае не пропагандирую отказ от. просто вскрываю основные на мой взгляд проблемы.