Задача 1) Дело не в архитектуре, а скорее в дизайне сервиса. Основанный на принципах проектирования сервисов и 8 сервисных принципов разработки , этот сценарий в значительной степени нарушает множество определенных практик. Сервисный центр должен быть совместимым и обеспечивать возможность обнаружения сервисов. Способ предоставления услуги должен учитывать сценарий изменения URL-адреса.
Технически это можно решить с помощью DNS, обратного прокси-сервера или простого добавления определенного статического URL-адреса, который может выполнять вызов службы, и перенаправить на нужную операцию службы в терминологии SOAP или ресурс API в терминологии REST.
Он должен быть статическим, как http://example.org/weather.asmx
, а weather.asmx
будет содержать другие операции, которые могут быть вызваны и изменены динамически, но h ttp://example.org/weather.asmx
должен быть постоянным.
Задание 2) Если вам нужно добиться этого с помощью REST, вы должны понимать, как работает HTTP-код и как работать без сохранения состояния. Развивайте свои навыки с помощью бесплатных онлайн-тренингов, например, от udemy.com по разработке API.
Я бы предложил следовать учебному пособию, блогу и видео-учебнику на тему « разработать и внедрить API с помощью учебника JAVA ».
Если у нас есть источник, то мы включаем это в наш репозиторий под отдельной папкой.
, Если у нас нет источника, затем мы просто сохраняем новые двоичные файлы (место рождения, dll, безотносительно) в репозитории, и включаем установку / инструкции по использованию в документе установки.
Это похоже на это:
\root
\third_party_stuff
\vendor1 --we *do* have the source for this
\src
\bin
\vendor2 --we *do* have the source for this
\src
\bin
\vendor3 --we don't have the source for this one
\bin
\our_stuff
\project1
\src
\bin
\project2
\src
\bin
С Подверсией я использую функцию внешнего облика. Это помогает использовать сторонний материал в нескольких проектах; при проверке проекта Вы получаете внешние зависимости также.
, Если у Вас уже нет его, необходимо получить копию Прагматического Управления версиями Используя Подверсию. Это - замечательная книга о функциональности Подверсии и как сделать вещи. В то время как это ссылается на SVN от командной строки, информация также легко переводима к GUI в TortoiseSVN.
Для переустановки компонентов в Delphi для более старых проектов, я обычно экспортирую ключи реестра для любой версии Delphi, используемого в папку проекта, и затем проверяю что.REG файл в Подверсии наряду с проектом. Можно легко проверить проект, экспортировать существующий раздел реестра Delphi для соответствующей версии Delphi, импортировать.REG файл из исходной папки проекта и затем запустить Delphi со всех установленных компонентов.
До "двоичного BPL" проблема, позор Вам! Если у Вас есть проекты в зависимости от сторонних программ, необходимо купить источник для них. Тем путем Вы защищены от той обанкротившейся компании, или отбрасывающий поддержку компонентов или новые выпуски Delphi, которые не совместимы. Я всегда получаю источник для сторонних компонентов; если источник не доступен, я нахожу другой продукт или пишу код сам. Это назвало самосохранение. :-)
Во-первых, я соглашусь и с Ken и с Fabricio, что Вы должны иметь исходный код для всех компонентов, которые Вы используете в проекте. Что-либо еще просто напрашивается на неприятности.
Мы не используем Подверсию для нашего Управления исходным кодом, но я предполагаю то, что мы делаем все еще было бы применимо...
Каждый проект, что мы продолжаем работать, имеет полную копию всех компонентов (источник), используемый в том проекте. Когда мы выпускаем, мы создаем ответвление выпуска, которое включает компоненты, а также источник проекта. Каждый проект включает свой собственный каталог BPL.
Мы всегда создаем отдельные ярлыки для выполнения Delphi для каждого проекта (или ответвление проекта), что мы хотим продолжить работать и использовать-R параметр командной строки для установки уникального Ключа реестра для настроек Delphi для того проекта.
Мы затем удостоверяемся, что переопределяем переменную среды Пути в Delphi для указания на наш каталог BPL проекта вместо нормального каталога Delphi BPL.
Мы устанавливаем BPL и выходные каталоги DCP для всех компонентов, чтобы быть локальным каталогом BPL проекта.
Это позволяет нам иметь несколько версий Delphi с несколькими версиями проектов с помощью различных версий компонентов без любых проблем.
Я соглашаюсь с Ken White на этом: сторонние компоненты Дельфи, используемые в производственном коде
, должны иметь исходный код
Период. Скомпилированные дистрибутивы только для двоичных файлов в целях оценки ТОЛЬКО . Это - наша политика здесь.
Что касается вопроса: Я на самом деле не помещаю их на VCS. На самом деле я использую последнюю версию что мои компиляции проектов и работы. Путаница с системой, поиском, библиотекой, и так далее... соединяет каналом, не делает ценности. 2 JVCL на той же машине или прибывающий назад и вперед версии каким-либо новым проектом? ARRRRGH.
, Если я должен использовать старую версию для системы обслуживания, отбросьте новый VM и установите последнюю версию.Работает? Хорошо. Нет? Это остается на VM, пока я не обнаруживаю способ интегрироваться на основной среде.
Одна версия каждой вещи более чем достаточно.
Стоит упомянуть что некоторые компании как удаленный доступ предложения LMD к их собственному репозиторию SVN для клиентов с подпиской поддержки. Я нахожу что хороший способ получить быстрый bugfixes для критических проблем.