Size: a a a

Software Design/Architecture/Zen

2020 October 20

АЯ

Андрей Ява in Software Design/Architecture/Zen
Алексей Гевондян
а с нюансами что делать будешь? флагов режимов нафигачишь?
Ничего.
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
Это будет типа стдшка, только именованная, с которой фреймворк знает как рабоать (валидировать, преобразовывать и так далее)
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
ну так в stdClass и так сейчас json_decode переделывает. я так понял ты хочешь передать имя класса дто-шки, в которую надо маппить. но тут возникает куча нюансов.
1) что будет если поля нет в дто-шке?
2) что будет если поле в дто-шке есть, но его нет в пришедших данных?
3) что делать со вложенными объектами / массивами объектов, как определять на что их маппить... по пхпдокам?
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
Алексей Гевондян
ну так в stdClass и так сейчас json_decode переделывает. я так понял ты хочешь передать имя класса дто-шки, в которую надо маппить. но тут возникает куча нюансов.
1) что будет если поля нет в дто-шке?
2) что будет если поле в дто-шке есть, но его нет в пришедших данных?
3) что делать со вложенными объектами / массивами объектов, как определять на что их маппить... по пхпдокам?
1. Скип или ексепшн (в зависимости от флага)
2. Налл.
3. Хз, пока не думал
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
2 - а если у поля прописан тип, и налла там нет? как быть, если поля приватные? хотя с т. зр. сей это пофиг...
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
а 3 вопрос кстати ключевой. обычно приходит не плоская структура. и особо польза от функции, которая будет маппить на класс 1 уровня не велика..
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ребят. если что проблема сериализации и мэппинга решена же, если вы хотите велосипеды обсудить то можете это в личке сделать.
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
Алексей Гевондян
2 - а если у поля прописан тип, и налла там нет? как быть, если поля приватные? хотя с т. зр. сей это пофиг...
Если поле приватное, то лесом, т.к  эта штука для дтох а не для сущностей
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Как лучше называть слушателей событий:
- по событию, например CommentCreatedListener
- по действию, например UpdateStatisticDataOnCommentCreated
- ...

?
источник

AC

Artur Chobanyan in Software Design/Architecture/Zen
Сергей Предводителев
Как лучше называть слушателей событий:
- по событию, например CommentCreatedListener
- по действию, например UpdateStatisticDataOnCommentCreated
- ...

?
СreateStatisticDataOnCommentCreated
UpdateStatisticDataOnCommentCreated

Как в таком случае поступите с вариантом CommentCreatedListener ?
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
хм... ну да, по действию наверное правильнее
источник

SP

Sergey Protko in Software Design/Architecture/Zen
имена должны описывать что делает штука а не с чем работает
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну так к слову
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
Сергей Предводителев
Как лучше называть слушателей событий:
- по событию, например CommentCreatedListener
- по действию, например UpdateStatisticDataOnCommentCreated
- ...

?
на что подписаны листенеры можно посмотреть в диспатчере, так что вовсе не обязательно это включать в название
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Андрей Ява
на что подписаны листенеры можно посмотреть в диспатчере, так что вовсе не обязательно это включать в название
UpdateStatisticData - так вообще не понятно что это листенер(
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
UpdateStatisticDataListener - А это похоже, что он слушает обновление данных, а не выполняет их
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
Сергей Предводителев
UpdateStatisticDataListener - А это похоже, что он слушает обновление данных, а не выполняет их
согласен. но в той же симфе именно так и сделано =)
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
:)

Возник ещё вопрос ))


Допустим есть система с кучей модулей.

Мы делаем модуль "файлы", который позволяет хранить файлы.
Работает это так: любой другой модуль может закинуть файл в модуль "Файлы", получить ID файла, сохранить где-то у себя и потом по этому ID получить файл обратно.

И как бы всё норм.

Один момент смущает: по файлу нельзя понять кому он принадлежит и можно ли его удалить.
Допустим есть модуль Задачи, который работает с модулем Файлы. Произошёл какой-то сбой и при удалении задач не делался запрос в Файлы на их удаление. Я же потом никак не узнаю, что какие-то файлы ни к кому не привязаны и можно их снести.

Как вообще такой момент решается? Хранить в модуле файлов какой-то список с типам и id объектов которым принадлежат файлы... что-то мне кажется это не правильно.
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
ну представь себе, что у тебя не модуль "файлы" а просто nosql бд, в которую ты складываешь эти самые файлы
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
как бы ты обращался если бы это была база даннызх?
источник