powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / DSL для транформации данных. Есть что?
18 сообщений из 18, страница 1 из 1
DSL для транформации данных. Есть что?
    #39563164
Dymytry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый, уважаемые!

Постоянно возникает задача трансформации и валидации различных данных. Постоянно она решается через hardcode, и это не очнь хорошо. Есть ли какие-то решения на Джаве для создания натраиваемой цепочки трансформации данных?

Попробую объяснить на примере.

Допустим в памяти у нас оказался каким-то образом инстанс Джава класса Project.

Нам надо

1. провалидировать его. если у Project поле name не заполнено - отбой.
2. трансформировать его. если у Project поле manager пусто то надо поставить туда "empty", а еще из второго находящегося в памяти класса ProjectData проставить приведенное к верному формату поле StartDate, вычесть из даты начала проекта текущую дату и получить поле projectDuration итд.

Итоговый объект отправить куда следует.

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

Есть ли какие-то советы на этот счет?

Сам я тоже делал домашнюю работу, просмотрев инет заметил следующее:

1. различные ETL фреймворки. Pentaho, Talend - самые на слуху.
2. перевод данных в XML структуру и манипуляции при помощи XSLT
3. манипуляции через скрипты написанные на JavaScript к примеру, запускать на Java Scripting API
4. создание своего DSL на XText или на чем-то еще

Можете ли посоветовать что-нибудь?
Чем бы воспользовались для такой задачи?
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563176
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dymytry1. различные ETL фреймворки. Pentaho, Talend - самые на слуху.
2. перевод данных в XML структуру и манипуляции при помощи XSLT
3. манипуляции через скрипты написанные на JavaScript к примеру, запускать на Java Scripting API
4. создание своего DSL на XText или на чем-то еще
эти варианты подходят для них?
автор не программирующими людьми, которые смогут сами ревьюить эти трансформации.
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563178
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DymytryДопустим в памяти у нас оказался каким-то образом инстанс Джава класса Project.
если это поток данных (ETL) то откуда классы?
Классы для программистов!
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563252
Dymytry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Dymytry1. различные ETL фреймворки. Pentaho, Talend - самые на слуху.
2. перевод данных в XML структуру и манипуляции при помощи XSLT
3. манипуляции через скрипты написанные на JavaScript к примеру, запускать на Java Scripting API
4. создание своего DSL на XText или на чем-то еще
эти варианты подходят для них?
автор не программирующими людьми, которые смогут сами ревьюить эти трансформации.

Ну.. относительно. В идеале иметь графический интерфейс для описания трансформаций. Некоторые ETL движки это позволяют.
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563253
Dymytry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123DymytryДопустим в памяти у нас оказался каким-то образом инстанс Джава класса Project.
если это поток данных (ETL) то откуда классы?
Классы для программистов!
Понятно, что вопросы интеграции с источниками и моделью данных будут решать программисты. Это должно быть создано заранее.
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563319
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DymytryПопробую объяснить на примере.

Допустим в памяти у нас оказался каким-то образом инстанс Джава класса Project.

Нам надо
Постановка не верная.
Вы должны описать РАБОЧЕЕ МЕСТО (АРМ) вашего НЕ программиста.
As is to be.
Предмет автоматизации.
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563328
Dymytry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123DymytryПопробую объяснить на примере.

Допустим в памяти у нас оказался каким-то образом инстанс Джава класса Project.

Нам надо
Постановка не верная.
Вы должны описать РАБОЧЕЕ МЕСТО (АРМ) вашего НЕ программиста.
As is to be.
Предмет автоматизации.

Рабочее место:
1. задача минимум - удобная IDE для написания кода транформации.
2. задача посерьезнее - IDE + средства тестирования, отладки.
3. задача максимум - IDE с графическим интерфейсом который позволяет визуально набрасывать трансформацию данных.
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563356
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dymytry,
Нда. Как про сферический конь в вакууме.
ТЗ вы никогда не писали.
Возьмите флейту.
Трансформация воздуха на входе в музыку на выходе.
Удачи!
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563360
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dymytry,
As is to be
означает рассказ ка ЭТО делается сейчас, и как предположительно в 10 раз быстрее будет с помощю проектируемого ПО.
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563390
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563424
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник https://docs.jboss.org/jbpm/v6.0/userguide/wb.Workbench.html + Drools?
Если только не бедет оверхеда.
Он всё уверяет, что у него предмет данные и ETL, а тут предмет процессы.
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563612
Dymytry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Dymytry,
As is to be
означает рассказ ка ЭТО делается сейчас, и как предположительно в 10 раз быстрее будет с помощю проектируемого ПО.
as is
Ну, сейчас просто пишется соответствующий бин на спринге который делает эту работу.
Т.е. сейчас программист пишет джава код в котором отражена вся эта логика.
Если надо изменить - он переписывает по заданию от аналитика.
to be
логика преобразования рисуется сразу аналитиком в визуальной тулзе или пишется на DSL
деплоится в систему админом
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563616
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dymytryлогика преобразования рисуется сразу аналитиком в визуальной тулзе или пишется на DSL
деплоится в систему админом
Это утопия. Нельзя заменить программиста рисовалкой. Не каждый владелец зеркалки - фотограф. Не каждый пользователь фотошопа - дизайнер. Так и здесь. Нельзя аналитику дать инструмент и заменить программиста. В любой ситуации вы упретесь в то что инструмент чего-то не умеет и нужно доделывать сам инструмент. Или в то что трансформация не на столько примитивная, что аналитик зная входные и выходные данные сможет построить весь процесс трансформации.

Программист это не кодер, который не знает ничего кроме синтаксиса языка программирования.
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563656
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczЭто утопия.
+1
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563659
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dymytry,
Если ваше руководство настолько упёртое, то возьмите BPM.
Просто ваши затраты не окупятся.
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563677
Dymytry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczDymytryлогика преобразования рисуется сразу аналитиком в визуальной тулзе или пишется на DSL
деплоится в систему админом
Нельзя заменить программиста рисовалкой. Не каждый владелец зеркалки - фотограф. Не каждый пользователь фотошопа - дизайнер. Так и здесь. Нельзя аналитику дать инструмент и заменить программиста. В любой ситуации вы упретесь в то что инструмент чего-то не умеет и нужно доделывать сам инструмент.
Речь о том, чтобы заменить программиста только в одной из очень многих частей системы. Это одна маленькая часть логики.
Доделывать периодически инструмент, конечно, придется.
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563701
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DymytryРечь о том, чтобы заменить программиста только в одной из очень многих частей системы. Это одна маленькая часть логики
Откройте мастер импорта excell из текстовогл файла.
Подходит? Делайте.
И не пытайтесь автоматизировать классы и бины.
...
Рейтинг: 0 / 0
DSL для транформации данных. Есть что?
    #39563703
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dymytry,
Классы/бины это инструменты программиста. Это святое!
Не трожь!!! )))
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / DSL для транформации данных. Есть что?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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