Новокшанов Евгений

Backend-разработчик

Backend разработчик с опытом разработки микросервисов. Специализируюсь на разработке на таких языках как Golang, Python, C++. Позитивный, открытый, исполнительный, умею работать в команде. Есть желание развивать свои hard и soft skills. Готов справляться с любыми препятствиями для решения поставленных задач.


Разработка облачно-ориентированного языкового сервера для Go

SourceCraft Architecture

Стек проекта

  • Golang: go/packages, go/parser, go/types
  • LSP (Language Server Protocol)
  • go-git
  • VS Code Extension API

Проблема

Традиционные языковые серверы (gopls) не адаптированы для облачных IDE. Основные ограничения:

  • - Монолитная архитектура: холодный старт занимает десятки секунд
  • - Ориентация на локальное состояние
  • - Неэффективная работа с историей версий кода

Решение

Этап 1: Семантический анализ
  • Использование go/packages для загрузки проекта
  • Построение AST через go/parser
  • Анализ типов с помощью go/types
Этап 2: Поисковый индекс
  • Трансформация модели в оптимизированный индекс (KSU)
  • Хранение определений и использований
  • Быстрый поиск по символам

Архитектура

Архитектура сервера
  • 1. Клиент (VS Code) → LSP запросы
  • 2. Языковой сервер → Обработка запросов
  • 3. Индексер → Построение KSU индекса
  • 4. Git-интеграция → Индексация истории коммитов

Результаты

  • ✓ Реализовано ядро анализатора Go-кода
  • ✓ Разработан прототип LSP-сервера
  • ✓ Поддержка навигации в крупных проектах (Kubernetes)
  • ✓ Индексация по Git-коммитам
  • ✓ ~3000 строк кода на Go