HomeProjectsWorkflowCareerWhy Remote JobDownloadsAbout Us

Проекты

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

Поскольку NDA (non-disclosure agreement) нам не позволяет слишком подробно разглашать детали проектов, мы можем описать их только в общих чертах, чтобы у Вас было представление о том, над чем Вам предстоит работать, в том случае если вопрос о нашем сотрудничестве будет решен положительно.

На данных момент мы ведём три проекта:


Система мониторинга посетителей web-сайта в реальном времени, а так же их поддержки посредством чата

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

Серверная часть (около 3500 Java классов) состоит из различных подсистем, общающихся по TCP/IP и физически размещенных на разных серверах, работающих под управлением операционной системы Linux. Сами сервера установлены в разных датацентрах, которые разнесены географически. Все подсистемы многократно дублируются, а их состояние реплицируется. Мониторинг всех подсистем ведется круглосуточно, телеметрия ведется по сотням параметров. Система сохраняет свою работоспособность при выходе из строя большей части серверов.

Клиентская часть (около 2500 C++ классов) представляет собой десктопное приложение, с версиями под Windows, Mac-OS и Linux. Планируется выпуск немного урезанных по функциональности версий для мобильных платформ, прежде всего для устройств на iOS и Android.


Система сбора и обработки статистики посещений web-сайта

Главное назначение проекта – это оценка качества рекламных компаний и SEO-мероприятий на основе анализа трафика и поведения посетителей web-сайта. Проект является дополнением к описанному выше мониторингу посетителей web-сайта в реальном времени и представляет собой десктопное приложение с версиями под Windows, Mac-OS и Linux. Версии под другие платформы пока не планируются. Размер проекта – порядка 1000 C++ классов.

Внутренне проект представляет "классику жанра" объектно-ориентированного программирования для бизнес-приложений – Model-View-Controller в сочетании с Layered Architecture:

На самом низком уровне находится база данных. Для увеличения быстродействия активно используются триггеры базы данных.

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

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

И наконец, последним идёт уровень представлений, задача которого состоит в визуализации отчётов и в их экспорте в другие форматы. Таким образом, одна и та же объектная модель отчёта может быть по-разному визуализирована разными представлениями, а так же экспортирована в другие форматы, такие как XML, PDF, CSV и т.п. Правильная и качественная визуализация отчётов в таком непростом деле как анализ статистической информации очень важна. Много полезных корреляций может быть выявлено только человеком посредством визуального восприятия. Поэтому наряду с традиционными 2D графиками мы планируем прибегнуть к визуализации отчётов в 3D, там где это окажется полезным.


Система GPS-трекинга объектов

Проект находится на стадии стартапа и выходит на стадию исследования предметной области и прототипирования. Еще нет спецификации, но зато есть проектные риски. Навскидку, можно сказать, что это будет распределенная система повышенной надёжности типа клиент-сервер, ориентировочно 2000...5000 Java классов на серверной стороне и столько же C++/Java классов на клиентской.

Клиентское приложение будет построено как для десктопов, так и для мобильных устройств. Будут поддерживаться, как минимум, следующие платформы: Windows, Mac-OS, Linux, Windows CE, iOS, Android, Symbian.

Архитектора системы будет построена в лучших традициях объектно-ориентированного проектирования (иначе система просто не заработает) с использованием большинства техник agile software development-а.