Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Лучшие практики для среды разработки и API dev?
Мой нынешний работодатель использует сторонний хостинг-провайдер CRM, и у нас есть довольно сложный уровень интеграции между двумя системами. Среди возможностей поставщика CRM для разработчиков является создание бизнес-логики на языке Java, как и на таких событиях, как пользователь, нажав на кнопку или отправив новую учетную запись в систему, есть проверка и / или бизнес-логика выстрелить.
Одна из возможностей, которую мы используем, заключается в том, что бизнес-код, запущенный на хост-провайдере, вызывает веб-службы, которые мы размещаем. Канонический пример - это торговый представитель, который вводит новый интерес к продажам и нажимает кнопку, чтобы проверить наши системы, чтобы узнать, можем ли мы идентифицировать этот новый интерес на основе адреса email, имени company/first/last и т. д., И если да, верните внутренний GUID, который представляет этого человека. Все это прекрасно работает для нас, но мы снова и снова натыкаемся на стену, пытаясь настроить разумную среду разработки для работы.
Таким образом, хотя наш вариант использования немного нюансирован, это обычно может применяться к любому дому разработки, который строит APIs для потребления третьей стороной: каковы некоторые рекомендации при проектировании конвейера разработки и среды, когда вы строите APIs для потребления внешним миром?
В нашем офисе все наши разработчики находятся за брандмауэром, поэтому текущий код не может быть поражен внешним миром, в нашем случае провайдером CRM. Мы могли бы проделать дыры в брандмауэре, но это не идеально с точки зрения безопасности поверхности. Особенно, если # разработчиков, которые должны быть в DMZ, как область высока. В настоящее время мы пробуем одну машину dev в DMZ, а затем удаляемся в нее по мере необходимости для выполнения работы dev, но это создает проблему нехватки ресурсов, если несколько разработчиков нуждаются в коробке, не говоря уже о том, что они делают потенциально конфликтующие изменения (например, разные ветви).
Мы рассмотрели только издевательство / подделку входящих запросов путем создания поддельных клиентов для этих служб, но это довольно большие накладные расходы при создании наборов функций (хотя это по своей природе усиливает тестируемость нашего APIs). Это также не устраняет тот факт, что иногда нам действительно нужно диагностировать/отлаживать проблемы, исходящие от самого реального клиента, а не от какой-то поддельной полезной нагрузки запроса.
Что сделали другие в таких сценариях? В этот день и век мэшапов, должно быть много людей там w/ опыт разработки APIs-что работает (и не работает так) хорошо для людей там?
В тех случаях, когда это было актуально для меня (что, по правде говоря, не часто), мы, как правило, делали комбинацию размещения копии dev решения в доме и издевались над тем, что мы не можем разместить.
Я лично думаю, что чем больше вы можете разместить на отдельных коробках dev, тем лучше-если ваши dev PCs достаточно мощны, чтобы иметь всю работу плюс все остальное, что им нужно разработать, тогда они должны это делать. Это позволяет им иметь тонны гибкости, чтобы развиваться, не беспокоясь о других людях.
Для dev имело бы смысл использовать фиктивные объекты и писать хорошие модульные тесты, которые определяют задачу под рукой. Это поможет гарантировать, что разработчики понимают требования бизнеса. Макетные библиотеки очень сложны и помогают решить эту проблему.
Затем, возможно, непрерывный процесс сборки, который перемещает код в поле dev в DMZ. Надежный процесс QA будет иметь смысл плюс общее тестирование UAT.
Кроме того, для общей отладки вам снова нужно иметь доступ к машине в DMZ, где вы удаленно входите.
Это, вероятно, ситуация "ideal", но вы просили лучшие практики :).