Sergey
у списка товаров?
fink3L
ты же сам сказал
Sergey
скидки применяются на этапе формирования заказа
Sergey
список продуктов - список продуктов
Sergey
ты выбираешь продукты и из них формируешь заказ
Sergey
то есть список продуктов как был простым так и остается, нет?)
Alex
Т.е. ты предлагаешь писать бэкенд на sql?
Sergey
Sergey
где-то это тупо sql
Sergey
где-то агрегации из эластики
Sergey
где-то - обвязка над orm потому что было впадлу
fink3L
то есть список продуктов как был простым так и остается, нет?)
ну вообще-то скидки должны еще на витрине отображаться (сисок наш), и там к примеру учитывать что ты уже в корзину добавил
Alex
Как понять границы "где-то"?
fink3L
но наверно мы про другое
Sergey
ну вообще-то скидки должны еще на витрине отображаться (сисок наш), и там к примеру учитывать что ты уже в корзину добавил
скидки на уровне "купи две штуки получи третью в подарок, или если это третья штука такая-то то 30% скидка на все"
Sergey
а не "сегодня у нас скидки для всех продуктов 30%" да и такие вещи можно легко делать через sql
Sergey
никому не интересно подумать в эту сторону?
Sergey
ибо лично меня задолбало писать мэпперы поверх мэпперов
Sergey
хотя я могу просто сделать sql запрос, и жахнуть результат в json например
Sergey
CQRS и все такое
Alex
Интересно подумать в эту сторону, но мало подумать, ещё подумать придётся как проверить подуманное и как всех заставить взять это новое подуманное, если получится.
Sergey
это не новое, говорю ж - CQRS
Sergey
тут вопрос как это делать удобнее
Sergey
вот я сейчас рефакторю один из проектов своих, там надо подготовить все к тому что бы удобно было с репликами работать.
Sergey
есть кучи read реплик, и мне надо сделать так что бы все операции на чтение выполнялись на них, а все операции на запись - на master реплике
Sergey
вот и задумался "а нафига мы вообще так делаем что потом страдаем... ненужная же работа"
Sergey
жирнющая ORM что бы показать список категорий - регулярно такое в проектах вижу
Sergey
или примитивный active record что бы делать мега сложную логику - тоже популярная тема)
fink3L
вот у тебя есть орм
fink3L
ты делаешь на ней сложные штуки, у тебя маппинги все есть, все хорошо, а потом тебе надо сделать простую выборку и ты жмяк и в обход орм начинаешь что-то выдумывать?)
Sergey
именно так
Sergey
не факт что в обход ORM, например у меня есть Doctrine - скорее всего я сделаю DQL запрос и просто сделаю выборку не в сущность а в массивчик
Sergey
простые списки это покрывает идеально
Sergey
списки чуть сложнее - уже не так удобно
Sergey
вот сижу и балуюсь с такими
fink3L
не факт что в обход ORM, например у меня есть Doctrine - скорее всего я сделаю DQL запрос и просто сделаю выборку не в сущность а в массивчик
ну это нормально, но если у тебя просто вывести список N-ой сущности, getRepo.findAll наверно проще будет, чем писать dql запрос?)
Sergey
> getRepo.findAll наверно проще будет, чем писать dql запрос?) SELECT p FROM Posts LIMIT 20;
Sergey
но зато не надо в сущности писать лишние геттеры которые нужны тупо для того что бы сформировать json
Sergey
сущности вообще не будут иметь ничего что нужно исключительно для view layer
Sergey
а это уже значительно меньше кода
Sergey
то есть количество кода сильно не меняется - меняется где он лежит
fink3L
а я думал это контроллер решает в чем отдать твой список
fink3L
причем тут сущность
Sergey
эм....
Sergey
ты получил список сущностей
Sergey
как ты из него получишь json?
Sergey
допустим у тебя в сущностях нет геттеров от слова вообще
Sergey
тебе придется их написать?
Sergey
и они будут использоваться только для того что бы сформировать json?
Sergey
ну то есть либо у тебя в сущностях будет код который нужен только для view layer либо ты просто будешь получать уже готовые данные которые будешь кидать в json
fink3L
не понимаю что за геттеры) ну в смысле, доступ к данным объекта? getId...
fink3L
или что?)
Sergey
ну то есть все данные приватны, никакого способа до них добраться сейчас нет (потому что для операций записи они не нужны)
fink3L
да, нет доступа
а зачем тогда они вообще нужны такие?))
fink3L
сущности
Sergey
сущности без геттеров?)
fink3L
угу
fink3L
или у тебя исключительно сеттеры?)
Sergey
ну вот... мы чуть раньше обсуждали что "объект" это такая штука, которая хранит данные и их обрабатывает. А вместо того что бы гонять данные между объектами мы шлем сообщения "сделай то-то то-то"
Sergey
> или у тебя исключительно сеттеры?) нет ни сеттеров (привычных в духе setSomething) ни геттеров
Sergey
есть методы с поведением
Sergey
ООП же
Sergey
класс тупо из геттеров и сеттеров - это как структура данных.
Sergey
это не объект
Sergey
там нет инкапсуляции
fink3L
я ооп то не знаю, пишу процедуры в классы обернутые, пришел к вам, научится)
Sergey
а ну вот тип того
Sergey
короч предположим что геттеры и сеттеры не нужны
Sergey
вообще
Sergey
например если тебе надо получить id сущности вместо getId() ты пишешь toId()
Sergey
метод который сконвертирует объект в другую хрень - ее айдишник
fink3L
угу
Sergey
другая семантика, хотя по коду будет казаться что одно и то же
fink3L
у тебя будет toJson
Sergey
это один из вариантов как не делать геттеры)
Sergey
и честно - я им пользуюсь
Sergey
только toArray а не toJson