Некоторые особенности разработки ММО-игр на платформе 1С:Предприятие

Публикация № 640996

Разработка - Математика и алгоритмы

Добрый день, уважаемые коллеги! На первый взгляд может показаться, что статья посвящена довольно необычным вещам, но поверьте мне, эти вещи всем нам вполне привычны, просто мы их обычно видим под другим углом зрения. Поговорим о том, что такое MMO. Многие из вас уже знают, что это такое, потому что существует такая игра, как World of Tanks, а те, кто в нее напрямую не играл, безусловно, о ней слышали. Игра World of Tanks является классическим MMO. MMO расшифровывается как Массивная Многопользовательская Online-игра. С технологической точки зрения это – нагрузки, нагрузки и еще раз нагрузки.

Введение в проблему. Общие вопросы архитектуры.

На каких принципах строится работа ММО в целом сейчас?

Когда мы говорим о разработке игры, первым делом на ум приходит графика и звук. Они реализуются, как правило, в специализированных игровых движках, которые:

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

Разнообразие технологий, которыми реализуется игровой клиент, впечатляет:

  • Сейчас наиболее популярным в мире является движок Unity. На нем работает около 60% разработчиков в мире. Его в какой-то степени можно сравнить с 1С по проникновению, но в данном конкретном случае речь идет про всю планету.
  • За ним идет Unreal Engine – очень старый и популярный игровой движок, на котором делаются различные высокотехнологичные проекты. Правда, за счет своей сложности он намного менее распространен.
  • Также в игровой разработке используется не очень распространенный движок CryEngine, который, тем не менее, довольно активно применяют для крупных высокографических проектов.
  • И еще буквально недавно появился дополнительно движок Defold – можно сказать, что это будущая замена Flash для браузеров, для легких казуальных развлечений. Его выпускает самый крупный издатель онлайн-игр на планете, поэтому он крайне удобен именно для того, чтобы делать простые игры – легкие, которые быстро грузятся, быстро играются.
  • Кроме этого существует колоссальное количество частных решений, в основном, реализованных на языке C++.

 

А что у нас творится на сервере? Серверных технологий колоссально много.

  • Исторически каждый берет свой велосипед и начинает его потихоньку собирать – колеса прикрутит, спицы в колеса поставит, раму как-то сварит. Сели и поехали – у кого как получилось.
  • Тем не менее, постепенно выделяются решения и технологии, которые можно назвать типовыми. Первым в списке указан Photon – это решение для организации так называемых «комнатных серверов» онлайн-игр. Эти сервера реализуют исключительно логику сообщений с клиента на клиент. Все, чем они занимаются – это только транспортные сообщения, с помощью которых, в основном, передается положение игрока. Это – сложнейшая работа по предикции (по предсказанию поведения) – люди играют в совершенно разных сетевых условиях, у всех разный интернет.

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

  • Зачинателем этого дела был Parse – продукт от Facebook, предназначенный для хранения произвольных знаний и выдачи их на клиент по первому требованию, по принципу «положили-забрали» – этого обычно хватает. Потом Facebook решил этот сервис закрыть, поскольку им понадобилось свою команду, которая работала над развитием Parse (это почти 100 с лишним человек) перебросить на другой проект, связанный с виртуальной реальностью.
  • Соответственно, когда они закрыли Parse, в свет вышло несколько аналогичных решений. Например, сервис Playfab, который специализируется на играх,
  • Есть также множество облачных решений, которые сейчас в основном специализируются на «интернете вещей», предлагая хранение данных для этих устройств, но также могут использоваться и для игр (собственно говоря, и используются).

Теперь мы переходим к главному вопросу, который возникает, когда мы видим тему доклада – причем тут 1С?

Объектная модель 1С:Предприятия для оперирования ММО игрой в концепции сервиса.

Ответ на это очевиден – объектная модель данных 1С:Предприятия просто гениальна, она позволяет реализовать в себе абсолютно все.

Архитектурно мы делим всю информацию об игровом проекте на две части:

  • Привычные нам справочные данные;
  • И то, что мы называем «Прогресс игрока» – это его текущее состояние.

На слайде я дополнительно выделил, что эти данные поступают на клиент в разные моменты времени:

  • Справочные данные попадают на клиент как при его компиляции, так и в дальнейшем, при патчах, но изменяются они крайне редко. Причем, их изменяет не сам игрок – это могут делать только game-дизайнеры и разработчики игры.
  • А прогресс игрока меняется постоянно в условиях жесткого реального времени. Самые топовые игры сейчас обмениваются с сервером 64 раза в секунду. Позиция одного игрока «бегает» и, соответственно, это все нужно просчитывать.

Концепция игровых сущностей как связки наборов данных по модели 1С:Предприятия 8.

Как мы реализовали архитектуру сущностей?

У нас есть игровая сущность, которую мы представили в качестве набора данных объектной модели 1С:Предприятия. В нашем конкретном случае – это:

  • Справочники;
  • Планы видов характеристик;
  • И регистры сведений.

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

Комбинация всех этих объектов обеспечивает построение гиперкуба, который представляет собой игровую сущность в полном ее описании. Получается, что с помощью объектов 1С:Предприятия мы можем описать абсолютно любую игровую сущность – все, что когда-либо приходило в голову, любой жанр описывается комбинацией этих параметров.

Концепция хранения сведений о прогрессе игрока построена на тех же принципах. Используются привычные нам объекты – это:

  • Справочник;
  • Регистр сведений;
  • И регистр накопления.

С помощью комбинации этих объектов описывается прогресс игрока таким образом, что мы можем получить его значение:

  • И в настоящий момент времени;
  • И то, как он изменялся по оси времени.

Это – совершенно классическая учетная задача, когда нам интересно, что в определенное время делал игрок.

Концепция генерации платформенно-оптимизированного кода для работы с отраслевыми сущностями, используя 1С:Предприятие

Дальше мы применили следующий подход – на основании объектной модели данных 1С:Предприятие, в которой описывается игровой проект с его сущностями, мы генерируем платформенно-оптимизированный код для работы с отраслевыми сущностями уже в игровых движках. Другими словами, мы берем данные и генерируем на их основании:

  • C++ код;
  • C# код;
  • Или JavaScript код.

Используя для этого несколько языкозависимых генераторов для различных движков. Каждый из них достаточно прост:

  • Оранжевым цветом на слайде выделены понятия, которые от одного игрового движка к другому не меняются и реализуются непосредственно в самом языке. Если говорить конкретно про языки семейства Си, то везде получаются одни и те же классы.
  • А серым цветом выделены сущности, которые для каждого игрового движка в отдельности уникальны. Это – интеграционные сущности, которые внесены в игру Game-дизайнером. В нашем случае, это:
    • Менеджер игровых сущностей;
    • Менеджер записей прогресса;
    • И менеджер интерфейса. Под интерфейсом здесь понимается классический пользовательский интерфейс, поскольку игры – очень специфический софт: что увидишь, то и получишь. Нажал – получил, нажал – получил. Все должно быть очень четко и прозрачно, особенно в стратегиях.

Клиент-серверный обмен через HTTP API. GET для публичных сервисов, POST для приватных.

Как все это дальше попадает на клиента? Как вы понимаете, 1С у нас выступает в роли сервера, причем, сервера многоликого. Он является одновременно:

  • Средством разработки;
  • Средством оперирования;
  • И средством бизнес-анализа того, что мы построили.

Сейчас это все у нас реализуется через HTTP API (HTTP-сервисы 1С:Предприятия). Есть:

  • Сервисы публичные (через них можно получать данные о фанатской активности);
  • И сервисы приватные.

Что значит «Приватные»? Это значит, они шифруются, причем шифруются хорошо. Мы используем как сам по себе HTTPS, так и мы дополнительно «солим», «перчим» хэш, потом все это дело передаем и там прикидываем, кто, когда, какую сессию должен был получить, и как эти данные отдать.

Приватные сервисы выдают свои данные:

  • На клиент разработчика;
  • И на клиент игрока.

Конечная цель – чтобы данные из базы получал ровно тот получатель, кому это положено по внутренним правам:

  • На клиент разработчика данные поступают, как правило, все сразу.
  • А на клиент игрока данные поступают маленькими порциями – в основном, только его прогресс. При этом используется другой характер выгрузки.

Если выражаться привычными для 1С-ников терминами, то для разработчика мы делаем целиком выгрузку первоначального образа периферийной информационной базы, а для игрока у нас выдаются только тикеты изменений его прогресса.

«Даешь джейсонизацию всей страны!» Отдельные замечания о сравнении штатной фабрики ЗаписатьJSON() с работой на чистом потоке ЗаписьJSON.

Это подразумевает достаточно высокую нагрузку.

В связи с этим я хотел бы ответить на вопрос: сможет ли 1С-клиент, выступая в роли сервера, обеспечивать миллион тонких клиентов? Скорее, даже «сверхтонких клиентов», поскольку так исторически сложилось, что мы передаем между игровым клиентом и сервером очень небольшие пакеты:

  • Их может быть много;
  • Они могут быть очень частые, либо, наоборот, редкие;
  • Но они маленькие – в них содержится совсем небольшое количество информации, которая нам нужна.

Как мы отвечаем на этот вопрос?

Это возможно, используя JSON. Все наши форматы обмена данными – это JSON, JSON и еще раз JSON. Его реализация в платформе имеет определенные нюансы, о которых мы узнали по опыту – и этим я бы хотел с вами поделиться:

  • Во-первых, мы применяем для скорости комбинацию из платформенного кэширования данных и ручного кэширования данных.
  • В базе данных мы очень редко делаем запросы по ходу – они нужны только для перестроения менеджеров.
  • В основном, при старте сеанса мы читаем справочные данные и, держа их в оперативной памяти, начинаем быстро-быстро отдавать на клиента.
  • Отдаем мы их в JSON и используем при этом потоковый метод записи/чтения JSON.

Коллеги на Инфостарте, насколько я успел заметить, почему-то в основном предпочитают использовать стандартную фабрику ЗаписатьJSON/ПрочитатьJSON. Она удобна, думать не надо, но она очень медленная. Здесь на слайде приведен график в миллисекундах – там формировалось 4000 объектов. Правда, это данные для 8.3.6 – на 8.3.9 уже несколько другая картина, но пропорции, тем не менее, сильно не изменились. Если вы хотите сделать JSON быстрым, чтобы отдать информацию на сайт или еще куда-то, откройте, пожалуйста, поток и кладите в него данные вручную. Метод ЗаписатьJSON нужно использовать, только если у вас очень низкая нагрузка.

Как один запрос семь ответов прокормил или некоторые частности реализации кэширования

Дальше – «Наличность – наше все!» Кэширование, кэширование и еще раз кэширование.

У себя мы применяем следующую модель кэширования:

  • Оптимизация на уровне сервера приложений плюс код самой конфигурации.
  • Использование виртуальной машины 1С и ее особенности. Например, все справочные данные у нас однозначно кэшируются через «Фабрику запросов» (о ней чуть позже) – они поступают в оперативную память и находятся там, пока сеанс работает. Так как в 8.3.9 нам сейчас еще и переиспользование сеансов сделали, то мы сейчас фактически имеем Stateful server. Пока он включен – он может жить вечность.

Все, что отдается на клиент, мы полностью контролируем сами.

  • Прогресс игрока, который основан на регистрах сведений и регистрах накоплений, также кэшируется в оперативную память, и его чтение производится оттуда.
  • Но, как только нам требуется запись (то есть, произошло какое-то изменение прогресса), вызывается специальный менеджер работы с записью – он реализован внутри 1С:Предприятие, как процедура, и занимается тем, что по контексту пытается понять:
    • Каким образом лучше всего установить блокировки;
    • Каким образом лучше всего записать это пакетом в базу;
    • И какими пакетами записывать это в базу.

Для чего нужны такие хитрости?

Изначальная суть проекта и его важнейшее технологическое требование заключалось в его геосетке: сервера приложений размещаются по всей планете, а база от них может находиться совсем в другом месте. Соответственно, мы не можем применять привычный всем Shared memory, и нам приходится общаться с MS SQL по TCP/IP. Поэтому мы должны очень вдумчиво контролировать:

  • Что мы посылаем в базу;
  • Как мы это получаем;
  • И как мы можем получить это как можно быстрее.

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

Фабрики генерации запросов к базе данных как реализация lean manufacturing для переработки информации

Продолжая эту тему, я бы хотел рассказать о нашем «ноу-хау» – мы его называем «Фабрика генерации запросов» к базе данных. Несмотря на то, что сервер у нас может находиться, условно говоря, в Калифорнии, а база данных от него будет находиться за половину планеты (где-нибудь в Северной Ирландии, где у Microsoft есть дата-центр), мы должны получать эти данные очень четко. А так как объектная модель внутри себя – это одно сплошное составное значение, где все переплетено со всем, то в каждый конкретный момент мы должны получить его не просто так, а наиболее оптимальным способом. Для этого мы используем оператор «ВЫРАЗИТЬ». Это – «наше все».

  • Специальный менеджер, который определяет контекст ситуации, при старте анализирует базу, какие работы произведены Game-дизайнером, и отдает все это «Фабрике генерации запросов»
  • Она, в свою очередь, делает оптимизированные запросы под текущее положение дел в конфигурации.
  • Все результаты запросов кэшируются средствами виртуальной машины 1С напрямую (кэширование висит на вызове функции). И в таком состоянии они используются в текущей деятельности.

Это отрабатывает очень быстро, и даже если говорят, что 1С тормозит, у нас есть достаточно жесткое требование, чтобы она не тормозила – и она не тормозит.

Автоматическое проецирование частных реализаций модели данных в клиентские структуры на других языках программирования.

Еще немного о платформенной генерации.

Сейчас у нас все реализовано довольно просто:

  • У нас нет игровой логики;
  • Нет динамического транслирования в другие языки. Когда мы сделаем динамическое транслирование в другие языки, это будет «бомба» и фантастика, мы в этом случае сможем делать полностью нативный код, написав его изначально на 1С. Это – технологически возможно, мы над этим работаем.
  • На настоящий момент мы в генераторе делаем только структуру данных без логики. Сейчас для нас основное – это C#, C++, потому что наиболее употребляемые языки. Когда мы в базе 1С построили «гиперкуб данных игровой сущности», он с помощью генератора в конечном итоге превращается в поле MyEntityProperty – в какой-нибудь из классов, который описывает соответствующую сущность либо ее набор.
  • А соответствующий HTTP API (HTTP-сервис) каждый раз забирает эти данные из базы и заполняет их в соответствующие поля.

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

Отработка серверно исполняемых событий игровой логики

Как мы сейчас решаем проблему с игровой логикой?

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

Как это выглядит в нашем случае?

  • Ввиду того, что внутри API у нас весь код на английском, он и в 1С у нас на английском, чтобы сторонним людям было более-менее привычно, чтобы можно было показать какому-нибудь американцу, и он не испугался кириллического кода. Поэтому мы его пишем на смеси «французского с нижегородским» – в API снаружи он называется по-английски, а внутри он может быть описан целиком по-русски (смотря кто писал).
  • Внутри API у нас есть серверно-исполняемые события, которые определяются на основании объектной модели данных. Эти конкретные участки кода можно сравнить с подписками на события, но это не совсем подписки на события, это не платформенный механизм, это, скорее, заранее спроектированные места, куда можно инжектировать свои расширения. В этих расширениях, соответственно, можно пользоваться:
    • Тем универсальным API, который мы реализовали;
    • И использовать частные методы ситуации.

Что такое частный метод ситуации?

К примеру, у нас есть игровая ситуация – игроку нужно построить домик в деревне. У него есть ферма, и он на ней строит домик.

Когда с клиента отправляется запрос о том, что игрок собирается сделать, сервер начинает проверять, можно ли это сделать и как это сделать. В конечном итоге, он выдает решение, что да, это можно сделать и для этого нужно предпринять такие-то действия, и отправляет это менеджеру записи. И в тот момент, когда он определяет, что с этим можно сделать (это именно игровая ситуация), он где-то должен посмотреть:

  • Хватает ли денег у игрока, к примеру;
  • Доступен ли ему этот домик;
  • Выполнил ли он соответствующие задания в квесте для этого домика;
  • Еще какие-то условия.

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

Наша реализация многоуровневой системы локализации

Итак, про локализацию.

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

В контексте платформы мы рассматриваем языки программирования, как подвид естественных языков. Поэтому, если говорить об объектах платформы, для нас:

  • C++ – это язык;
  • JavaScript – это язык.

При этом они являются диалектами английского языка.

Дальше – с языками игроков. Мы понимаем, что языков игроков – сотни. У нас на планете, по-моему, около 5 тысяч языков, из них тех, которые более-менее актуальны (на которые надо переводить) – около 70-ти. Поэтому мы реализовали полностью свою систему локализации.

  • За это у нас отвечает комбинация объектных данных 1С:Предприятие, которые при старте полностью прогружаются в специальные таблицы, хранящиеся в оперативной памяти в виртуальной машине. Локализация всегда стартует при сеансе.
  • И клиент, когда он первоначально сообщает в запросе, какой же у него язык стоит в локали, получает ответ на соответствующем языке. Он получает свои объекты плюс локализация.
  • У нас система локализации позволяет локализовать любой описанный объект – все это, опять же, вешается на составные типы. Локализуется любая строчка, на любом количестве языков. В локализацию включается даже служебное описание внутри работы команды – потому что бывают мультиязычные команды.
  • И в итоге все это летит на клиента:
    • Либо на разработчика;
    • Либо на игрока.

Game Architect или как мы делаем глобальный SaaS стартап, используя 1С:Предприятие.

В конечном итоге, все, что мы делаем, называется Game Architect. Это – Saas-решение для того, чтобы можно было разрабатывать, оперировать, анализировать и управлять игровыми проектами. Это одновременно и про бизнес, и основа игровой логики. Это не отменяет того, что:

  • Нужно брать Unity;
  • Нужно брать Unreal;
  • Работать с графикой;
  • Работать с камерой;
  • Работать с эффектами;
  • Писать шейдеры;
  • Все остальное.

Но там где про бизнес – там мы потихоньку это делаем.

Как мы вносим свой вклад в выход коллег на рынок экспорта своих работ и услуг

Вот уже 13 лет, как я программист 1С. Всю жизнь я работал над проектами по конфигурациям Бухгалтерия, Торговля, Зарплата. Последние три года я работаю еще и над этим проектом – параллельно Бухгалтерии, Торговле, Зарплате и всему остальному. Работаю не только я, у нас уже потихоньку сформировалась команда с разных уголков планеты.

У нас есть одна проблема – очень многие из нас хотели бы поработать на международном рынке, но мы пишем на 1С. Надо осваивать локализацию на другие языки, не только на английский, но и на остальные. Мы предлагаем использовать в этой нише 1С:Предприятие. Мы не предлагаем покорить весь бухгалтерский учет планеты, но покорение каких-то нишевых отраслей учета – возможно. Мы будем это делать с помощью нашего Game Architect.

***************

Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2016 DEVELOPER. Больше статей можно прочитать здесь.

В 2020 году приглашаем всех принять участие в 7 региональных митапах, а также юбилейной INFOSTART EVENT 2020 в Москве.

Выбрать мероприятие.

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 2176 08.09.17 11:04 Сейчас в теме
Нет динамического транслирования в другие языки. Когда мы сделаем динамическое транслирование в другие языки, это будет «бомба» и фантастика, мы в этом случае сможем делать полностью нативный код, написав его изначально на 1С. Это – технологически возможно, мы над этим работаем.
Усатый уже нанял киллеров....
cheburashka; DMSDeveloper; Dmitri93; DrAku1a; SP2000; +5 Ответить
2. uri1978 128 08.09.17 11:24 Сейчас в теме
— Не беспокойтесь,— сказал Остап,— мой проект гарантирует вашему городу неслыханный расцвет производительных сил. Подумайте, что будет, когда турнир окончится и когда уедут все гости. Жители Москвы, стесненные жилищным кризисом, бросятся в ваш великолепный город. Столица автоматически переходит в Васюки. Сюда приезжает правительство. Васюки переименовываются в Нью-Москву, Москва — в Старые Васюки. Ленинградцы и харьковчане скрежещут зубами, но ничего не могут поделать. Нью-Москва становится элегантнейшим центром Европы, а скоро и всего мира.

— Всего мира!!! — застонали оглушенные васюкинцы.

— Да! А впоследствии и вселенной. Шахматная мысль, превратившая уездный город в столицу земного шара, превратится в прикладную науку и изобретет способы междупланетного сообщения. Из Васюков полетят сигналы на Марс, Юпитер и Нептун. Сообщение с Венерой сделается таким же легким, как переезд из Рыбинска в Ярославль. А там, как знать, может быть, лет через восемь в Васюках состоится первый в истории мироздания междупланетный шахматный конгресс!
DarkUser; vadim1011985; al_zzz; Dmitri93; red80; Orlando Skibraves; SP2000; adhocprog; Quasar; CyberCerber; +10 Ответить
3. starik-2005 2176 08.09.17 11:24 Сейчас в теме
О, а вот и киллеры пожаловали ))) Почем ныне опиум для народа? )))
4. Darklight 22 08.09.17 14:55 Сейчас в теме
Забавно, доклад есть. А самой системы ещё нет.... то есть описывается (и в докладе на конференции было рассказано для целой аудитории) то, что из тех, кто с этим ознакомится, ни разу не видел, не слышал и не имеет такой возможности. Много слов типа "мы сделали", и ни одной строчки о какой-либо практической пользе прочитавшим (услышавшим на конференции). Ни техническим специалистам, ни бизнесу. Ни одного реального примера, названия проекта, это использующего, какой-либо картинки реального применения или описывающей реальный процесс взаимодействия (хотя бы фрагменнтарно). Экое описание "сферической лошади в вакууме". И ни одной отсылки к чему-то, практически реализованному. И что с эти всем делать, совершенно не понятно.
Конечно, издалека даётся "намёками" советы как надо делать - но они совсем не раскрываются - и толку о них немного.
Тема идеи, может интересная, с точки зрения широты применения серверно-сервисной технологии 1С: Предприятие, но ее раскрытие и польза статьи стремится к нулю.
Печально это всё....
DrAku1a; CSiER; LeXXuS_ju; Dem1urg; +4 Ответить
12. DrAku1a 1314 13.09.17 07:42 Сейчас в теме
(4) Я так доклад в 2006-м в Питере на международной научной конференции делал. Про единую базу данных по палеомагнетизму, которую только-только начал делать. При том, не было ничего конкретного продемонстрировано (только кривые гистерезиса и общие сведения, которые там все знали). Доклад прошёл "на ура".
Потом я ушёл из аспирантуры, переехав в другой город, и работы по объединению знаний геологов, химиков и физиков в единую базу так и не закончились (до сих пор так и нет единой базы).
14. Darklight 22 13.09.17 11:37 Сейчас в теме
(12)Бедные геологи, химики и физики, так и остались неудел....
А в своём сообщении я посетовал на отсутствие какой-либо полезности для слушателей/читателей в данной статье (про ваш доклад ничего сказать не могу - не видел). А первичный восторг слушателей может вызвать и "лапша на ушах", если её грамотно преподносить, подкрепляя красивыми картинками, и интриговать хитрыми, но не очень заумными терминами интересной темой , которая в итоге не будет раскрыта даже на маленькую долю. И не будет подкреплена реальными проектами и решениями, которые можно было бы посмотреть после ознакомления с докладом. В общем - идея то тут может и интересная для некоторой не малой аудитории, но она совершенно не раскрыта - от этого чувствуешь себя попросту обманутым....
5. CSiER 29 11.09.17 04:05 Сейчас в теме
То есть в качестве транспорта для ммо используется http (tcp) и при этом сами сообщения в json? В скольких реальных проектах используется данное решение, какой онлайн? Какой используется http-сервер?
6. nomadon 383 11.09.17 10:39 Сейчас в теме
про http сервер поддерживаю вопрос
7. user713084 11.09.17 13:16 Сейчас в теме
В статье все четко написано: хттп гет/пост, джейсон, виртуальная машина 1С, миллион онлайна, в реальном времени... хотел бы на это посмотреть.
Полагаю, прежде, чем создавать инструментарий для разработчиков ммо игр, неплохо бы сначала самому стать разработчиком именно ммо игр. А так-то, конечно, можно что угодно сделать на "просто гениальной" объектной модели 1С. Можно и операционную систему на 1С сделать. Вон, файловая система - это ж чистой воды справочник. А регистр накопления можно использовать для ведения учета свободного места на диске.
9. CSiER 29 11.09.17 17:00 Сейчас в теме
(7)
В статье все четко написано: хттп гет/пост, джейсон, виртуальная машина 1С, миллион онлайна, в реальном времени...

В статье написано "В связи с этим я хотел бы ответить на вопрос: сможет ли 1С-клиент, выступая в роли сервера, обеспечивать миллион тонких клиентов?" и далее "Как мы отвечаем на этот вопрос? Это возможно, используя JSON." - "нечеткий" такой вывод.
Вообще про "четкость" описания в статье: аналогично можно написать "P=NP" - но без деталей это не интересно.

Может быть есть другая статья для технических специалистов - просьба автора поделиться таким материалом. Также не хватает ссылок на реализованные проекты. Пока выглядит как теория забивания гвоздей микроскопом.
8. YanTsys 12 11.09.17 13:46 Сейчас в теме
Где код? Хоть какой-то пример связи Unity и 1с?
10. adhocprog 1179 11.09.17 19:01 Сейчас в теме
Интересная статья ) Продолжение будет?
Как можно попасть в саму игру? )
17. 🅵🅾️🆇 13.11.17 16:50 Сейчас в теме
(10) Приму в свой клан Светлых Документов борющихся против Злых Справочников.
Но придеться долго фармить регистры с помощью проводок, ну или сразу вдонатить.
11. user597343_netcpv22 12.09.17 10:22 Сейчас в теме
Звучит весьма интересно, но хотелось бы увидеть что-либо реально созданное. Думается мне, проблемы у 1с как раз и начнутся при работе с большим количеством маленьких пакетов, да еще и с текстовыми запросами. Возможно, эффективнее создать внешнюю компоненту для пересылки данных в бинарном виде? И системные требования платформы немного заставляют задуматься над эффективностью.
Однако от души желаю вам обломать всех скептиков и реализовать идею)
13. so-quest 132 13.09.17 07:59 Сейчас в теме
и почему именно 1С? как язык -не особо хорош (есть более выразительные язык), как платформа - очень спорный выбор. В чем выгода использования 1С?
15. ifilll 15.09.17 15:13 Сейчас в теме
Порвали мне сознание, сервер 1с в качестве игрового сервера...
даже звездочку вам поставил за дерзкую мысль ))
16. OVladius 32 06.10.17 15:23 Сейчас в теме
18. succub1_5 74 13.11.17 16:58 Сейчас в теме
мы сделали такую "игру" в он-лайн режиме с 2000+ касс приходят чеки, а уходят данные об акциях, фишках и т.п. API на http/JSON сервак за 4 ляма все макс оптимизировано - вешается... в день около 800 000 чеков в самописной конфе.
Дмитрий74Чел; +1 Ответить
19. iliabvf 06.05.18 21:00 Сейчас в теме
Интересно чего-то добились? По моему горькому опыту 1С HTTP запросы слишком медленные для таких задач. Как вы собираетесь решать этот вопрос?
20. uriy007@ya.ru 08.05.19 10:35 Сейчас в теме
Я думал первоапрельская статья, но нет.
Но вообще наркомания излечима.
21. herfis 365 08.05.19 11:08 Сейчас в теме
Слишком много всего, поэтому я не очень уловил суть.
По сути, вы используете 1С исключительно в качестве дизайнера БД игрового сервера, в качестве админки и для мелкого скриптования? Или все же шире, если я что-то упустил?
Собственно http-сервисы и доступ из них к БД игрового сервера на 1С реализованы или нет?
Оставьте свое сообщение

См. также

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    32321    0    ids79    40    

Применение математических достижений в решении сложных задач бизнеса

Математика и алгоритмы Бесплатно (free)

Как правило, самые сложные задачи решаются с точки зрения математики очень легко. Но чтобы найти правильное решение, важно понять бизнес-цель, которую достигает эта задача. О практическом применении математических достижений для эффективного решения сложных задач бизнеса на конференции Infostart Event 2019 Inception рассказал Дмитрий Мишнов.

25.05.2020    2758    0    Mishnov    17    

Улучшение пооперационного планирования в 1С:ERP 2.4 внешними средствами

Математика и алгоритмы Производительность и оптимизация (HighLoad) Бесплатно (free)

Задача построения оптимального производственного расписания требует сравнения тысяч и десятков тысяч вариантов. Выполнять такие вычисления средствами платформы 1С Предприятие нецелесообразно. Как реализовать пооперационное планирование с использованием генетических алгоритмов и параллельных вычислений в докладе на конференции Infostart Event 2019 Inception рассказал генеральный директор компании «ИНТЕХ» Сергей Сафаров.

02.03.2020    4369    0    ildarovich    7    

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

Математика и алгоритмы Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Предлагается ознакомиться с редким способом графического представления иерархических данных. Приводится алгоритм формирования и пример реализации.

18.02.2020    4176    0    randomus    18    

Как работает серверный вызов в 1С Промо

Математика и алгоритмы v8::УФ Бесплатно (free)

Клиент-серверная архитектура заложена в платформе изначально — со времен «1С:Предприятие 8.0». Однако при разработке на 8.0 и 8.1 о разделении кода на клиентскую и серверную часть можно было не заботиться, поскольку на клиенте (на толстом клиенте) был доступен тот же функционал, что и на сервере. Всё изменилось с выходом платформы «1С:Предприятие 8.2», когда появился тонкий клиент. Теперь на клиенте доступен один функционал, на сервере — другой. Клиент и сервер «общаются» между собой с помощью серверного вызова. Конечно, это усложнило процесс разработки, но с другой стороны – можно создавать более оптимальные (быстрые) решения, поскольку все сложные задачи выполняются на сервере.

18.11.2017    53481    0    pahich    82    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    24296    0    YPermitin    24    

"Хочу универсально!" [Часть 1]

Математика и алгоритмы Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

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

02.09.2019    9215    0    SeiOkami    35    

Иерархия без "В ИЕРАРХИИ"

Математика и алгоритмы v8 Бесплатно (free)

Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи "Уровни, глубина, прародители, циклы и аналоги запросом" [https://infostart.ru/public/160707/].

22.08.2019    11283    0    ildarovich    19    

Будни автоматизации или "мне нужна программка для 3D упаковки" Промо

Практика программирования Математика и алгоритмы Оптовая торговля Оптовая торговля v8 1cv8.cf УУ Бесплатно (free)

Автоматизация отечественных предприятий, которой приходиться заниматься, это нужная и высокооплачиваемая, но довольно нервная работа. Выручает юмор. Например, при общении с требовательным клиентом можно вспомнить анекдот: "Держась руками за стену, на ногах еле стоит мужик. К нему пристает ребенок: "Ну, папа, пожалуйста, сделай мне кораблик!", папа отвечает: "Ага! - Сейчас все брошу и пойду делать тебе кораблик!". Про один такой сделанный для клиента "кораблик" и хочется рассказать. Надеюсь, совместное погружение в теплое ламповое (то есть клиентоориентированное) программирование доставит Вам положительные эмоции, да и задача попалась интересная. Поплыли?

24.03.2014    44373    0    ildarovich    116    

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка v8 v8::УФ 1cv8.cf Бесплатно (free)

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    13433    0    ids79    8    

Обработчики событий при записи объектов. Зачем и что за чем?

Математика и алгоритмы v8 Бесплатно (free)

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    40099    4    AlbinaAAA    27    

Как проводятся документы в типовых конфигурациях от 1С

Математика и алгоритмы Практика программирования Разработка v8::ОУ ERP2 УТ11 Россия УУ Бесплатно (free)

В свое время, когда только начинал шаги в 1С и изучал, как проводятся документы в конфигурациях на платформе 1С по книге "Разработка управляемого интерфейса" (Хрусталева Е.Ю.), и там были представлены примеры совсем далекие от того, как сейчас проводятся документы в современных конфигурациях от 1С.

24.07.2019    25617    0    skv_79    35    

Метод Кларка-Райта. Оптимальное планирование маршрутов грузоперевозок Промо

Математика и алгоритмы Бесплатно (free)

Одной из наиболее важных задач каждого предприятия, осуществляющего доставку грузов в крупных населенных пунктах, является сокращение издержек. Возможное решение данной проблемы заключается в сокращении пробега автотранспорта и, как следствие, уменьшении расхода ГСМ. Появляются такие вопросы ... - СКОЛЬКО НУЖНО МАШИН ДЛЯ РАЗВОЗКИ КОНКРЕТНОГО ОБЪЕМА ГРУЗА ПО АДРЕСАМ ДОСТАВКИ ? - КАК РАЗБИТЬ ТОЧКИ ДОСТАВКИ НА ОПТИМАЛЬНЫЕ ПО ПРОБЕГУ И ЗАГРУЗКЕ МАШИН МАРШРУТЫ ? ... В этой статье Вы найдете один из многих способов получить ответ на эти вопросы.

10.02.2016    58716    0    mi1man    20    

Управление качеством кода

Математика и алгоритмы Рефакторинг и качество кода v8 Бесплатно (free)

О SonarQube, АПК, EDT. Какие преимущества дает их использование. Для каких команд подходит.

22.07.2019    15365    0    Stepa86    33    

Что делает "В ИЕРАРХИИ" в запросе?

Математика и алгоритмы v8 Бесплатно (free)

Описание действий платформы 1С при использовании конструкции "В ИЕРАРХИИ" в запросах.

16.07.2019    22282    0    YPermitin    34    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    45778    0    ids79    20    

Приемы обработки больших данных в 1С Промо

Универсальные обработки Математика и алгоритмы Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Рассказ об эффективных приемах организации обработок больших объемов данных на платформе 1С

07.08.2015    65695    0    tormozit    27    

Реализуем Стек, Очередь и Приоритетную очередь в 1С

Практика программирования Математика и алгоритмы v8 1cv8.cf Россия Бесплатно (free)

В статье рассматриваются способы реализации таких абстрактных структур данных, как стек, очередь и приоритетная очередь, используя готовые типы данных 1С. Выявляются "узкие" места, сложные моменты в реализации и сравнивается скорость работы.

24.06.2019    13348    0    RonX01    65    

Почему вообще работает мой запрос? или Ещё раз о планах запросов

Математика и алгоритмы Практика программирования Разработка v8::Запросы Бесплатно (free)

Другие статьи на эту тему объясняют, что такое план выполнения запроса, но не рассказывают о том, как его получить. Эта заметка призвана заполнить этот пробел. Её цель - популяризировать общедоступные инструменты получения плана запроса среди разработчиков, которые ещё не начали их использовать.

10.06.2019    9024    0    DataReducer    12    

Вычисление 200 тысяч знаков числа pi

Математика и алгоритмы v8 Россия Бесплатно (free)

В статье рассматриваются возможности платформы выполнять сверхточные вычисления без использования сложных алгоритмов и внешних компонент на примере вычисления числа pi.

28.05.2019    7274    0    Oleg_nsk    96    

XDTO - это просто Промо

Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

С появлением платформы 8.1 фирма “1С” представила механизм, носящий интригующее название XML Data Transfer Objects или, если коротко - XDTO. По традиции, документирование механизма составлял тот, кто хорошо разбирался в вопросе, а стало быть опустил “и так понятные” с его точки зрения моменты. Целью данной статьи (или цикла статей, как получится) стало желание поделиться накопленным опытом. Мне кажется, многие неочевидные вещи в механизме XDTO необходимо осветить получше.

24.12.2012    286183    0    Evil Beaver    173    

Регистры накопления. Виртуальные таблицы. Часть №1: Обороты

Практика программирования Математика и алгоритмы Разработка v8 1cv8.cf Бесплатно (free)

Описание работы платформы 1С:Предприятие 8.2 с виртуальной таблицей "Обороты" регистров накопления.

20.05.2019    24301    0    YPermitin    7    

Выдержки из книги Чистый код

Математика и алгоритмы Бесплатно (free)

Недавно я прочитал книгу "Чистый код" Роберта Мартина (Robert Cecil Martin). В ней описываются принципы организации и форматирование исходного кода программы так, чтобы в дальнейшем было легко поддерживать такой код. Эта книга является библией для многих программистов, но вот в среде программистов 1С, к сожалению, не очень распространено чтение подобной фундаментальной литературы. Книга более 400 страниц и так много порой лениво читать, да и времени всегда не хватает. По этому я решил выделить в виде цитирования по разделам самые важные моменты. А также снабдил текст своими примерами кода.

16.05.2019    9674    0    FreeArcher    105    

Что такое алгоритм?

Математика и алгоритмы Бесплатно (free)

Как ответить на этот вопрос и не попасть пальцем в небо.

25.02.2019    7420    0    mkalimulin    274    

Самоучитель языка запросов 1С. Промо

Практика программирования Решение задач на 1С:Специалист Математика и алгоритмы v8 v8::Запросы Бесплатно (free)

Сервис для изучения запросов 1С: "Консоль изучения запросов 1С:Предприятие 8". Теперь и с конструктором запросов!

07.05.2013    108263    0    bpc222    327    

Криптовалюты, а также иные взгляды на природу денег в терминах 1С

Математика и алгоритмы Бесплатно (free)

Это отчасти полемическая статья. Я задумал написать ее как ответ на другую хорошую статью о криптовалютах. Хотелось поспорить с некоторыми утверждениями автора, а ещё больше с некоторыми комментариями. А чтобы текст был более понятным для местной аудитории, я решил использовать, где только возможно, терминологию и практику 1С.

28.01.2019    5980    0    mkalimulin    89    

Как писать код? Технологии древних цивилизаций, или все новое - это хорошо забытое старое

Математика и алгоритмы Бесплатно (free)

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

23.01.2019    11319    0    starik-2005    43    

Роберт Мартин: "Будущее программирования" / Robert Martin: "The Future of Programming"

Математика и алгоритмы Блоги Бесплатно (free)

Перевод-транскрибация выступления.

14.01.2019    15092    0    Vladimir Litvinenko    38    

Предметно-ориентированное проектирование (3D) в 1С. Виртуальная машина. Промо

Математика и алгоритмы Бесплатно (free)

Проектирование программного обеспечения - это постоянная битва за простоту.

03.06.2014    39769    0    Evgen.Ponomarenko    88    

Многоязычное программирование: создание систем с использованием нескольких языков

Математика и алгоритмы Россия Бесплатно (free)

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

09.01.2019    10790    0    kalyaka    36    

Размышления о хороших практиках, навеянные одной статьей

Математика и алгоритмы Бесплатно (free)

Прочитал статью "Ректальное программирование: основы для практикующих 1С-программистов". Статья очень хорошая и своевременная. Но у меня возникло некоторое сомнение. А достаточно ли автор любит и понимает предмет, о котором пишет? Насколько богат его опыт ректального программирования и занимался ли он им вообще? Как человек обладающий многолетним опытом РП, я решил представить вам необходимые дополнения к статье.

21.12.2018    6583    0    mkalimulin    61    

Решение транспортной задачи запросом Промо

Математика и алгоритмы v8 Бесплатно (free)

Списание по двум последовательностям партий запросом (без программной обработки)

1 стартмани

30.04.2014    34628    10    bforce    22    

Ректальное программирование: основы для практикующих 1С-программистов

Математика и алгоритмы Бесплатно (free)

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

19.12.2018    41675    0    for_sale    349    

Многопоточное восстановление последовательностей

Производительность и оптимизация (HighLoad) Практика программирования Математика и алгоритмы Универсальные функции v8 Бесплатно (free)

Универсальный алгоритм многопоточного фонового восстановления любой последовательности.

05.12.2018    12517    0    _ASZ_    33    

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C

Математика и алгоритмы Практика программирования v8 Россия Бесплатно (free)

У многих начинающих 1С программистов часто возникают вопросы про клиент-серверное взаимодействие в 1С и чтобы разобраться в непростых механизмах платформы, необходимо понять, что же такое контекст, для чего предназначены директивы компиляции, что представляют собой контекстные/внеконтекстные вызовы и как наиболее оптимально описывать прикладные задачи в модулях управляемых форм.

23.08.2018    36363    0    Rain88    46    

Парсер запросов 1С. Часть 1: Введение, разбор математических выражений Промо

Математика и алгоритмы v8 Бесплатно (free)

Рано или поздно становится скучно решать типичные задачи, для которых придумана 1С. Голова пухнет от бухгалтерских терминов и очередных "хотелок" пользователей. Именно в такие моменты хочется гордо поднять голову, воскликнуть "Но я же программист!" и заняться чем-то интересным. В цикле статей я постараюсь доступно описать, как устроены парсеры в целом и на примере парсера языка запросов 1С. Требования к навыкам читающего: основы языка 1С, основы алгоритмизации.

1 стартмани

04.12.2013    30269    5    juntatalor    49    

Учебный курс. Повышение качества разработки. Ошибки программы

Практика программирования Математика и алгоритмы Рефакторинг и качество кода Бесплатно (free)

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Лекции № 3,4,5. Эти лекции посвящены ошибкам программ, их классификации и способам исправления

10.07.2018    19099    0    Артано    92    

Що там у них в Java

Математика и алгоритмы Бесплатно (free)

Развенчание мифа о тяжёлой жизни не 1С программистов на примере создания веб сервиса редактирования таблички с использованием framework spring в Java.

24.05.2018    10929    0    van_za    62    

Учебный курс. Повышение качества разработки. Вводная лекция, часть 2

Практика программирования Математика и алгоритмы Бесплатно (free)

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Лекция №2. Эта лекция посвящена абстракциям, их свойствами и практическому применению в рамках классических парадигм программирования.

24.05.2018    12628    0    Артано    36    

Сервис для изучения методов платформы 1С:Предприятие 8. Бесплатно! Промо

Практика программирования Решение задач на 1С:Специалист Математика и алгоритмы v8 Бесплатно (free)

Бесплатный ON-Line сервис изучения методов платформы 1С:Предприятие 8. Подготовка к аттестации 1С:Специалист on-line! Тестовые задания по различным видам учета! Подсказки для оптимального решения!

27.06.2013    49321    0    bpc222    51    

Учебный курс. Повышение качества разработки. Вводная лекция

Математика и алгоритмы Бесплатно (free)

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста.

10.05.2018    17544    0    Артано    51    

"Взлом" теста "1С:Профессионал" методом машинного обучения

Практика программирования Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

Нейронные сети – не единственная модель, реализующая принципы машинного обучения. Есть еще байесовская модель, которая математически строже и определеннее, поскольку построена на надежном фундаменте теории вероятностей. Применению байесовского вывода к решению интересной теоретической задачи и посвящена данная статья. Слово "взлом" в заголовке использовано для привлечения внимания. Речь идет исключительно о математическом методе, показанном на примере знакомой всем задачи. 

12.03.2018    18671    0    ildarovich    19    

Правила программирования и автоматизации

Математика и алгоритмы Бесплатно (free)

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

21.02.2018    17999    0    Dzenn    127    

Внутреннее качество разработки конфигураций 1С Промо

Практика программирования Математика и алгоритмы Бесплатно (free)

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

21.06.2013    37411    0    ig1082    50    

Творим Историю вместе

Математика и алгоритмы Бесплатно (free)

Расширяем границы, выходим за рамки, ставим новые цели - все, как вы любите.

17.01.2018    17169    0    1c-intelligence    108    

Использование git при разработке на 1С

Математика и алгоритмы Россия Бесплатно (free)

Продолжение цикла статей по основам CI. Данная статья расскажет о реализации возможности хранения кода продукта в системе управления версиями git и познакомит со специализированным инструментарием, предназначенным для решения этой и других смежных задач.

27.12.2017    31550    0    real_MaxA    57    

Об уровне абстракции и сложности системы

Математика и алгоритмы Бесплатно (free)

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

21.12.2017    12068    0    m-rv    15    

v8: Концепция минимального изменения конфигурации для легкого обновления Промо

Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

"Лучше день потерять потом за пять минут долететь" ((с) "Крылья, ноги и хвосты") или как сделать так чтобы обновление конфигурации проходило с минимальными трудозатратами.

28.01.2013    37596    0    MarSeN    57    

Двоичное дерево, двоичное дерево поиска, двоичная куча, B-дерево

Математика и алгоритмы Бесплатно (free)

В большинстве реляционных СУБД в качестве структуры данных для индексов (та или иная их реализация) используются именно деревья. И не просто деревья, а сбалансированные деревья поиска. В этой статье как раз о них.

24.11.2017    15416    0    Irwin    4    

Введение в CI для 1С

Математика и алгоритмы v8 Россия Бесплатно (free)

Значение роли тестирования при разработке ПО трудно переоценить, его применение позволяет повысить надёжность продукта и улучшить качество кода. Для продуктов для платформы 1С:Предприятие существует ряд инструментов для проведения тестирования, в том числе и от самого вендора. Но, также появились открытые инструменты, реализующие мировые практики проведения тестирования (проверки продукта), поддерживаемые сообществом. В этой статье описаны базовые принципы, которые необходимо понимать перед началом применения этих инструментов.

21.11.2017    22999    0    real_MaxA    22