# Fictional example · Alex

Frontend\-разработчик

Делаю интерфейсы, в которых состояние и результат действия понятны пользователю\.

> Демонстрационный сайт: все люди, проекты и результаты вымышлены.

## Обо мне

Вымышленный персонаж для демонстрации структуры\. Проекты и результаты ниже придуманы; это не опыт покупателя\.

## Инструменты и навыки

JavaScript, React, CSS, UI testing

## Кейсы

### Fictional example · Надёжная форма

> Fictional example — вымышленный пример, не личный опыт владельца

Личный демонстрационный проект: повторная отправка и восстановление после ошибки\.

**Задача и контекст**

При двух быстрых кликах демонстрационная форма отправляла повторные запросы\. После сетевой ошибки введённые значения терялись\.

**Мой вклад**

Отвечал за состояния интерфейса и UI\-тесты\. Серверной идемпотентностью занимался другой участник\.

**Техническое решение**

Разделил состояние формы на ввод, ожидание и ошибку\. Во время запроса отключил повторную отправку; после ошибки сохранил значения и разрешил новую попытку\.

**Компромисс и альтернатива**

Отклонил очередь запросов: для одного действия она усложняла восстановление\. Блокировка UI не заменяет защиту сервера от повторных запросов\.

**Наблюдаемый результат**

В этом вымышленном проекте проверки повторного клика и повторной попытки проходят\.

**На чём основан вывод**

Только вымышленные артефакты: PR \#42 и отчёт checkout\-retry\.txt\. Реальных файлов и производственных данных нет\.

**Границы результата**

Нельзя утверждать, что устранены все двойные платежи или улучшена конверсия\. Проверено только поведение демонстрационной формы\.

**Что изменю в следующий раз**

В следующей задаче сначала согласую границу ответственности интерфейса и сервера\.

**Стек**

React, JavaScript, UI testing

### Fictional example · Понятный запуск

> Fictional example — вымышленный пример, не личный опыт владельца

Учебный командный проект: инструкция для первого запуска\.

**Задача и контекст**

В инструкции не хватало шага настройки среды\. Другой участник не мог запустить проект\.

**Мой вклад**

Перепроверил README и описал шаги без секретов\. Сам сервис написан командой; его разработку целиком себе не приписываю\.

**Техническое решение**

Сохранил инструкцию рядом с кодом и проверил её с чистого checkout\. Попросил одного участника повторить шаги самостоятельно\.

**Компромисс и альтернатива**

Отдельный сайт документации не использовал: для небольшого проекта он добавлял второй источник истины\.

**Наблюдаемый результат**

В вымышленной проверке один участник запустил проект по новой инструкции\.

**На чём основан вывод**

Вымышленные README diff и обезличенная заметка обратной связи; документы не существуют\.

**Границы результата**

Один запуск не доказывает ускорение онбординга всей команды\. Длительность до и после не измерялась\.

**Что изменю в следующий раз**

Добавить проверку инструкции при изменении окружения\.

**Стек**

Markdown, Git, documentation
