Добавить в корзинуПозвонить
Найти в Дзене

Как я написал рабочий скрипт для роутера за 3 минуты без знания программирования — и что из этого вышло

Есть стойкий миф: нейросети пишут код — но он не работает. Красивые примеры, нули и единицы, а на выходе — ошибки и разочарование. Я сам так думал. Пока не проверил на реальной задаче, которая меня раздражала несколько месяцев. Мне нужен был скрипт для сетевого роутера MikroTik: автоматически отключать зависшие VPN-сессии, которые роутер не замечал. Задача конкретная, техническая, и обычно требует знания RouterOS — специального языка команд. У меня этот язык есть, но времени разбираться с нюансами не было. Я открыл Claude и написал задачу человеческими словами. Большинство инструментов "написать код" работают как поисковик: выдают похожее на запрос. Claude работает иначе — он задаёт уточняющие вопросы, предупреждает о подводных камнях и объясняет каждую строку, если попросить. Когда я описал задачу, первое, что он сделал — спросил: «Какой таймаут считать "зависшим"? Как вы хотите логировать отключения?» Это поведение эксперта, а не автодополнения. 💡 Ключевой приём: описывай задачу как
Оглавление

Есть стойкий миф: нейросети пишут код — но он не работает. Красивые примеры, нули и единицы, а на выходе — ошибки и разочарование. Я сам так думал. Пока не проверил на реальной задаче, которая меня раздражала несколько месяцев.

Мне нужен был скрипт для сетевого роутера MikroTik: автоматически отключать зависшие VPN-сессии, которые роутер не замечал. Задача конкретная, техническая, и обычно требует знания RouterOS — специального языка команд. У меня этот язык есть, но времени разбираться с нюансами не было. Я открыл Claude и написал задачу человеческими словами.

Почему это работает: Claude понимает контекст, а не только команды

Большинство инструментов "написать код" работают как поисковик: выдают похожее на запрос. Claude работает иначе — он задаёт уточняющие вопросы, предупреждает о подводных камнях и объясняет каждую строку, если попросить.

Когда я описал задачу, первое, что он сделал — спросил: «Какой таймаут считать "зависшим"? Как вы хотите логировать отключения?» Это поведение эксперта, а не автодополнения.

💡 Ключевой приём: описывай задачу как коллеге, а не как поисковику. Не "напиши скрипт для mikrotik vpn", а "у меня роутер MikroTik, WireGuard VPN, клиенты иногда зависают на 30+ минут без трафика, хочу скрипт для автоматического сброса таких сессий с логом в системный журнал".

Реальный диалог: от задачи до рабочего скрипта

Мой запрос:

У меня MikroTik RouterOS 7. WireGuard VPN. Клиенты иногда
"зависают" — last-handshake больше 3 минут назад, но
сессия не закрывается. Напиши скрипт-планировщик, который
каждые 5 минут проверяет это и удаляет мёртвые пиры.
Добавь лог в /log info.

Что выдал Claude:

:local timeout 180 # 3 минуты в секундах
:foreach peer in=[/interface/wireguard/peers find] do={
:local lastHS [/interface/wireguard/peers get $peer \
last-handshake]
:if ($lastHS > $timeout) do={
:local peerName [/interface/wireguard/peers \
get $peer name]
/log info ("WG watchdog: удаляю зависший пир " \
. $peerName)
/interface/wireguard/peers remove $peer
}
}

Но важнее скрипта — комментарий, который шёл следом. Claude предупредил: в RouterOS 7 `last-handshake` возвращает строку, а не число, и без конвертации сравнение не сработает. Предложил исправленную версию с парсингом. Вот это уже уровень senior-разработчика, а не автодополнения.

Три приёма, которые делают результат в 10 раз лучше

  • Проси объяснить каждую строку. Добавь в конце запроса: «и объясни каждый блок простыми словами». Так ты понимаешь, что получил, и можешь адаптировать.
  • Описывай среду. Версия системы, ограничения, что уже есть — чем больше контекста, тем точнее код. ИИ не телепат, но умеет работать с деталями.
  • Итерируй, не переписывай. Если что-то не так, говори: «Вот ошибка, которую я получил» и вставляй текст ошибки. Claude разберётся и исправит, не начиная с нуля.

Честно о границах: что Claude делает плохо

Буду честен. ИИ не всегда знает последние изменения в API и документации — иногда выдаёт устаревший синтаксис. На это нужно делать скидку и проверять. Для критичных систем — тестируй сначала на лабораторном стенде, не на продакшне.

Ещё он иногда «галлюцинирует» — называет несуществующие параметры с уверенным видом. Спасение одно: проверять документацию для ключевых моментов. Но даже с этим — скорость разработки выросла кратно.

Итог: сколько времени это реально сэкономило

На написание и отладку скрипта ушло около 20 минут вместо полдня. Скрипт работает в продакшне уже несколько месяцев без нареканий. Для меня это не магия — это инструмент. Такой же, как текстовый редактор или поисковик. Просто значительно мощнее.

Вопрос к читателям

Пробовали писать код или скрипты с помощью ИИ? Получилось с первого раза — или пришлось долго итерировать? Расскажите в комментариях, какая была задача и чем закончилось.