Алексей Ван <o-s-a.net>

Читают

User-icon
986

Записи

497

Стандарты кода #5. Архитектурный ад. Сколько нужно файлов и папок. Коннекторы для OsEngine #24

Проблема, о которой поговорим сегодня – генерация хитрых архитектур для коннектора. Сразу же скажу, что коннектор в рамках OsEngine, насколько бы он для вас сложным не был, — очень простая штука, если пользоваться моими советами и вести тесты. Настолько простая, как складной нож. Он очень прост и не нуждается ни в каких дополнениях.

Складной нож не нужно прикручивать к палке, чтобы им управлять.

Складной нож не требует постоянного отмачивания в машинном масле.

И конечно же, складной нож не нуждается в перевязывании изолентой с другими предметами —  топорами или вилками. В этом нет смысла.

Стандарты кода #5. Архитектурный ад. Сколько нужно файлов и папок. Коннекторы для OsEngine #24

Совместные классы-парсеры для разных коннекторов.

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

Всё это заканчивалось переделыванием с нуля.

Поэтому:

Совместные классы-парсеры, вёбСокет-обёртки и рест-оболочки для коннекторов запрещены.



( Читать дальше )

Стандарты кода #4. Вложенность и оформление методов. Коннекторы для OsEngine #23

Короткая статья о методах и их оформлении. Данная часть стандартов направлена на людей в разной стадии понятия дзена программирования. Людей, которые находятся в стадии эксперимента на уровне написания самого кода внутри методов, обработчиков и свойств. Их, абсолютно также, как и во время именования переменных, можно написать так, что другие программисты понимать не будут. Поговорим об этом…

Стандарты кода #4. Вложенность и оформление методов. Коннекторы для OsEngine #23

 

Количество строк в методах.

 

Некоторые программисты целенаправленно делают вместо 10 методов по 100 строк, 200 методов по 10 строк, искренне считают, что это хорошо. Суть в том, что разбитый на такие мелкие части код легче тестировать, когда у Вас в команде есть тестеры, и вероятно в больших коммерческих проектах это чистое благо. Однако. Имея в команде пару человек, которые не будут за Вами писать тесты, это ЧИСТОЕ ЗЛО.

Некоторые программисты, кто делает вместо 10 методов Один, также искренне полагают, что это круто. Используют тонну синтаксического сахара, вызовы методов в методах и прочее… Это в свою очередь вызвано юношеским максимализмом и увлечением языками вроде Питона, что провоцирует людей на эксперименты с сахаром. Добавляя такое в проект, Вы также наносите ему непоправимый ущерб.



( Читать дальше )

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

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

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

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

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

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



( Читать дальше )

Пацанчики из Васюринской щемят городских. Итоги корпоративного блога Os Engine за ноябрь 2023

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

Поддержка колоссальная. За что сразу ОГРОМНОЕ, ДУШЕВНОЕ СПАСИБО!!!

Пацанчики из Васюринской щемят городских. Итоги корпоративного блога Os Engine за ноябрь 2023

Но обо всём по порядку.

 

1. Скорость набора рейтинга УДВОИЛАСЬ.

 



( Читать дальше )

Нейминг объектов. Стандарты кода #2. Коннекторы к OsEngine #21

Именование переменных нормальным языком – важнейший признак уважения к другим программистам. А первый признак неуважения одного программиста к другому – запутанные названия переменных.

Можно было бы просто сказать, следи за тем, что пишешь. Пожалуйста обращай внимание на переменные. Но это не наш метод)

Нейминг объектов. Стандарты кода #2. Коннекторы к OsEngine #21

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

 

Обфускация кода.

Процесс запутывания названия переменных и методов с целью недопущения использования этого кода другими программистами.

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

Если Вы хотите, чтобы код был нечитаемый и не был никем переиспользован, Вы должны дать вашим методам, переменным, событиям, etc… нечитаемые названия.



( Читать дальше )

Большой алготрейдинг прекрасен, и это OsEngine. А стране нужны программисты из предметной области.

Почти неделю в Москве. Попал сюда в пургу на чёрной машине. Сквозь туман, снег, гололёд и приключения. Как доктор хренпойми каких наук из низкобюджетного фильма, вызванный в пентагон, чтобы спасти вселенную.

 Большой алготрейдинг прекрасен, и это OsEngine. А стране нужны программисты из предметной области.

 

Заканчиваю интеграцию робота арбитражника для фьючей на коммодитиз (Москва/Китай) для очень крупной компании экспортёра в РФ.

И вот, значит, вечер. Я и Топ менеджер, только что вернувшийся с выступления Путина. Стоим и смотрим на Москву сверху вниз, из его нескромного офиса.

– ты когда уедешь, может посоветуешь мне программиста на поддержку?

— эээ. Давай лучше я буду поддерживать пока. Посоветовать мне некого.

 

Большой алготрейдинг — это тебе не питонирование.

Чтобы участвовать в чём-то таком, знания Метатрейдера, ТсЛаб или Питона недостаточно и даже бессмысленно (вредно). Подключая вторую ногу из Китая, пришлось написать 2 тыщи строк кода на С++. Сделать сервер на С++ и связать его с клиентами на СиШарп. Всё это очень сложно и может быть сделано только настоящими программистами. Т.ч. учите СиШарп и то, как делать к OsEngine коннекторы. Иначе в Москва-сити не попасть.



( Читать дальше )

Стандарты кода #1. Создание переменных. Коннекторы к OsEngine #20

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

Запрет на создание полей и свойств для объектов во время создания объекта.

Стандарты кода #1. Создание переменных. Коннекторы к OsEngine #20 
Рис. 1. Как не надо создавать переменные. 

Подобный способ создания класса приведёт к следующим проблемам:

1)      В случае перехвата ошибки отладчик не будет указывать на строку проблемы.

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

3)      В данном конкретном примере также возникнут проблемы с выбором некоторых перечислений, т.к. вариантов несколько, а использовать адекватно IF с отладкой не выйдет.



( Читать дальше )

Последний шанс попасть на Митап сообщества OsEngine в Москве.

Девятого числа, в субботу собирается наше сообщество. Встречаемся в офисе АЛОР. Продолжаем в баре на Шаболовке. Подробности можно прочитать здесь: https://smart-lab.ru/company/os_engine/blog/965467.php

Последний шанс попасть на Митап сообщества OsEngine в Москве.

Билеты за 2.5 т.р. закончились в течении суток. Мне жаль, но полноформатную конференцию мне организовывать в данный момент некогда. Не раньше следующего лета. Надеюсь на понимание.

 

Остались следующие виды билетов:

-  4 благотворительных за 20 т.р. С которых 85% суммы будут переданы в «Динской социально-реабилитационный центр для несовершеннолетних»

—  1 мегаблаготворительный билет за 100 т.р., 97 % от цены которого будут переданы в «Динской социально-реабилитационный центр для несовершеннолетних»

 

Друзья. Я в Вас верю.

Появилось ещё одно внезапное правило: На входе, придётся подписать договор о неразглашении информации.

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



( Читать дальше )

ServerRealization, конечная логика коннектора. Коннекторы к OsEngine #19

Сегодня поговорим про месторасположение конечной логики коннектора. То место, где надо написать 98% кода, когда делаешь новый коннектор. Это класс ServerRealization.

Вновь возвращаемся к упрощённой схеме работы с конечной реализацией сервера:

 ServerRealization, конечная логика коннектора. Коннекторы к OsEngine #19

 

1. Это часть AServer.

 

Первое, что надо создать в конструкторе любого коннектора, это IServerRealization. Класс с конечной логикой коннектора:



( Читать дальше )

IServer и AServer. Коннекторы к OsEngine #18

Сегодня поговорим про разницу между IServer (интерфейс) и AServer (абстрактный класс) внутри Os Engine. Зачем они в проекте и как появились?


Это часть серии постов «Коннекторы к OsEngine», в которой мы с нашими читателями учимся быть не просто алготрейдерами, но и настоящими программистами, а многие из них станут ими, навсегда, изменив свою жизнь к лучшему.  Пролетарии СмартЛаба, присоединяйтесь!

Упрощённая схема работы с конечной реализацией сервера из любого робота в OsEngine:

IServer и AServer. Коннекторы к OsEngine #18

 

1 IServer.

IServer – интерфейс для доступа к реализациям серверов почти во всём проекте. Нужен для того, чтобы унифицировать методы и свойства, нужные для роботов и OsData.

 



( Читать дальше )

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

....все тэги



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