Какой из них лучше подходит для пользовательского интерфейса или DSL? - PullRequest
3 голосов
/ 07 июня 2009

У нас есть система, поведение которой определяется рядом XML-файлов. (Примерно 50 различных XML-файлов, каждый из которых управляет поведением подсистемы.)

XML-файлы по устаревшим причинам имеют собственный формат, предназначенный для удобного использования различными компонентами системы.

Пользовательский формат не очень интуитивно понятен и удобочитаем для человека (что также является важным фактором для нас).

Так, как мы решаем эту проблему читаемости?

Мне кажется, что интуитивно понятный пользовательский интерфейс, написанный поверх этих XML-файлов, должен выполнять эту работу.

Однако мой коллега считает, что замена файлов XML на DSL - лучшая идея, поскольку они могут быть как интуитивно понятными, так и машиночитаемыми.

Это хорошая идея или излишество? Я чувствую, что получить DSL правильно крайне сложно по сравнению с пользовательским интерфейсом. Но я могу ошибаться.

Любая помощь будет принята с благодарностью. Спасибо.

Ответы [ 2 ]

2 голосов
/ 07 июня 2009

Перевод XML-в-XML является промежуточным решением и, вероятно, является подходом, который я бы использовал.

Пользовательский интерфейс должен быть очень полным, прежде чем он заменит текстовое описание поведения, а распространенные текстовые идиомы, такие как копирование и вставка, поиск и замена и т. Д., Неудобны для реализации с хорошим удобством использования в пользовательском интерфейсе. .

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

Итак, я бы выступил за разработку идеализированного формата XML и написал бы инструмент, который преобразует этот формат в ваш настоящий формат XML либо с помощью XSLT (если это легко - я бы не стал слишком углубляться в функции XSLT и т. Д.), Либо простое приложение для перевода.

Существует множество преимуществ наличия читаемого текстового формата для спецификации: специальное редактирование легко (вам нужен только блокнот), различия из управления исходным кодом доступны для чтения, фрагменты можно отправлять по электронной почте и т. Д. Получение пользовательского интерфейса, который имеет удобство использования и функциональное соотношение с текстовым форматом не легки.

1 голос
/ 10 декабря 2011

Вы должны взглянуть на http://www.eclipse.org/Xtext/ - это прекрасно для того, что вы ищете!

...