остановка [закрытой] гнили кода

Если вы really хотите знать, кто является пользователем SiteA, это должен быть пользователь из собственной пользовательской базы данных SiteA. Это имеет смысл, если SiteA является не просто прокси для API SiteB и имеет своих собственных пользователей, разрешения и функциональность.

Чтобы выяснить, кто является пользователем SiteA, вам необходимо сопоставить всех пользователей вашего SiteA с пользователями Auth Server.

Часть 1. Импорт существующих пользователей на Auth Server

Если вы управляете Auth Server, импортируйте всех ваших текущих пользователей в его базу данных пользователей. Каждый из них будет иметь Subject ID (идентификатор на стороне сервера аутентификации). Скопируйте эти идентификаторы обратно соответствующим пользователям в базе данных вашего SiteA: в таблице User вашего SiteA будет новый столбец, например: userid, user_name, user_last_name, user_auth_id (новый столбец)

, если вы не можете импортировать все ваши пользователи, это становится сложным. Единственный способ, о котором я могу подумать: вам придется дважды регистрировать этих пользователей - один раз в OIDC-провайдере и один раз в SiteA, а затем связать пользователя SiteA с пользователем OIDC.

Часть 2. Сопоставление входящего пользователя с внутренним пользователем в SiteA

В случае успешного ответа от OIDC Server вы получите идентификационный токен. Содержит sub заявку с ИД субъекта пользователя. Когда вы получите это, вам нужно будет выполнить поиск во внутренней БД и найти соответствующего пользователя SiteA. Если вы не нашли его, создайте нового пользователя в SiteA (если все существующие пользователи были импортированы)

Как только вы узнаете, кто этот пользователь, войдите в систему SiteA, как вы это обычно делаете (дайте им cookie, например).

6
задан Jonathan Leffler 20 January 2009 в 15:30
поделиться

7 ответов

Исчерпывающий набор модульных тестов

править: и полезно, если они правильно написаны для точного тестирования всех классов / интерфейсы человекочитаемым способом.

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

12
ответ дан 8 December 2019 в 03:02
поделиться

Модульные тесты не остановят гниль самостоятельно. Я могу все еще написать ужасающий, неудобный в сопровождении код, который передает модульный тест.

Лучший ответ является модульными тестами. + регулярный рефакторинг + экспертная оценка (или на соединяющемся этапе или после) + стандарты

Вы действительно знаете, что нет никакой серебряной пули.

11
ответ дан 8 December 2019 в 03:02
поделиться

Используйте процесс разработки итерации:

  1. Функция реализации
  2. Осуществите рефакторинг код
  3. Переход к 1.

У Вас должна быть некоторая дисциплина, но без нее Вы закончите тем, что имели путаницу. Даже если Вы думаете, "О, код достаточно читаем", не пропускают шаг 2. Конечно, разработка должна всегда сопровождаться путем тестирования.

3
ответ дан 8 December 2019 в 03:02
поделиться

Периодические рефакторинги, особенно в разделе кода, в котором Вы в настоящее время работаете (правило "Бойскаута").

2
ответ дан 8 December 2019 в 03:02
поделиться

Главный и принятый ответ в этом вопросе должен быть "Всесторонними модульными тестами".

Этот ответ не собирается повторять это.

Однако добавление Модульных тестов к существующему проекту намного более трудно и обычно является плохой имитацией того, что может быть достигнуто, если код приложения это сам было записано с Поблочным тестированием в памяти.

Также экстремальное давление расписания может лишить возможности рассматривать, те, кто не испытал поблочное тестирование использования все еще большая плоскодонка.

Моя рекомендация в тех условиях является записью, а также Вы можете для достижения текущих целей. Будьте готовы осуществить рефакторинг существующий код прежде, чем добавить новые функции. Пока поблочное тестирование сделало бы этот подход путем путем более безопасный, этот подход все еще полезен даже без поблочного тестирования.

Конечно, хорошее общее тестирование и QA важны.

2
ответ дан 8 December 2019 в 03:02
поделиться

Достойный набор кодирования стандартов.

Они не должны быть завершены, но они должны означать, что Вы знаете, какие вещи как Ваше добавление отступа фигурной скобки так, у Вас есть меньше для размышления о (и это означает, что места, куда код был срочно отправлен и не форматирован правильно, выделятся как воспаленный ползунок),

1
ответ дан 8 December 2019 в 03:02
поделиться

В моем задании, поскольку мы приближаемся к замораживанию кода затем, 'быстрый и грязный' подход иногда необходим. Это обычно приводит к некоторому довольно изворотливому коду, который работает, но нарушает ваши глаза.

Однако сразу после поставки существует период относительного спокойствия. Это - идеальная возможность пересмотреть часть того вонючего кода и пробить его в небольшое количество формы.

Это помогает сохранить список областей, которые требуется убрать и присвоить своего рода приоритет им. Несмотря на то, как хороший Вы полагаете, что Ваша память, Вы забудете.

Этот подход работает вполне хорошо на меня, но я предполагаю, что он зависит от Вашего конкретного рабочего процесса проекта.

0
ответ дан 8 December 2019 в 03:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: