Обо мне

Кто делает сайты и как

Я веб-разработчик: делаю лендинги и небольшие сервисы на Go. Почти все проекты на этом сайте учебно-демонстрационные: бренды вымышленные, данные демо, код приватный и открывается по запросу. Исключение — один реализованный клиентский сайт (клиента не называю).

Здесь нет отзывов и цифр о заказах: показываю только то, что можно проверить, то есть работающий код, тесты и README с ограничениями.

Принципы

  1. 01

    Просто и проверяемо

    Стандартная библиотека Go, понятная структура пакетов, тесты на то, что действительно важно: конкурентный захват задач, двойная бронь, протокол WebSocket.

  2. 02

    Честные ограничения

    В каждом README есть раздел «Ограничения»: один токен вместо ролей, один процесс, at-least-once вместо exactly-once. Лучше сказать заранее, чем объяснять потом.

  3. 03

    Доступность по умолчанию

    Контраст по WCAG AA, видимый фокус, работа с клавиатуры, уважение к prefers-reduced-motion, mobile-first вёрстка.

  4. 04

    Без секретов в коде

    Настройки идут через переменные окружения, токены генерируются при старте, если не заданы.

  5. 05

    Один бинарник

    Фронтенд встроен в Go-сервис через embed, запуск не требует установки зависимостей; для SQLite используется драйвер без CGO.

Как мы будем работать

  1. 01

    Разговор

    Выясняем задачу, аудиторию и ограничения. Если сайт не нужен, скажу об этом сразу.

  2. 02

    Договорённости

    Состав работ, сроки и что считается готовым. Письменно, без сюрпризов.

  3. 03

    Сборка

    Короткие итерации: промежуточный результат можно открыть и потрогать.

  4. 04

    Проверка

    Тесты, мобильные экраны, доступность, нагрузка на форму и API.

  5. 05

    Запуск

    Docker-образ или статика, инструкция по запуску, передача кода.

Честно о границах

  • Почти все проекты учебно-демонстрационные; один сайт — реализованный клиентский, имя клиента не называется. Отзывы и цифры по заказам здесь не заявляются.
  • Race-детектор (go test -race) на моей рабочей машине не запускается из-за отсутствия C-компилятора; он выполняется в CI.
  • Свой слой WebSocket не проходил Autobahn Test Suite: корректность проверена собственными тестами. В продакшене разумнее брать проверенную библиотеку.
  • Демо-данные в проектах (история мониторинга, ссылки, задачи) сгенерированы и помечены в интерфейсах как демо.
  • Контакты: только почта. Телефон и соцсети намеренно не указаны.