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

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

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

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

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

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

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

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

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


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