rss

Профиль компании

Финансовые компании

Блог компании Os_Engine | Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22

Каждый коннектор в OsEngine должен (в итоге, а тем более новые) содержать определённый набор регионов. В которых должны располагаться определённые методы, свойства и обработчики.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22

Таким образом, каждый программист, кто хоть чуть-чуть знаком с одним коннектором, автоматически начнёт понимать, как устроены другие. И как же они функционируют. Без проблем сможет ориентироваться внутри коннекторов, которые открыл впервые.

  1. Регионы должны быть отмечены номерами.
  2. Безномерные регионы не допустимы.
  3. Их должно быть минимум 10 штук. Максимум 20. Но постарайтесь разместиться в стандартных!
  4. Код вне региона не допустим.

Далее, каждый регион будет показан на примере коннектора к бирже криптовалют BitGet, расположенном в проекте вот здесь:

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22
Рис.0. Расположение сервера из примеров ниже внутри проекта OsEngine.

 

1 Constructor, Status, Connection.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22
Рис.1. Пример региона 1 в BitGet.

В данном регионе располагается конструктор реализации сервера. Реализация методов Connect / Disconnect. Тип сервера и т.д.

То, что нужно для старта работы сервера.

 

2 Properties.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22
Рис.2. Пример региона 2 в BitGet.

В данном регионе располагаются настройки коннектора.

 

3 Securities.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22

Рис.3. Пример региона 3 в BitGet.

Запрос доступных для подключения бумаг у подключения. Плюс всё, что с этим связано.

 

4 Portfolios.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22

Рис.4. Пример региона 4 в BitGet.

Запрос доступных портфелей у подключения. Плюс всё, что с этим связано.

 

5 Data.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22
Рис.5. Пример региона 5 в BitGet.

Запросы данных по свечкам и трейдам. Плюс всё, что с этим связано.

 

6 WebSocket creation.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22
Рис.6. Пример региона 6 в BitGet.

Создание вёбсокет соединения. Плюс всё, что с этим связано.

 

7 WebSocket events.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22
Рис.7. Пример региона 7 в BitGet.

Обработка входящих сообщений от вёбсокета. И что важно в данном конкретном случае, Closed и Opened методы обязательно должны находиться здесь, а не только приём сообщений. Ибо без них стабильно наладить работу вёбсокета не выйдет.

 

8 WebSocket check alive.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22
Рис.8. Пример региона 8 в BitGet.

Проверка вёбсокета на работоспособность путём отправки ему пингов.

 

9 Security subscrible ( или WebSocket security subscrible)

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22
Рис.9. Пример региона 9 в BitGet.

Подписка на бумагу. В данном случае это один метод, но бывает их тут и три. Поэтому отдельный регион.

С обязательным контролем скорости и кол-ву запросов к методу Subscrible через rateGate. Иначе будут проблемы, когда пользователи начнут подписываться на 400 источников.

 

10 WebSocket parsing the messages.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22
Рис.10. Пример региона 10 в BitGet.

Разбор сообщений от сокета и отправка их наверх.

 

11 Trade.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22
Рис.11. Пример региона 11 в BitGet.

Регион, посвящённый торговле. Выставление ордеров, отзыв и т.д.

 

12 Queries.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22

Рис.12. Пример региона 12 в BitGet.

Место расположение HTTP запросов.

 

13 Log.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22
Рис.13. Пример региона 13 в BitGet.

Логирование.

 

Регионы внутри методов ЗАПРЕЩЕНЫ.

Бездумное и повсеместное использование регионов запрещено… В контексте коннекторов мы будем их использовать только для оборачивания больших секторов класса ServerRealization по смыслу! Больше их нигде применять не нужно, ибо это порочная практика!

 

Что почитать?

  1. https://ru.stackoverflow.com/questions/733400/Способы-применения-директив-region-и-endregion-в-c Интересное обсуждение регионов в негативном смысле.
  2. 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://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22

★1
1 комментарий
Удачи Вам Всем!!!
avatar

теги блога Алексей Ван <o-s-a.net>

....все тэги



UPDONW
Новый дизайн