Note: текст ниже написан человеком. 25+ лет использую Linux (FreeBSD -> Mandrake -> Ubuntu), терминал — мой бро. Символы «»…₽— настроены для удобного ввода с клавиатуры, и я постоянно их использую при написании человекочитаемых текстов. Я не ИИ, LOL.
Генеративный ИИ для меня — это всего-лишь Google + Stack Overflow + Smart autocomplete в одном флаконе. По факту это обычный справочник с быстрой индексацией. Помню как в юношестве читал книгу «Экспертные системы в медицине». По сути эта книга (как и многие другие) являлась предвестником ИИ эпохи. Могу с уверенностью сказать, что с конца 80-х не изменилось ровным счётом ни-че-го, кроме скорости обработки и объёма информации.
Машинные коды, алгоритмы и базовые структуры данных появились задолго до моего рождения, и используются по сей день. ИИ — просто развитие того, что уже было. Пока не появился AGI (а я считаю его скорое появление маловероятным), человек будет рулить. Воспринимаю ИИ как банальный справочник, и пользуясь случаем передаю привет всем любителям использовать генеративный ИИ в качестве замещения своей собственной дегенеративной головы.
ИИ в работе: а вот здесь ИИ это просто отвал башки. Он очень сильно экономит время на написание кода. Если раньше мне приходилось гуглить и копипастить куски кода с SOF, то теперь ИИ это делает за меня. Мне уже не приходится держать несколько вкладок с доками в браузере. Ещё один немаловажный момент — с появлением ИИ границы между языками системно-высокого уровня стираются. Таким образом, имея большой практический опыт работы с разными стеками и технологиями, переход между разными ними происходит естественно, так как меняется лишь форма, а не суть. Исключением для меня являются Rust и Asm, где понимание написанного кода без изучения специфики конкретного языка (формы) не представляется возможным (опять привет ИИ-торчкам, которые пишут «свою ОС с нуля» на Rust/Asm).
ИИ и когнитивные искажения: а вот тут ситуация с наблюдаемыми эффектами радикально отличается от использования ИИ в разработке. ИИ — это инструмент, я не устану это повторять. Грустно наблюдать, как люди становятся рабами инструмента — «ИИ-торчками». Сравнение с наркоманами IRL я нахожу абсолютно оправданным — отличается только степень воздействия на физическую сферу.
Как упоминал ранее, ИИ в разработке даёт колоссальный буст. Да, даже будучи сеньором-помидором, я часто путал, да даже взять порядок аргументов в вызове функции in_array в PHP, так как я фокусировался на цели, а не на ямах на дороге. Появление ИИ закрыло этот последний пробел. Абсолютно любые так называемые «новые» для меня технологии представляют собой лишь видоизменённый вариант того, что я уже многократно решал — меняются только названия и синтаксис.
FX — это оркестратор задач на Go + PHP Swoole + NATS JetStream + Redis.
В связи с тем, что типовые проекты перестали представлять хоть какую-то объективную сложность, я решил поиграть с технологиями на их стыке. На последнем месте работы использовались семафоры. В итоге родился проект, наглядно демонстрирующий суть работы с ко/горутинами в асинхронной среде, с решением типовых для highload проблем в виде race condition, синхронизации, durability и многих других.
Пользуясь случаем скажу о своём первом знакомстве с
race condition— это случилось примерно 15 лет назад. Я никак не мог понять, почему значения в PHP сессии перезаписываются. Причина оказалась банальной, но в то время для меня это было совсем неочевидно — сессия открывалась в начале PHP скрипта, а закрывалась в конце выполнения. А так как время выполнения HTTP запроса легко могло составлять секунду и более, то несколько одновременных параллельных Ajax запросов читали и писали в/из сессии как бог на душу положит. Забавно, когда вопрос «что такое race condition» мне задаётся на собеседованиях.
Особенности проекта:
- Асинхронные воркеры с глобальными (swoole -> go balancer -> cb -> api) и локальными (swoole atomics) семафорами
- NATS JetStream как персистентная очередь и pub/sub для передачи WS клиентам
- Go WebSocket-прокси с бинарным протоколом (9 байт на сообщение)
- Кастомный балансировщик с проверкой здоровья инстансов
- Распределённые семафоры через Redis + Lua (255 слотов, TTL)
- OpenTelemetry + Jaeger для распределённого трейсинга
Проект получился интересным — я люблю создавать наглядные демонстрации скрытых процессов. С гордостью отмечу, что в проекте гармонично сочетаются Go подходы в использовании асинхронного взаимодействия в Swoole, например, RuntimeContext.php, трейт Snafubarable.php и многое другое.
Живое демо: fx.trixter.xyz
GitHub: github.com/centaur-vova/fx
Стек: PHP 8.4 (Swoole 6), Go 1.26, NATS, Redis, Docker.
| Область | Технологии |
|---|---|
| Backend | PHP 5.x → 8.x, Go, Python |
| Брокеры | NATS, Kafka, RabbitMQ |
| Базы данных | MySQL, PostgreSQL, ClickHouse, Redis |
| Архитектура | Clean Architecture, DDD, Event-Driven |
| Наблюдаемость | OpenTelemetry, Jaeger, кастомные метрики |
| DevOps | Docker, Compose, Systemd, CI/CD |
| Имя | Дмитрий Шманатов |
| iam@trixter.xyz | |
| Telegram | https://t.me/l3373 |
| Локация | Россия, сельская глубинка |


