Как назвать пользователя в контексте трейдера и контрагента
Что проверяют
Умеете ли вы строить модель предметной области и не сваливать разные сущности в одну таблицу User. Интервьюер ждёт, что вы отделите учётную запись от роли и от юридического лица. Следом обычно просят нарисовать связи или объяснить, почему контрагент плохо подходит на роль отдельной сущности.
Как отвечать
Начните с уточнения: чья это система, биржевая платформа, брокерский кабинет или внутренний учёт банка. Затем разведите понятия:
- пользователь: учётная запись, тот, кто входит в систему и получает права. Это термин безопасности, а не бизнеса;
- участник (сторона, Party): организация или физлицо, от имени которого заключаются сделки и на ком лежат обязательства;
- трейдер: роль пользователя, который действует от имени участника в рамках лимитов и полномочий. Один человек может быть трейдером у двух участников, а трейдером бывает и робот с API-ключом;
- контрагент: не тип сущности, а отношение внутри сделки. У сделки две стороны, и для каждой вторая будет контрагентом. Одна и та же организация в одной сделке ваш клиент, в другой контрагент.
Отсюда модель: Party, User, связь «пользователь действует от имени участника» с ролью и лимитами, Deal со сторонами покупателя и продавца. Контрагент вычисляется относительно того, кто смотрит на сделку. Это шаблон Party и Party Role, он хорошо ложится на DDD.
Хорошо упомянуть биржевую специфику: при клиринге с центральным контрагентом второй стороной для каждого участника формально становится клиринговая организация, а не тот, кто выставил встречную заявку. Модель должна это выдерживать.
Итог оформите в глоссарий, чтобы аналитики, разработчики и бизнес называли одно и то же одинаково.
Где спотыкаются
Отвечают учебным определением трейдера и контрагента, не предлагая модель и названия. Вопрос про проектирование, а не про финансовую грамотность.
Заводят отдельную таблицу Counterparty, дублируя организации. Потом одна компания живёт в двух местах с разными реквизитами.
Привязывают сделку к пользователю, а не к участнику. Трейдер увольняется, учётную запись блокируют, а обязательства по сделкам остаются на организации, и отчётность разваливается.