[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Design Patterns
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
twin
Цитата (Ron @ 26.09.2017 - 16:04)
Что значит отстой? Весьма странное высказывание.
Да шучу я. smile.gif

Просто BDD, это последнее веяние. И вроде как говорят, более продвинутое, чем DDD. Я перед отпуском начал смотреть, не успел толком. Но мне как то больше по душе пришлось начало, чем DDD.

Ты правильно сказал, DDD для энтерпрайза. А веб, все же, большей частью информация. И правильно учат программистов, что главное, это данные. Вот только нужно различать программистов. На веб и десктоп. Вот у Эванса про веб ничего толком нет. Но как же, нужно впихнуть невпихнуемое, и примtненить DDD туда, где ему по определению делать нефиг. Зачем нужен этот лишний слой, если большая часть приложения и еcть хранилище.

Я говорил уже однажды, что в DDD для веб полезен только ubiquitous language. Остальное притянуто за уши.

BDD это совсем другая песня. А вовсе не
Цитата (Ron @ 26.09.2017 - 16:04)
twin, BDD это попытка запихнуть в TDD приципы DDD.
Хотя я доcканально не успел разобраться, но принципы там несколько иные.

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

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

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

user posted image
sergeiss
Цитата (twin @ 25.09.2017 - 08:55)
Про пиццу? Ты смеёшься сейчас? Как ты собрался жарить пиццу по интернету? Я в бреду больной фантазии только могу себе представить сеть автоматов по производству пиццы, софт для которых написан на PHP(!)

Впрочем это касается и любого энтерпрайза. Веб, это информация, и ничто иное.

Николай, а вот тут ты не прав... Я это говорю не для того, чтобы тебя "поддеть" (как вдруг кто-нибудь подумает), а чисто "истины ради".
В данный момент я работаю в конторе, которая пишет софт для одного очень крупного заказчика. Причем - сразу замечу! - этот софт уже активно продается сколько-то там лет. Кастомеры есть по всем миру, на разных континентах. Я там участвую в баг-фиксинге и разработке новых фич на веб-морде.
В целом это большая система, содержащая, с точки зрения конечного юзера: терминалы в точках обслуживания (для продавцов), веб-морда и нативные Андроид/Айос приложения, где ты можешь сделать заказ и потом забрать его, либо с доставкой. Оплатить можешь через веб или приложение, либо на месте, при получении заказа...
С точки зрения кастомера (компании), там еще есть доступ к настройкам бэкэнда, которых "дохрена и больше". Бэкэнд написан на Питоне, но вполне мог быть сделан и на ПХП. Вид как нативных приложений, так и особенно веб-морды неплохо и достаточно быстро кастомизируется..... Вобщем, много чего там есть.

К чем это всё? Ну вот, например, некий Николай решил открыть систему пиццерий (внезапно так smile.gif). Вместо заказа персонального сайта, он покупает у этой конторы уже готовую полноценную систему. Немного ковыряется в бэкэенде - и через пару дней он уже может продавать пиццу! Причем, что важно, юзер можер сделать заказ как в пиццерии, так и через интернет. И что еще более важно, юзер может заказать не просто пиццу разных размеров и типов, но еще и дополнительные опции к каждой пицце. Вплоть до того, что может сам набрать, что должно входить в её состав. И вот тут этот Николай, который открыл систему пиццерий, просто счастлив, потому что он может предоставить юзеру очень гибкую систему, удовлетворяющую самым изысканным/извратным вкусам. И, что немаловажно, веб очень даже способствует этому. Ну и этот гипотетический Николай также внезапно понимает в какой-то момент, что и веб-морда, и Андроид с Айфоней работают через интернет и больше нигде.
Впрочем, и сам Николай, как владелец всей этой системы, также через интернет получает доступ ко всем данным бэкэнда, включая статистику продаж и оплат, наличию товара (если он будет также перепродавать что-нибудь) и так далее.

Повторюсь, что это всё можно реализовать на ПХП. Хоть с ООП, хоть без него.

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

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

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

user posted image
twin
Цитата (sergeiss @ 26.09.2017 - 19:26)
Повторюсь, что это всё можно реализовать на ПХП. Хоть с ООП, хоть без него.
Ты сути не понял. То, что ты описал, это заказ. Ну и статистика. Информация другими словами. Фабрика тут причем?

Зачем мне, как владельцу пиццерии, покупать софт, который напичкан лишним функционалом.. И который вовсе не способствует, а прямо препятствует этому:
Цитата

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


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

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

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

user posted image
Michael
Цитата (Ron @ 26.09.2017 - 16:18)
Чтобы абстрагироваться от технических проблем хранения и заняться качественным проектированием бизнеслогики

А что касается реальности, практики и мира php, такое решение на данный момент возможно только используя Doctrine2? Вроде ж другого мощного дата маппера для пхп просто нет или в порядке вещей когда свои мапперы велосипедят?

_____________
There never was a struggle in the soul of a good man that was not hard
sergeiss
Цитата (twin @ 27.09.2017 - 05:42)


Цитата (sergeiss @ 26.09.2017 - 19:26)
Повторюсь, что это всё можно реализовать на ПХП. Хоть с ООП, хоть без него.
Ты сути не понял. То, что ты описал, это заказ. Ну и статистика. Информация другими словами. Фабрика тут причем?

При том, что для любого товара всё однотипно. Потому что нету отдельных функций под каждый товар. Ты только настраиваешь разные опции. Но база-то одна! То есть, это и есть "фабрика", просто по определению. Что на фронтэнде, что на бэкэнде.
Цитата (twin @ 27.09.2017 - 05:42)
Зачем мне, как владельцу пиццерии, покупать софт, который напичкан лишним функционалом.. И который вовсе не способствует, а прямо препятствует этому:
Цитата

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

Хм... Как бы я тут распинался, рассказывал, как это всё СПОСОБСТВУЕТ определенным возможностям, а ты утверждаешь, что это ПРЕПЯТСТВУЕТ... Странно, что тысячи людей по всему миру не заметили,как это им препятствует smile.gif Покупают, настраивают, используют и радуются тому, как этот софт работает.

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

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

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

user posted image
twin
Цитата (sergeiss @ 27.09.2017 - 05:24)
Хм... Как бы я тут распинался, рассказывал, как это всё СПОСОБСТВУЕТ определенным возможностям, а ты утверждаешь, что это ПРЕПЯТСТВУЕТ...

А ты уверен, что для того, чтобы собрать пиццу разных размеров и типов, а особенно добавить дополнительных опций, а тем более набрать что должно входить в состав, используется фабрика?
Цитата (sergeiss @ 27.09.2017 - 05:24)
При том, что для любого товара всё однотипно. Потому что нету отдельных функций под каждый товар. Ты только настраиваешь разные опции. Но база-то одна! То есть, это и есть "фабрика", просто по определению.
Ты наверное вообще не врубился, о чем шла речь. Не о какой то эфемерной фабрике в кавычках, а именно паттерне "абстрактная фабрика".

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

То, что ты описал - обработка информации. Почему думаешь веб-приложения называют "обработчиками"? Задача веб-приложения получить информацию, обработать, и выдать результат. Всё. И не важно, как оно там кастомизируется, как продается по всему миру и прочая. Важно то, что веб-приложение не хранит состояние объектов в оперативке долго. Только на протяжении одного прохода (ну если это не демон, что само по себе нонсенс)

В энтерпрайзе что то производится. Это эмуляция реального мира, там другая движуха. Можно и реально пиццу зажарить. Сначала сварганить объект, а потом кинуть его в станок с ЧПУ, пусть жарит на радость детям. Веб-морды могут юзать какие то приложения, помогающие в обработке данных. Та же постгря вполне себе годится для примера. Но это уже не веб, это десктоп. В десктопе первична сама программа. И состояния живут в оперативке долго. На примере тех же фашистов - пока идет война, все крутится в оперативке. Я не беру в расчет подгрузку данных, это другая песня. Так вот, при таком раскладе используются иные принципы. Хранилище используется тогда, когда к примеру нужно засейвиться. А так объекты живут своей собственной жизнью: рождаются, изменяются, умирают и так далее.

Здесь и DDD к месту, ибо первичен домен, и фабрика полезна, и многое другое, чему в веб не место. Вот в том же DDD домен очень важен, ибо все действо происходит в нем. А хранилище вторично, и действительно не столь важно, как и где сохранить состояние программы. Потому и делаются попытки абстрагироваться от хранилищ.

Но в веб, в силу специфики, данные первичны. И нет никакого смысла дублировать их в домене на доли секунды, чтобы потом все равно свалить в базу. Уж лучше воспользоваться её огромными возможностями, не засерая усложняя жизнь всякими доктринами. smile.gif

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

Я говорил раньше про змею, которая кусает себя за хвост. Так вот повторюсь. Когда делается попытка притянуть принципы десктопного ООП в веб, приходится сильно извращаться, потому как специфика последнего сильно отличается. И получается, что для использования неподходящих инструментов (яркий пример DDD, да и та же фабрика), нужно усложнять программу всяческими AR, ORM и иными приблудами.

Хотели упростить себе жизнь, на самом деле усложнили. Кусь. И так по спирали.

А всего навсего нужно разобраться, для чего годятся, а для чего не годятся те или иные инструменты. Вот и всё. smile.gif

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

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

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

user posted image
Быстрый ответ:

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