28 февраля 2017 г.

Изменение способа публикации кода

До этого момента я выкладывал все скрипты единым файлом, в котором находится весь код, кроме стандартной библиотеки. Можно было открыть скрипт в редакторе и скомпилировать. После этой записи я буду публиковать код в репозитории (хранилище). Зачем я это делаю, объясню ниже.

Код индикатора может состоять из множества файлов. С помощью самописной программы все эти файлы, кроме файлов стандартной библиотеки, я собирал в один файл. В процессе убирались служебные комментарии, ненужные пустые строки, неиспользуемые функции и прочий мусор. К сожалению, этот механизм чистки (необходимый, как когда-то казалось) довольно посредственный, и написать годный - задача совсем другого уровня. Это одна из причин, почему я ухожу от такого способа публикации кода.

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

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

И всё это без каких-либо целей, кроме упрощения распространения, что обернулось скорее во вред.

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

Насколько я помню, скомпилированные версии индикаторов должны работать и в следующих билдах терминала, поэтому проблем при публикации скомпилированных скриптов быть не должно.

Код будет публиковаться на GitLab, система контроля версий Git, в едином проекте для всех моих публичных скриптов (https://gitlab.com/fxcoder/mt-script). Рекомендую клонировать его в отдельную папку (или просто периодически скачивать, если вы не желаете разбираться с Git), после чего создавать символьные ссылки на папки внутри папки вашего "профиля" терминала, так вы получите единый код во всех копиях терминала и его профилях, обновляемый из одного места.

---

Текст выше был скорректирован 4 апреля 2019 г. для соответствия действительности. Изначально планировал использовать BitBucket/Mercurial, но там годами не правят баги с кодировкой, увы. Очевидный, дефолтный GitHub не подошёл для других проектов, остановился на GitLab.

Комментариев нет:

Отправка комментария