Фреймворк

С 2017 года я разрабатываю свой фреймворк — систему на C++, ReactJS, MySQL и к этому всему генератор кода, написанный на C++. Его отличительными особенностями являются:

  • высокая производительность
  • многопоточность
  • способность обрабатывать большие объемы данных (десятки миллионов записей и больше)
  • самые развитые приемы построения интерфейса пользователя, включая, но не ограничиваясь описанными ниже
  • полную поддержку клавиатуры
  • отсутствие постраничной навигации (прокрутка как в обычных приложениях вроде 1С)
  • мощные фильтры
  • настраиваемая сортировка
  • богатая панель инструментов
  • всплывающие сообщения
  • система быстрых клавиш для всех нужных действий
  • быстрые переходы в другие режимы
  • полное сохранение состояния и возврат к нему
  • вызов полноценных режимов при выборе из справочников
  • обычное и быстрое главное меню
  • поддержка иерархических справочников
  • поддержка отношений многие-ко-многим
  • поддержка сортировки записей как мышью, так и клавиатурой
  • групповые операции
  • операции клонирования
  • ведения журнала с полной информацией обо всех действиях и повлекших изменениях
  • пользователи и их права
  • мощная система конфигурации для неограниченного количества параметров и серверов. Система проверок и умолчаний. Двухуровневая группировка, фильтры и пр.
  • версионность баз данных. Возможность автоматически поднять версию базы из любой более ранней в любую более позднюю, даже если между ними годы и множество промежуточных версий.
  • многорежимные экраны (например такой экран из двух независимых режимов, позволяет находить/создавать/манипулировать записями в справочнике и тут же вставлять их в созданый список, который, в свою очередь, можно тут же сортировать вручную, а также изменять как угодно)
  • отрисовка разнообразных графиков
  • собственный построитель сложных SQL-запросов (построение иерархических запросов, строящихся на базе других запросов)
  • генератор кода — по описанию режима производит 20 файлов на трех языках, после чего режим моментально готов к использованию
  • оптимизация SQL-запросов для поддержки больших объемов данных
  • даже такие редкие возможности, как, например, возможность задавать id записи самостоятельно, или автоматически найти «дыру» в нумерации id и назначить такой id (для таблиц, где id играет дополнительную роль или там, где очень ограничен их набор)
  • Собственные высокопроизводительные двоичные протоколы обмена между серверами распределенной системы. Миллион записей синхронизации в сутки при долях процента использования одного процессора (просто незаметная нагрузка).
  • На базе этого фреймворка написано множество сервисов, работающих под большой нагрузкой годами. Методы, подходы, решения и код проверены временем.