Платформа создания микросервисов на 1С-подобном языке
Clone or download
Latest commit 1558ed1 Oct 31, 2017
Permalink
Failed to load latest commit information.
.vscode перенос строк и комментарии Jul 8, 2017
ast stmt worker pool Oct 21, 2017
bincode decnum Oct 23, 2017
consulapi consul api Oct 13, 2017
core response http Oct 30, 2017
example todo example Oct 31, 2017
extra readme Oct 31, 2017
names ускорение env за счет перехода на слайсы Oct 4, 2017
parser rus lexer Oct 20, 2017
pos stmts Sep 13, 2017
services/gonecsvc boltdb Oct 29, 2017
test pi test Oct 23, 2017
tool рефакторинг Sep 17, 2017
vendor decnum Oct 20, 2017
version Файловая база данных BoltDB Oct 29, 2017
.gitignore example Oct 31, 2017
.travis.yml go 1.9 Aug 25, 2017
LICENSE лицензия Aug 28, 2017
PITCHME.css pitch Oct 12, 2017
PITCHME.md blog facebook Oct 18, 2017
PITCHME.yaml pitch Oct 12, 2017
Procfile диагностические сообщения Aug 13, 2017
README.md readme Oct 31, 2017
TODO todo Oct 31, 2017
_config.yml Set theme jekyll-theme-tactile Jul 8, 2017
cpu.pdf test pi Oct 20, 2017
main.go consul api Oct 15, 2017
main_test.go http Oct 21, 2017
mem.pdf remove binfree (use sync pool) Oct 6, 2017
test.db test.db Oct 29, 2017

README.md

GitHub issues Travis

Gonec Logo

Presentation Demo site

Download Docs

Chat Blog

Цели

Платформа Гонец:Микросервисы создана для решения программистами 1С задач, связанных с высокопроизводительными распределенными вычислениями, создания микросервисов, вэб-сервисов и вэб-порталов для работы тысяч пользователей, работы с высокоэффективными базами данных, с использованием синтаксиса языка, похожего, но не ограниченного возможностями языка 1С.

Еще никогда программистам 1С не были так легко доступны возможности:

  • Создать микросервис с произвольным сетевым протоколом, развернуть его на linux, в docker контейнере или кластере kubernetes
  • Выполнить сложную многопоточную вычислительную задачу для десятков тысяч подключающихся пользователей за миллисекунды
  • Взаимодействовать с пользователем через web-браузер с минимальным трафиком
  • Сохранять и получать данные с максимально доступной скоростью в key-value базах данных

Более подробно см. в презентации

Описание синтаксиса языка и примеры использования интерпретатора

Документация находится здесь

Пример приложения "Список задач":

Todo application

Масштабируемость языка и платформы

Язык Гонец расширяется путем изменения правил синтаксиса в формате YACC, а так же написания собственных высокоэффективных библиотек структур и функций на Го, которые могут быть доступны как объекты метаданных в языке Гонец.

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

Какова производительность интерпретатора?

Производительность выше, чем 1С, в десятки раз, и выше, чем у интерпретатора языка Python при работе с большими данными и сетевыми соединениями. Скорость интерпретации кода соответствует скорости программ на Go и скорости работы библиотек, написанных на Go.

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

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

Пример сравнения производительности цикла без тела, перебор значений от 1 до 1 млн. Участники сравнения:

  • Гонец с регистровой виртуальной машиной
  • 1С:Предприятие 8.3.9.2170 (файловая)

PerfVs1C

Производительность одновременного запуска 1000 серверных и 1000 клиентских подключений, по протоколам TCP и HTTP, на 4-ядерном Core-i5 3570

PerfConnect

Какой статус разработки интерпретатора?

Интерпретатор работает стабильно, протестирован и находится в стадии разработки стандартной библиотеки.