architect/_archive/2025-11-26-cleanup/system-docs/architecture/5-technical.md

Техническое измерение

Версия: 1.0.0
Дата: 2025-11-19


Что описывает это измерение

Вопрос: Какие технологии используются?

Ответ:
- Языки программирования
- Фреймворки и библиотеки
- Инструменты разработки
- Технологический стек

НЕ описывает:
- Где технологии используются (структурное)
- Что технологии делают (функциональное)
- Как технологии применяются (процессное)


Технологический стек

System-level (общее для всех)

Git — версионирование
- Commits, branches, tags
- История изменений
- Совместная работа

Bash — автоматизация
- Скрипты
- Командная строка
- Системные операции

YAML — конфигурации
- Читаемость
- Структурированность
- Комментарии

Markdown — документация
- Для людей
- Для AI
- Git-friendly


Platform v1

Python — основной язык
- Версия: 3.10+
- Простота для AI
- Богатая экосистема

Streamlit — UI фреймворк
- Быстрое создание UI
- Реактивность
- Простота кода

SQLAlchemy — ORM
- Работа с БД
- Миграции (Alembic)
- Типизация

Pytest — тестирование
- Unit тесты
- Integration тесты
- Покрытие кода

Requests — HTTP клиент
- API запросы
- Простой интерфейс


Platform v2 (будущее)

PLATFORM-V2 Language — новый язык
- Декларативный синтаксис
- Для создания приложений
- Интеграция с AI

App Builder — система создания
- Генерация кода
- Шаблоны приложений
- Визуальный редактор (опц)


Выбор технологий

Критерии

1. Простота для AI агентов
- Читаемый код
- Предсказуемый синтаксис
- Хорошая документация

Пример:
- ✅ Python (простой, понятный)
- ❌ C++ (сложный, шаблоны)

2. Экосистема
- Доступность библиотек
- Активное сообщество
- Регулярные обновления

Пример:
- ✅ Python (PyPI, conda)
- ⚠️ Niche language (мало библиотек)

3. Производительность
- Скорость выполнения
- Потребление ресурсов
- Масштабируемость

Пример:
- ✅ Compiled language для критичных участков
- ✅ Interpreted для быстрой разработки

4. Совместимость
- Cross-platform
- Интеграция с другими технологиями
- Стандарты (JSON, REST, etc.)


Управление зависимостями

Уровни зависимостей

System-level:

git, bash, curl, ssh

Platform-level:

Python 3.10+
Node.js (опц)

Project-level:

# requirements.txt
streamlit==1.28.0
sqlalchemy==2.0.23
pytest==7.4.3

Shared Vendor

Концепция: Общие зависимости для нескольких проектов

Пример (Drupal):

/vendor/drupal/          # Общий Drupal core

projects/site1/ → symlink
projects/site2/ → symlink
projects/site3/ → symlink

Экономия: 78-85% места на диске + токены

Изоляция окружений

Python:

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Node.js:

npm install  # создаёт node_modules/

Инструменты разработки

IDE / Редакторы

Claude Code — основной
- AI-assisted coding
- Встроенные инструменты
- Интеграция с workspace

VS Code — дополнительный
- Rich ecosystem
- Extensions
- Git integration

Линтеры и форматтеры

Python:

black .          # Форматтер
flake8 .         # Линтер
mypy .           # Type checker

Тестирование

Pytest:

pytest tests/              # Запуск тестов
pytest --cov=modules/      # С покрытием

Деплой

Git-based:

git push origin main
→ Webhook
→ Deploy script
→ Restart service

Manual:

scp -r solution/ user@server:/path/
ssh user@server "systemctl restart app"

Форматы данных

YAML

Использование:
- Конфигурации (config.yaml)
- Метаданные (index.yaml)
- Стандарты (standard.yaml)

Преимущества:
- Читаемость
- Комментарии
- Структурированность

Markdown

Использование:
- Документация (README.md, CLAUDE.md)
- Спецификации (spec.md)
- Концепции (CONCEPT.md)

Преимущества:
- Для людей
- Для AI
- Git-friendly (текстовый diff)

JSON

Использование:
- API responses
- Конфигурации (package.json)
- Данные

Преимущества:
- Стандарт
- Простой парсинг
- Широкая поддержка

SQLite

Использование:
- Локальные БД
- Данные приложений
- История

Преимущества:
- Без сервера
- Файловая БД
- SQL запросы


Интеграции

API Клиенты

HTTP:

import requests

response = requests.get('https://api.example.com/data')
data = response.json()

Ozon API:

from modules.api.ozon import OzonAPI

api = OzonAPI(client_id, api_key)
products = api.get_products()

MCP Servers

Концепция: Model Context Protocol

Использование:
- Интеграции с внешними сервисами
- Расширение возможностей AI
- Стандартизированный интерфейс

SSH

Подключение:

ssh user@server

Команды:

scp file.txt user@server:/path/
rsync -avz local/ user@server:remote/

Безопасность

Секреты

НЕ хранить в Git:
- API keys
- Passwords
- Tokens

Где хранить:

.env                  # Локальные секреты (в .gitignore)
secrets.yaml          # Конфиги (в .gitignore)
Environment variables # На сервере

SSH ключи

Генерация:

ssh-keygen -t rsa -b 4096

Использование:

ssh -i ~/.ssh/id_rsa user@server

Следующее измерение

Следующее: 6-information.md — потоки данных

Назад: 4-role.md — ролевое измерение