rss

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

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

Блог компании Os_Engine | Стандарты кода. Введение. Коннекторы к OsEngine #17

Проект OsEngine открытый и публичный. Так вышло, что многие его части писали разные люди. И дальше будет больше кода, написанного разными людьми.

Разные люди пишут код совершенно по-разному. Если Вы читаете это до того, как стали «крутым» программистом, возможно это звучит странно, но поверьте, всегда есть от 10 до 100 способов справиться с задачей.

Данная серия постов, «стандарты написания кода», призывает всех тех, кто занимается созданием кода в проекте, соблюдать определённые правила.

 Стандарты кода. Введение. Коннекторы к OsEngine #17

 

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

 

Как писалось ядро OsEngine.

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

Ядро это:

  1. Примитивы;
  2. Слои совместимости;
  3. Слои инверсий зависимостей для интеграции расширений в будущем;
  4. Слои создания роботов;
  5. Источники для слоя создания роботов;
  6. Слои создания индикаторов;
  7. Слои тестирования функциональности модулей.

Так это и останется. Ядро проекта и большие нововведения – вотчина скромника Алексея Ван. И это абсолютно нормально. СтокШарп, ТсЛаб, Ets Trader – ядра всех этих проектов написаны в основном одним каким-то программистом. И ответственность за ядро лежит всегда на нём. Это не какая-то злонамеренная история. Просто для того, чтобы во всём этом разбираться и одновременно удерживать в голове, человек должен десятилетие быть погруженным в проект.

Поэтому лезть в ядро лучше не стоит вообще.

Лезть в ядро – это не помощь. Править ядро – портить проект и вносить баги.

 

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

Кроме того, это и опыт других похожих проектов.

 

Как пишутся коннекторы и периферия.

А вот здесь уже можно опираться на сообщество.

Периферия:

  1. Коннекторы к новым биржам;
  2. Индикаторы;
  3. Роботы.

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

При этом – люди, работающие над переферией в 80 % случаев «начинающие программисты».

 

Проблема. Начинающие программисты учатся и экспериментируют над OsEngine

Это ни хорошо и не плохо.

Мы все через это проходили. И это просто констатация факта.

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

Во время изучения различных техник программирования они несут это всё в проект. Новомодный синтаксический сахар, многопоточности, архитектурные «изыски». Это малый перечень того, что начинающий программист обязательно захочет использовать. Но поскольку это «начинающие» программисты – получается у них в многопоточность и изыски плохо. От этого проект страдает.

Поэтому эти правила в основном для них. Помогут регулировать поток их фантазий. Чтобы за лесом из новомодных приёмов, не потерялось главное — СТАБИЛЬНОСТЬ ПРОЕКТА.

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

 

Часть из написанного в разделе стандартов кода многим покажется странным и спорным.

Это так и есть.

Многие вещи спорные. Какие-то вызывают недоумение даже у меня, но мы должны их придерживаться.

Это единственный способ оставлять проект единообразным. Тестируемым. И в конце концов стабильным.

 

Удачных алгоритмов!

Комментарии открыты для друзей, добавляйтесь!

Стандарты кода. Введение. Коннекторы к OsEngine #17

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support

Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients

Стандарты кода. Введение. Коннекторы к OsEngine #17

★1

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

....все тэги



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