Skip to content

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 14 Feb 06:57
· 44 commits to main since this release

v1.2.0 - Укрепление надежности и аудит кода

Конвертер валют на основе официальных курсов ЦБ РФ
Go реализация проекта CurRate с современной архитектурой, XML API и desktop UI


Что нового в v1.2.0

Укрепление надежности

  • context.Context через весь call chain - Converter.Convert -> RateProvider.FetchRates -> fetchXML теперь принимают и пробрасывают контекст для отменяемости операций
  • Ограничение XML ответа до 4 MB - защита от аномально больших ответов через io.LimitReader в ParseXML
  • Nil-проверки и defensive guards - безопасная инициализация App и RUB-провайдера
  • Улучшенная диагностика ошибок - информативные сообщения для XML size limit и Telegram API

Рефакторинг

  • Консолидация ErrUnsupportedCurrency - единый sentinel error вместо дублирования
  • Удаление мёртвого кода - удалены неиспользуемые функции календаря и дубликаты тестов
  • Корректная семантика ошибок 4xx - fetchXML теперь корректно обрабатывает клиентские ошибки
  • Race detector в CI - добавлен флаг -race для Ubuntu в CI pipeline

Аудит документации

  • Полная актуализация документации - обновлены TESTING, ARCHITECTURE, SUMMARY, README, ROADMAP, CONTRIBUTING, PERFORMANCE, CHANGELOG
  • Тестовое покрытие - удалены дублирующие тесты, исправлены проверки ошибок через errors.Is

Технические детали

Архитектурные изменения

Изменение Описание
context.Context Пробрасывается через Converter.Convert -> RateProvider.FetchRates -> fetchXML
ParseXML Использует io.LimitReader(r, 4*1024*1024) для защиты от больших ответов
ErrUnsupportedCurrency Консолидирован в единый sentinel в models/currency.go
Ошибки 4xx Корректная семантика в fetchXML (не retry для клиентских ошибок)

Обновления зависимостей

Зависимость Было Стало
Go 1.25.5 1.26
golang.org/x/text v0.32.0 v0.34.0
golangci-lint v1 v2

Изменения в коде

Параметр Было Стало
AppVersion 1.1.0 1.2.0
UserAgent версия 1.1 версия 1.2
Размер окна 360x748 360x758

Системные требования

Компонент Требование
Go 1.26
Wails v2.11.0
Покрытие тестами >90%
API XML API ЦБ РФ
Платформа Windows 10 (22H2+) / Windows 11
Размер exe ~10 MB

Установка

Для пользователей

  1. Скачайте CurRate.exe из раздела Assets ниже
  2. Запустите файл (установка не требуется)
  3. Готово! Приложение готово к использованию

Для разработчиков

# Клонировать репозиторий
git clone https://github.com/bivlked/CurRate-Go.git
cd CurRate-Go

# Установить зависимости
go mod download

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

# Собрать production версию
wails build

Обновление с v1.1.0

Обновление полностью совместимо с предыдущей версией:

  1. Скачайте новую версию CurRate.exe
  2. Замените старый файл
  3. Запустите приложение

Никаких дополнительных действий не требуется. Все пользовательские данные (%APPDATA%/CurRate/user.json) сохраняются.


Документация


Связанные проекты


Полная история изменений

См. CHANGELOG.md для детальной истории изменений.


Сделано с Go

Если вам нравится проект, нажмите "Послать звезду!" в приложении или поставьте звезду на GitHub!