Всем здравствуйте.
Прошу извинить за долгое молчание на форуме, но так получилось.
Итак, о дальнейшем развитии Снегопата.
Самый животрепещущий вопрос - поддержка свежих релизов 1С.
Признаюсь, кодирование всех тех вывертов и заплаток внутри снегопата для возможности работы в разных релизах движка 1С меня изрядно вымотало.
Руки уже почти опустились, и я уже почти был готов признать поражение в этой погоне.
Но так просто сдаваться я не привык, и решение не могло быть не найдено.
В работе над новым своим проектом я познакомился со скриптовым движком
AngelScript.
Очень скоростной движок, с С++ подобным синтаксисом и JIT-компиляцией, позволяющий относительно легко и просто взаимодействовать с С++ кодом "родительского" приложения.
(также там есть еще ряд хороших фич, пригодящихся в снегопате).
Поэтому сейчас идет работа по громадному рефакторингу движка снегопата:
- вычленение в отдельный слой всего взаимодействия с движком 1C.
- перевод части кода движка снегопата на AngelScript.
- создание динамически формируемой прослойки для взаимодействия кода снегопата с кодом 1С.
В итоге - будет единый движок снегопата плюс отдельные скрипты для его работы под разными релизами.
При запуске снегопат будет определять версию релиза 1С, загружать соответствующий этому релизу скрипт инициализации,
тот в свою очередь динамически сформирует слой взаимодействия между снегопатом и 1С, и запустит непосредственно движок снегопата.
Что это дает:
Плюсы:
- упрощение поддержки новых релизов 1С. Теперь не будет нужды лопатить весь код снегопата в случае выхода нового релиза.
Достаточно будет только выпустить новый скрипт взаимодействия, отражающий изменения в этом релизе, не трогая основную часть
кода.
- Меньше вероятность вылета в случае ошибок в коде самого снегопата - скрипт по определению не может вызвать крах всей программы,
только крах самого скрипта + язык скрипта автоматически управляет памятью (GC). Плюс опять же меньше вероятность внести ошибки
при адаптации к новому релизу 1С, так как основной код трогаться не будет.
Минусы:
- возможно небольшое снижение скорости работы, но думаю, что на практике это даже не будет заметно.
- не уверен, что смогу полностью оставить текущее SnegAPI без изменений, и возможно часть существующих аддинов
потребует доработки.
- скорее всего, поддержки релизов 1С меньше 8.2.19 не будет.
Итого - думаю, все согласятся, что плюсы сильно перевешивают минусы.
Сроки - на это уйдет еще весь декабрь и январь. Прошу всех еще чуть-чуть набраться терпения и подождать.
Работа идет, никто не забыт, ничто не забыто.