[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Design Patterns
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
sergeiss
Цитата (twin @ 20.09.2017 - 08:40)
Главное отличие в том, что в десктопе объекты хранят состояние между запросами из очереди. В веб нет. Конечно, есть база данных, где их можно хранить, но это хрень.

Давай уточним, что не в вебе "вообще", а именно на сервере. И то это утверждение верно не всегда, ибо можно сделать "демона", который будет крутиться в памяти достаточно долго. И на ПХП, и на других серверных языках это возможно. Такой демон будет хранить всё, что ему скажешь, в течение необходимого времени.
Ну и JS - это тоже веб!!! Процитированное утверждение к нему ну никак не относится. Если, конечно, кто-нибудь не будет при каждом чихе перезагружать страницу smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
chee
Цитата (ВеликийПрограмист @ 21.09.2017 - 09:22)
Я в замешательстве книгу Domain Driven Design Эванса я не читал но вижу в статьях о ней что он предлогает разбить программу на 4 слоя

DDD Эванса это в основном не про архитектуру приложений, а про методологию организации бизнесс-логики в этом приложении. Что бы использовать DDD надо как минимум шарить в ООП и слоистых архитектурах.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата (twin @ 19.09.2017 - 05:24)
я смею утверждать, что абстрактную фабрику в веб(фиг с ним) в PHP применяют крайне редко.

В чистом виде - да, с примесями - нет.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
В общем картина ясна, я не ошибался. Паттерн "Фабрика" не может считаться популярным, и уж тем более часто используемым паттерном в веб приложениях. Ладно, пусть в PHP, а то Сергей опять со своим фронтэндом фстрянет smile.gif Так как ни кто не смог привести хоть сколь-нибудь адекватного примера.

Цитата (Santehnick @ 21.09.2017 - 19:15)
Задача вполне себе под веб.
Про пиццу? Ты смеёшься сейчас? Как ты собрался жарить пиццу по интернету? Я в бреду больной фантазии только могу себе представить сеть автоматов по производству пиццы, софт для которых написан на PHP(!)

Впрочем это касается и любого энтерпрайза. Веб, это информация, и ничто иное. Нельзя сделать детей по интернету, хотя попытки заниматься сексом были. Но это то же самое, что применять фабрику. smile.gif А работа с информацией не требует никаких сущностей, тем более семейств. Если что то касается пиццы, то это может быть только рецептом, что есть ни что иное, как текстовая информация.

И еще, даже если воплотить мою больную фантазию в жизнь, и сделать сеть пицца-автоматов, то фабрика там инструмент не самый подходящий. Если сеть из стопицот автоматов, а потом потребуется добавить новый рецепт, с морепродуктами к примеру, придется править кучу фабрик.

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

Цитата (chee @ 21.09.2017 - 21:25)
В чистом виде - да, с примесями - нет.
Ты как всегда на своей волне. Что ты имеешь ввиду под примесями, трейты или что другое?

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
Цитата (twin @ 25.09.2017 - 08:55)
Что ты имеешь ввиду под примесями, трейты или что другое?

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



_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Мудрено говоришь smile.gif smile.gif
Но сдается мне не фабрика это вовсе, когда нужен
Цитата (chee @ 25.09.2017 - 05:09)
схожий по смыслу объект другого назначения.
smile.gif


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
AllesKlar
twin
Ну вот сейчас пишу веб-морду, которая с нашего же API и подсасывает данные (фронт -> backend php -> api -> backend php -> фронт ).
Фронт шлет разные запросы к backend, backend разбирает запрос и отправляет его дальше к api.
Логика / структура запросов всегда одинаковая, разные только методы api / параметры запроса.
А вот api шлет в ответ всегда JSON объект, но объект разных классов (юзер, метаданные, ссылка, клип и т.д.)
Фактически, запрос к апи - это одна и тоже структура, но встречая ответ нужно, в зависимости от вызванного api метода, разобрать ответ в соответсвующий объект и выплюнуть его фронту.

Ни есть ли это фабрика? Разнятся лишь входные параметры и выходной объект.

_____________
[продано копирайтерам]
twin
Цитата (AllesKlar @ 25.09.2017 - 07:14)
Ни есть ли это фабрика?
Весьма туманно это все. Нарисуй диаграмму, сразу станет ясно, что есть сие. smile.gif


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Guest
Цитата (twin @ 25.09.2017 - 08:55)
Про пиццу? Ты смеёшься сейчас? Как ты собрался жарить пиццу по интернету?

Нет, не жарить. Это может быть система оформления заказов.
Michael
Цитата (ВеликийПрограмист @ 21.09.2017 - 07:22)
только вот одно но такое деление это будет соответствовать принципам ООП?

это и есть ООП. Продвинутое.
Цитата (ВеликийПрограмист @ 21.09.2017 - 07:22)

И зачем нужно Data Storage Layer понятно чтобы можно было легко поменять базу данных, но можно же сделать Wrapper зачем целый отдельный механизм заталкивания в базу какой в этом смысл?

Базу данных реляционную одну на другую поменять можно и без этого, если использовать какой нибудь query builder и DAO обертки, как во фреймах и цмс.
Они тут дальше пошли и хотят проектировать объекты, которые вообще ничего не знают ни о какой базе. Сделано это потому что они считают что БД - это все инфраструктура и бизнес логику от этого надо по полной отделить. Такое разделение кроме соответствия SOLID в том числе позволит писать чистые модульные тесты или например менять реляционную базу на неряляционную.
Но раз бизнес и прочие объекты о базе ничего не знают, то операциями по их получению из БД, сохранением и всего такого, уже будут заниматься другие объекты - Репозитории.

_____________
There never was a struggle in the soul of a good man that was not hard
twin
Цитата (Guest @ 26.09.2017 - 01:10)
Нет, не жарить. Это может быть система оформления заказов.
Для оформления заказа достаточно знать название и местность. Зачем нужен объект с толщиной теста и свининой? Это должен знать повар. Ну если только ты не собираешся жарить её с помощью интернета.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Ron
Цитата (Michael @ 26.09.2017 - 07:15)
Они тут дальше пошли и хотят проектировать объекты, которые вообще ничего не знают ни о какой базе.

Абсолютно верно говоришь, но хочется немного раскрыть. С точки зрения DDD, проектирование от БД, чему обычно учат программистов, является ошибочным подходом. То есть, в классическом варианте как люди действуют? Слушают задачу, расписывают схему БД, потом под нее подгоняют что можно и что нельзя. Получается у нас "диктует правила" (накладывает ограничение) не бизнес логика, а хранилище. Сложные проекты из-за такого подхода получаются жутко дубовыми и даже часто кривыми. Не говоря уже о гибкости при поступлении новых запросов от бизнеса. А они, запросы эти, в нормальной ситуации поступают довольно часто. Очень неприятно стукаться лбом в хранилище, из-за компромиссов проектирования логики. Тем более, что его модификация представляет из себя один из самых трудоемких процессов.

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

ВеликийПрограмист, судя по вопросам ты за DDD слишком рано схватился. И вообще, эти принципы больше под enterprise применимы. Какой ты будешь, скажем, ubiquitous language прорабатывать, чтобы сделать сайт визитку что ли!? laugh.gif

Arh
Ron
Чё то все твои последние сообщения про DDD.
Вики говорит "DDD — это набор правил"
Гуглю "Набор правил DDD" - не вижу никаких наборов, никаких правил.
Что это за шутка?)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Цитата (Arh @ 26.09.2017 - 15:04)
Гуглю "Набор правил DDD" - не вижу никаких наборов, никаких правил.
Зря гуглишь, DDD уже отстой. Сейчас BDD в тренде. smile.gif


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Ron
Цитата (Arh @ 26.09.2017 - 19:04)
Чё то все твои последние сообщения про DDD.

Ну не все, конечно. =) О чем спращивают про то и пишу. )

Цитата (Arh @ 26.09.2017 - 19:04)
Гуглю "Набор правил DDD" - не вижу никаких наборов, никаких правил.

Это не правила, а подход к разработке enterprise ПО, который базируется на некоторых принципах. Они обозначены в википедии, но если есть желание погрузиться в тему, то стоит прочитать книгу http://dddcommunity.org/book/evans_2003/

Цитата (twin @ 26.09.2017 - 19:27)
Зря гуглишь, DDD уже отстой. Сейчас BDD в тренде.

twin, BDD это попытка запихнуть в TDD приципы DDD. Что значит отстой? Весьма странное высказывание.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.