2009-06-07 4 views
3

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

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

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

Итак, как мы решаем эту проблему с читабельностью?

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

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

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

Любая помощь была бы принята с благодарностью. Благодарю.

ответ

2

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

пользовательского интерфейс должен быть очень полными, прежде чем это замена для текстового описания поведения, и общие тексты на основе идиома, такие как копии & пасты, поиск & заменить и т.д. неудобно реализовать с хорошим удобством пользования в UI.

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

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

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

+0

Я согласен с Barry – Kane

+0

Спасибо за информацию Barry. По идеализированному XML-формату вы имеете в виду гораздо более читаемую форму XML, которая может быть написана или изменена непосредственно программистом? У пары парней в нашей команде есть опыт использования lex/yacc. Однако ни один из них не написал полный опыт написания компилятора. – Prashanth

+0

Также как вы гарантируете, что пользователь, редактирующий файлы, получает это право и не совершает ошибок непреднамеренно? Разве это не означает, что пользовательский редактор с некоторой функцией автоматического завершения и средством проверки после редактирования? (Мы хотим, чтобы не соответствующие данные были отмечены как можно скорее) – Prashanth

Смежные вопросы