powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Нов арх
15 сообщений из 65, страница 3 из 3
Нов арх
    #40109768
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ares_ekb
localhost8080
очень много кода,проще сразу в конструктор вбить вот так
Это проще при написании отдельного маппера для отдельных классов. Когда этих классов сотни, когда у них много атрибутов, сложные иерархии наследования, то становится не так важно что код немного избыточный, на много важнее, что он единообразный. Например, для абстрактных классов с наследниками мы всегда пишем/генерим код с if/instanceof. Для классов без наследников генерим просто инициализацию атрибутов. Для неабстрактных классов с наследниками генерим гибридный вариант (на самом деле в шаблоне только его и нужно описать с двумя проверками: есть ли дочерние классы, абстрактный ли это класс). Методы init вынесены отдельно, чтобы можно было мапить сложные иерархии классов без дублирования кода.

Короче, при усложнении иерархии классов этот примитивный метод усложнится до совершенно неподдерживаемого состояния. А если в меппере всё разбито на map/init/create методы, то код масштабируемый на сколько угодно классов. И вообще он становится на столько примитивным, что его можно генерить, а не писать руками.

Хотя, блин, тут можно попасть в другую крайность. Я сталкивался с тем, что люди фигачат кучу каких-то фабрик, вспомогательных классов, методов, которые совершенно не нужны и только усложняют код. А потом начинаются взаимные обвинения в оверинжиниринге :)

Кстати! У вас же запрет на использование сторонних либ в рантайме? А в дизайнтайме можно использоваться что угодно? Может тот же MapStruct можно использовать? Это обычно ещё один довод в пользу кодогенераторов, что правила того же мепирования объектов описываются один раз, потом по этому описанию можно сгенерить реализацию под любые требования рантайма. У меня, например, из одних моделей генерится и Java, JavaScript код. Хотя, MapStruct вроде вынуждает засирать код аннотациями, а в случае своего кодогенератора это не нужно.

Лично мне уже на втором меппере стало бы лень их писать. Я обычно смотрю только во вторую очередь как можно написать код короче и красивее, а в первую - как можно его вообще не писать, скинуть на кодогенаратор.



в моем случае наследников всего 5 - поэтому и из них два имеют лишь набор базовых полей,расширяться там некуда уже)
но есть у нас и такие случаи как ты описал,огромное количество полей и сотни наследников- вот туда твой метод можно будет применить
...
Рейтинг: 0 / 0
Нов арх
    #40109769
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080
только опять же ты абстрагируйся- у тебя есть задача зачем то переписать маперы на ручной маппинг- при этом зачем - умалчивают
класс channel имеет кучу наследников- для модель мапера это норм- он все скушает и все размпаит куда надо- а вот руками это будет как я показал выше и это боль

Если абстрагироваться, то пиши свой маффер. Мне пофигу.
А если рассуждать об архитектуре которую ты не любишь, то почему класс channell имеет кучу наследников?
- в бд 10 наследников это 10 таблиц?
- ddl покажешь?
- ты в курсе что при неправильной модели ты ВЫНУЖДЕН брать из бд классА а отдавать классБ на фронт.
Ты же этим счас занят?.
)))

Basil A. Sidorov,
Да, вы правы. Он начал тему про скорость, а сейчас разговор про удобство кодинга.

Ares_ekb,

Имхо оверхед. Вы видите, что очень мало проектов и людей согласны на DSL и генераторы
...
Рейтинг: 0 / 0
Нов арх
    #40109770
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080
наследников всего 5 - поэтому и из них два имеют лишь набор базовых полей
DDL дай.
А то то скорость, то куча наследников, то секретная работа, то маппинг жирафа на черепаху.
Посерьезнее сеньор программист
...
Рейтинг: 0 / 0
Нов арх
    #40109771
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
localhost8080
наследников всего 5 - поэтому и из них два имеют лишь набор базовых полей
DDL дай.
А то то скорость, то куча наследников, то секретная работа, то маппинг жирафа на черепаху.
Посерьезнее сеньор программист

абстрагируйся от БД то наконец уже петро,давай я упрощу тебе задачу таким образом чтобы ты начал думать наконец- БД нет вообще))

есть доменная модель в виде иерархии Animal и есть AnimalResponse- твоя задача сделать красивый код ,желательно в функциональном стиле получил на вход Animal и отдать AnimalResponse,ни каких сторонних библиотек- только java/

Все вводные данные вверху ^
||
^
...
Рейтинг: 0 / 0
Нов арх
    #40109773
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp

А если рассуждать об архитектуре которую ты не любишь, то почему класс channell имеет кучу наследников?
- в бд 10 наследников это 10 таблиц?

Сhannel это доменная модель - к бд не имеет ни какого отношения и бд ничего не знает про доменную модель ,поэтому еще раз - абстрагируйся от бд
...
Рейтинг: 0 / 0
Нов арх
    #40109776
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080,
Абстрагииоваться от бд не удавалось никому в java.
Но если просишь, можем попробовать.
))
...
Рейтинг: 0 / 0
Нов арх
    #40109777
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080,
Давай доменную модель СУЩНОСТЕЙ.
...
Рейтинг: 0 / 0
Нов арх
    #40109778
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080,
Вас читают новички.
Сущность - Канал и сущность Животное.
Дальше. Их связи. Что за сущность
ЖивотноеResponse?
...
Рейтинг: 0 / 0
Нов арх
    #40109779
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080,

Я могу сделать говнокодом таблицу Событие и потом героически маппить ее в 25 других сущностей на клиента.
Чем ты счас и занят.
Ошибаюсь?
...
Рейтинг: 0 / 0
Нов арх
    #40109784
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
localhost8080,
Абстрагииоваться от бд не удавалось никому в java.
Но если просишь, можем попробовать.
))

я могу тебе может глаза на открыть,но есть приложения вообще без БД
...
Рейтинг: 0 / 0
Нов арх
    #40109790
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080,
Мы бд уже проехали.
Зациклило?
Выше к тебе вопросы
...
Рейтинг: 0 / 0
Нов арх
    #40109812
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
localhost8080,
Мы бд уже проехали.
Зациклило?
Выше к тебе вопросы

я вижу вопросы про бд,на них я тебе ответил,все остальное есть выше во вводных данных,иерархия классов Animal и респонс
если интересует еще что то- возникает вопрос твоей проф пригодности ,ибо входящих данных достаточно даже для джуна,коим ты и являешься по сути )
...
Рейтинг: 0 / 0
Нов арх
    #40109822
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080
приложение медлленно работает

localhost8080
вообщем наше руководство пришло к выводу что нужно что то менять и решило поменять !внимание архитектуру)

localhost8080
складывается ощущение что оттуда пора уходить.

Джуном ты был, джуном и остался судя по тексту выше.
...
Рейтинг: 0 / 0
Нов арх
    #40109824
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
localhost8080
приложение медлленно работает

localhost8080
вообщем наше руководство пришло к выводу что нужно что то менять и решило поменять !внимание архитектуру)

localhost8080
складывается ощущение что оттуда пора уходить.

Джуном ты был, джуном и остался судя по тексту выше.
где код? пока одно балобольство от тебя джун!)
...
Рейтинг: 0 / 0
Нов арх
    #40109837
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080,
Какой код?
Все же видят, что ты сначала про скорость.
То что руководство "решило... Внимание! Архитектуру!" - это же ты написал?))) LOL.
Хочешь бегать за Петро - начинай. Опять ник будешь менять.
Твое право.
Я с тобой инженерным языком разговариваю.
Что такого если руководство решило сменить архитектуру? Ты спец в этом?
...
Рейтинг: 0 / 0
15 сообщений из 65, страница 3 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Нов арх
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]