Skip to content

Latest commit

 

History

History
154 lines (107 loc) · 5.83 KB

File metadata and controls

154 lines (107 loc) · 5.83 KB

Руководство по разработке Syntaxia

Запуск в режиме разработки

Быстрый старт

./dev.ps1

Скрипт автоматически:

  • Проверяет наличие всех зависимостей (Go, Node.js, Wails)
  • Запускает Wails в режиме разработки
  • Фильтрует избыточный отладочный вывод

Требования

  • Go: 1.21 или выше
  • Node.js: 18 или выше
  • Wails CLI: v2.10.1 или выше

Порты

  • Frontend dev server: 3000 (автоматически определяется Wails)
  • Backend: 34115 (по умолчанию)

Известные особенности

Избыточный вывод Wails CLI

Проблема: При запуске wails dev генератор TypeScript биндингов выводит большое количество отладочной информации:

KnownStructs: [AIProvider, AIProviderConfig, AIProviderType, ...]
Not found: time.Time
KnownStructs: [AIProvider, AIProviderConfig, AIProviderType, ...]
Not found: time.Time
...

Причина: Генератор биндингов обрабатывает ~50 структур из пакета backend/domain/ и выводит отладочную информацию для каждой структуры. Сообщение "Not found: time.Time" появляется потому, что time.Time - это встроенный тип Go, который не требует генерации биндингов.

Влияние: Это нормальное поведение Wails v2.10.1 и не влияет на функциональность приложения. Биндинги генерируются корректно, приложение работает без проблем.

Решение: Скрипт dev.ps1 автоматически фильтрует эти сообщения для улучшения читаемости вывода. Важные сообщения (ошибки компиляции, предупреждения, статус) остаются видимыми.

Просмотр полного вывода

Если вам нужно увидеть весь вывод для отладки:

./dev.ps1 -Verbose

Обновление Wails

Текущая версия

Проект использует Wails v2.10.1 (указано в backend/wails.json).

Рекомендуемая версия

Wails v2.11.0+ может содержать улучшения в генераторе биндингов и уменьшение избыточного вывода.

Команда обновления

go install github.com/wailsapp/wails/v2/cmd/wails@latest

После обновления проверьте совместимость:

cd backend
wails doctor

Потенциальные улучшения

  • Уменьшение отладочного вывода генератора биндингов
  • Улучшенная производительность hot reload
  • Исправления багов и улучшения стабильности

Отладка

Включение полного вывода

./dev.ps1 -Verbose

Логи

  • Wails логи: Выводятся в консоль
  • Frontend логи: Доступны в DevTools браузера
  • Backend логи: Выводятся в консоль с префиксом

Типичные проблемы

Проблема: Wails не найден

❌ Wails не установлен

Решение: Установите Wails CLI:

go install github.com/wailsapp/wails/v2/cmd/wails@latest

Проблема: Ошибки компиляции frontend Решение: Переустановите зависимости:

cd frontend
npm install

Проблема: Ошибки компиляции backend Решение: Обновите Go модули:

cd backend
go mod tidy

Структура проекта

Backend (backend/)

  • domain/ - Доменные модели и бизнес-логика
    • ~50 структур, используемых для генерации TypeScript биндингов
    • Использует time.Time для работы с датами
  • application/ - Сервисы приложения
  • infrastructure/ - Реализации репозиториев и внешних сервисов
  • cmd/ - Точки входа приложения
  • wails.json - Конфигурация Wails

Frontend (frontend/)

  • src/features/ - Модули функциональности
  • src/components/ - Переиспользуемые компоненты
  • src/utils/ - Утилиты
  • wailsjs/ - Автоматически генерируемые TypeScript биндинги

Процесс генерации биндингов

  1. Wails сканирует Go структуры в backend/domain/
  2. Генерирует TypeScript интерфейсы в frontend/wailsjs/go/models.ts
  3. Создает API клиенты для вызова Go методов из TypeScript
  4. Выводит отладочную информацию о процессе (фильтруется в dev.ps1)

Рекомендации

  • Используйте ./dev.ps1 для запуска в режиме разработки
  • Добавляйте -Verbose только при необходимости отладки
  • Регулярно обновляйте Wails для получения улучшений
  • Проверяйте wails doctor после обновления зависимостей