Во-первых, класс и его сотрудники должны, во-первых, выполнять свое предназначение, а не фокусироваться на учениках. Управление жизненным циклом (когда экземпляры создаются и выходят за рамки) не должно входить в сферу ответственности cladses. Для этого рекомендуется создать или настроить новый компонент для управления зависимостями с помощью внедрения зависимостей.
Часто программное обеспечение усложняется, имеет смысл иметь несколько независимых экземпляров класса «singleton» с различным состоянием. В таких случаях использование кода для простого захвата синглтона является неправильным. Использование Singleton.getInstance () может подойти для небольших простых систем, но оно не работает / не масштабируется, когда может потребоваться другой экземпляр того же класса.
Ни один класс не должен рассматриваться как одноэлементный, а скорее должен быть приложением его использования или того, как он используется для настройки зависимостей. Для быстрого и неприятного это не имеет значения - просто жесткое кодирование говорит, что пути к файлам не имеет значения, но для более крупных приложений такие зависимости должны быть выделены и управляться более подходящим способом с помощью DI.
Проблемы, которые одноэлементные вызывают в тестировании, являются признаком их жестко запрограммированного варианта использования / среды. Набор тестов и множество тестов являются отдельными и отдельными, что несовместимо с жестким программированием одиночного кода.
Мы тоже используем Hudson, и если бы не рецессия, мы, вероятно, использовали бы Bamboo и большинство продуктов Atlassian (Bamboo, Crucible, Confluence) вместе с JIRA.
Если вы не полностью проданы на Hudson, тест-драйв в один клик должен изменить ваше мнение.
Нажмите ниже:
https://hudson.dev.java. net / hudson.jnlp
Это запустит Hudson через Java Web Start для тестовой поездки. После запуска посетите http: // localhost: 8080 / , чтобы перейти на панель управления. Любая конфигурация, которую вы делаете с этим Hudson, будет храниться в ~ / .hudson, поэтому ваши данные сохранятся после перезапуска процесса Hudson.
Если вы используете довольно стандартные инструменты, такие как svn и ant / maven - у вас должна быть сборка готово за 5 минут. Различные инструменты, это может занять 20 минут!
См. Введение здесь:
CruiseControl.NET намного эффективнее для Windows, чем оригинальная версия на основе Java. Особенно, когда выделенный сервер сборки еще не доступен.
Ознакомьтесь с нашим Parabuild . По сравнению с бесплатными инструментами, его очень легко настроить, а затраты на обслуживание близки к нулю. это не бесплатно, но вы получаете то, за что платите.