Как мы делали плагины расчётов и визуализаций для геологов, потоковый экспорт и импорт проектов и переводили процессы на WebSocket
Заказчик это компания из нефтегазовой отрасли. Её геологи и аналитики при разработке месторождений раньше пользовались несколькими разными сервисами и приложениями: в одном считали, в другом строили графики, в третьем смотрели данные на карте.
Платформа собрала эти функции в одном веб-приложении. Расчёты и визуализации в ней устроены как модули-плагины, и через плагины в платформу можно добавлять новые инструменты.
Проект большой: в команде заказчика работали бэкенд-разработчик, семь fullstack-разработчиков, архитектор, четыре тестировщика, четыре аналитика, три дизайнера и руководитель продукта. Разработчик Фортех подключился в ноябре 2024 года, перейдя с другого проекта того же заказчика. В конце декабря договор закончился, и проект ушёл на переторжку. Заказчик был доволен работой и в конце января 2025 года позвал разработчика обратно без собеседования.
Платформа построена на плагинах, и каждый новый инструмент должен встраиваться в общую архитектуру, а не жить отдельно.
Проекты пользователей объёмные: в них много данных из разных коллекций, поэтому экспорт и импорт нельзя делать одной загрузкой в память.
Над платформой одновременно работает большая команда, а типы данных GraphQL общие для всех.
Данные для расчётов. Разработчик Фортех писал сервисы, которые фильтруют и обрабатывают данные для последующих вычислений, графиков и отображения на карте. Данные хранятся в MongoDB.
Новые плагины. Для новых плагинов разработчик делал интерфейсные компоненты на Ant Design и сервисы обработки данных, а в сервисах реализовывал алгоритмы вычислений для геологических исследований и подготовки документации пользователям. Также дорабатывал существующие инструменты.
Типы данных. Обновил пакеты с типами данных GraphQL на TypeScript, которыми пользуется вся команда.
Экспорт и импорт проектов. Экспорт собирает данные проекта из коллекций и записывает их в архив с потоковой обработкой. Импорт из архива тоже потоковый. Отдельно сделали сервис копирования пользовательских проектов и экспорт данных из других сервисов.
WebSocket. Процессы платформы перевели на WebSocket.
Фронтенд и база. Разработчик оптимизировал производительность фронтенда, делал микрофронтенд-компоненты и писал миграции базы данных.
Метрики. Разработал и настроил метрики, чтобы следить за процессами платформы.
Геологи и аналитики получили новые плагины для расчётов и визуализаций прямо в платформе, без переключения между сервисами.
Проекты можно выгрузить в архив, загрузить обратно и скопировать, а экспорт и импорт работают потоково и справляются с объёмными проектами. Процессы платформы переведены на WebSocket, фронтенд работает быстрее, за процессами следят метрики.
Заказчик был доволен работой и после переторжки позвал разработчика Фортех обратно без собеседования.
Как собрать несколько аналитических инструментов в одну платформу?
Сделать платформу на плагинах: у каждого инструмента свой модуль, а данные, карта и интерфейс общие. Так новые расчёты добавляются без переделки всего приложения.
Как экспортировать большие проекты, не перегружая сервер?
Обрабатывать данные потоком: читать коллекции частями и сразу писать в архив. Здесь так сделали и экспорт, и импорт проектов.
Может ли разработчик Фортех влиться в большую команду заказчика?
Да. Здесь в команде было больше двадцати человек, и разработчик Фортех работал в ней наравне со всеми: писал бэкенд, плагины и фронтенд.
Что будет, если у заказчика закончится договор посреди проекта?
В этом проекте договор закончился из-за переторжки, а когда её провели, заказчик сам позвал разработчика обратно, без нового собеседования.

Как фронтенд-разработчик Фортех сделал умное автозаполнение по справочнику и девять конфигурируемых форм для компоновки буровой колонны

Как мы перевели авторизацию на Keycloak, подготовили продукт к поставке без внешних интеграций и добавили новые виды ремонтов и отчётов

Единая система для HR, найма, экономики и командной работы агентства вместо разрозненных таблиц и инструментов

Как мы подняли сайт стартапа, который не собирался после прошлой команды, починили вход и анкету, сверстали новые экраны и мини-приложение в Telegram