привет, давно я сюда не заглядывал) посоны, у меня тут задачка есть:
я имею конфигурационный файл, со списком модулей которые нужно загрузить в приложении.
задача заключается в том, чтобы эффективно отсортировать этот список по множеству произвольных правил, и проверить на отсутствие противоречий в этом списке.
К примеру, некоторые модули могут "зависеть" от других, и следовательно должны быть загружены позже своих зависимостей.
Есть специальные модули, которые (как и в случае с зависимостями) после загрузки позволяют использование модулей, помеченных специальным тегом.
Есть условия, при которых система вообще не может стартонуть, например, при наличии нескольких "специальных" модулей, либо отсутствии иных.
Я думаю нужно как-то взвешивать это дело, но по каким правилам описать веса (чтобы совокупность некоторых признаков не перевешивала некоторый критический признок я хз. может битмап?). Как быть с общими правилами валидации тоже не понятно, хочется декларативный конфиг какой-нить, но пока есть только вариант с тупо с императивным обработчиком на каждое условие.
И хочется сделать максимально гибкий алгоритм, чтобы правила (а соответственно и признаки) можно было легко добавлять/изменять.