Каждый коннектор в OsEngine должен (в итоге, а тем более новые) содержать определённый набор регионов. В которых должны располагаться определённые методы, свойства и обработчики.
Таким образом, каждый программист, кто хоть чуть-чуть знаком с одним коннектором, автоматически начнёт понимать, как устроены другие. И как же они функционируют. Без проблем сможет ориентироваться внутри коннекторов, которые открыл впервые.
- Регионы должны быть отмечены номерами.
- Безномерные регионы не допустимы.
- Их должно быть минимум 10 штук. Максимум 20. Но постарайтесь разместиться в стандартных!
- Код вне региона не допустим.
Далее, каждый регион будет показан на примере коннектора к бирже криптовалют BitGet, расположенном в проекте вот здесь:

Рис.0. Расположение сервера из примеров ниже внутри проекта OsEngine.
1 Constructor, Status, Connection.

Рис.1. Пример региона 1 в BitGet.
В данном регионе располагается конструктор реализации сервера. Реализация методов Connect / Disconnect. Тип сервера и т.д.
То, что нужно для старта работы сервера.
2 Properties.

Рис.2. Пример региона 2 в BitGet.
В данном регионе располагаются настройки коннектора.
3 Securities.
Рис.3. Пример региона 3 в BitGet.
Запрос доступных для подключения бумаг у подключения. Плюс всё, что с этим связано.
4 Portfolios.
Рис.4. Пример региона 4 в BitGet.
Запрос доступных портфелей у подключения. Плюс всё, что с этим связано.
5 Data.

Рис.5. Пример региона 5 в BitGet.
Запросы данных по свечкам и трейдам. Плюс всё, что с этим связано.
6 WebSocket creation.

Рис.6. Пример региона 6 в BitGet.
Создание вёбсокет соединения. Плюс всё, что с этим связано.
7 WebSocket events.

Рис.7. Пример региона 7 в BitGet.
Обработка входящих сообщений от вёбсокета. И что важно в данном конкретном случае, Closed и Opened методы обязательно должны находиться здесь, а не только приём сообщений. Ибо без них стабильно наладить работу вёбсокета не выйдет.
8 WebSocket check alive.

Рис.8. Пример региона 8 в BitGet.
Проверка вёбсокета на работоспособность путём отправки ему пингов.
9 WebSocket security subscrible.

Рис.9. Пример региона 9 в BitGet.
Подписка на бумагу. В данном случае это один метод, но бывает их тут и три. Поэтому отдельный регион.
С обязательным контролем скорости и кол-ву запросов к методу Subscrible через rateGate. Иначе будут проблемы, когда пользователи начнут подписываться на 400 источников.
10 WebSocket parsing the messages.

Рис.10. Пример региона 10 в BitGet.
Разбор сообщений от сокета и отправка их наверх.
11 Trade.

Рис.11. Пример региона 11 в BitGet.
Регион, посвящённый торговле. Выставление ордеров, отзыв и т.д.
12 Queries.
Рис.12. Пример региона 12 в BitGet.
Место расположение HTTP запросов.
13 Log.

Рис.13. Пример региона 13 в BitGet.
Логирование.
Регионы внутри методов ЗАПРЕЩЕНЫ.
Бездумное и повсеместное использование регионов запрещено… В контексте коннекторов мы будем их использовать только для оборачивания больших секторов класса ServerRealization по смыслу! Больше их нигде применять не нужно, ибо это порочная практика!
Что почитать?
- https://ru.stackoverflow.com/questions/733400/Способы-применения-директив-region-и-endregion-в-c Интересное обсуждение регионов в негативном смысле.
- https://www.cyberforum.ru/csharp-beginners/thread2216.html А тут 10 раз разными словами человеку объясняют, что же это такое… Вдруг кто не в курсе…
Пост из серии «Коннекторы к OsEngine»
Серия о том, как стать настоящим программистом и изменить свою профессию.
Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php
Комментарии открыты для друзей, добавляйтесь!
OsEngine: https://github.com/AlexWan/OsEngine
FAQ: https://o-s-a.net/os-engine-faq
Поддержка OsEngine: https://t.me/osengine_official_support
Курилка, общаемся здесь: https://t.me/o_s_a_chat
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Подробнее https://smart-lab.ru/compan...




