Где писать и хранить функции карты / сокращения mongoDB в проекте Java - PullRequest
2 голосов
/ 17 августа 2011

Есть ли у кого-нибудь какие-либо советы или какие-либо рекомендации относительно того, где и как в Java-проекте писать и хранить функции javascript map / сокращения для использования с базой данных MongoDB?

Критерии, по которым яищу:

При написании и редактировании функций мне бы хотелось использовать подсветку синтаксиса и проверку ошибок, предоставляемые IDE (я использую Eclipse).

Я неЯ хочу скопировать функции в другое место, когда я закончу их редактировать, если это возможно.

Я бы предпочел хранить функции в исходном коде, а не в самой БД, для удобства, версияконтроль и т. д.

Любые примеры того, как вы решили эту проблему, были бы великолепны.

РЕДАКТИРОВАТЬ: Я не уверен, что я правильно объяснил, так что вот еще один шаг:

Я не спрашиваю об основах управления ресурсами.Что мне нужно, так это, если возможно, рабочая среда, которая позволяет мне использовать преимущества моей IDE при редактировании функций «на месте».Вы должны извинить меня, если я упускаю что-то ослепительно очевидное.

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

private static final String MAP_FUNC = 
    "function() { " +
    "   emit(this.id, {total : this.total}); " +
    "};";

или в файле свойств Java:

map.func=function() {
\       emit(this.id, {total : this.total});
\   };

, где вы должны ввести множество посторонних символов, таких как "s и \ s. Вы должны написать это где-нибудь еще, затем скопируйте и вставьте его и добавьте эти символы (или у вас может быть инструмент, который сделает это за вас - вам все равно придется это делать).

Поскольку Javascript проверяется Eclipse при его написании.js-файлы, я не хочу делать ничего из этого. Я хотел бы хранить функции в .js-файлах таким образом, чтобы они были готовы для удобного использования вызовом map / lower при необходимости.

Кто-нибудь делает это или подобное? Первоначально я хотел создать отдельный файл .js для каждой функции, однако файл .js, в котором нет ничего, кроме анонимной функции, не проходит проверку в eclipse, что делает его точечным.s - вы должны назначить его переменной - что означает, что он не в правильной форме для потребления картой / уменьшить.Я полагаю, я мог бы создавать файлы только содержание функций?Но все это звучит немного беспорядочно, и я надеялся, что кто-то еще мог столкнуться с проблемой и найти изящное решение.

Ответы [ 2 ]

2 голосов
/ 17 августа 2011

Соглашение, которое я использую и которое я видел в большинстве проектов с открытым исходным кодом (включая Spring et al), заключается в том, чтобы помещать все не-Java-файлы в каталог ресурсов, в описательный каталог:

module-root/
    src/
        main/
            java/
                (Java sources go here)
            resources/
                log4j.xml
                spring/ (spring xmls go here)
                sql/ (sql scripts go here)
                mongo/ (<-- seems like a good place for mongoDB functions)
        test/
            unit/
                java/ (unit test java sources go here)
                resources/ (unit test specific resources - usually none)
            integration/
                java/ (integration test java sources go here)
                resources/
                    spring/ (usually an ITestAssembly.xml goes here)

Затем файл сборки упаковывает ресурсы в банку ресурсов, которая развертывается вместе со всеми остальными банками.

0 голосов
/ 17 августа 2011

Мы помещаем файлы JS в качестве ресурсов приложения в проект (Eclipse), а затем при инициализации приложения эти файлы читаются приложениями Java (в нашем случае веб-приложением или демонами), сохраняются в классе управления singleton и затем используются по мере необходимости при вызове, скажем, карты / уменьшить.

Это относительно простое управление ресурсами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...