Движок сайта: бессерверные боты
Я мало рассказываю о своём движке сайта. Всё обещаю себе, что закончу и тогда напишу большую обзорную статью, но на деле очень страшусь объёма работы: он уже очень многое умеет, а то ли ещё будет — планов громадьё!
Поэтому лучше рассказывать потихоньку.
Со сменой движка многие обратили внимание, что комментарии из моей группы в «Телеграме» теперь транслируются на сайт. Ну как «транслируются» — приходилось руками экспортировать их в клиенте, потом загружать к себе. Конечно, логичнее было бы делать это через бота, да вот незадача — его надо было бы
Выход на самом деле есть — так называемые «бессерверные боты», недавно появившаяся у «Телеграма» возможность. Небольшая цитата из руководства Telegram Serverless:
Telegram Serverless позволяет запускать серверный код бота и
мини-приложения прямо на инфраструктуре «Телеграма» — не нужно настраивать серверы, поддерживать контейнеры в рабочем состоянии и думать о масштабировании.
Одна проблема — доступ пока дают не всем, сначала надо отстоять очередь. Я получил его вчера и сразу с нейросетью сделал бота для переноса комментариев. Теперь буду тестировать на живых обсуждениях.
Технически это набор обычных джаваскриптовых модулей. Для каждого события — свой обработчик: handlers/message.js получает сообщения, handlers/edited_message.js — правки. «Телеграм» вызывает функцию, она выполняет работу и завершается. Код работает в изолированной среде V8; полноценной Node.js со всеми npm-пакетами там нет.
Подключение начинается в
npm create @tgcloud/bot my-bot
cd my-bot
npx tgcloud login
npx tgcloud pushlogin связывает проект с ботом, push загружает код. В комплекте есть SQLite, Bot API и fetch для внешних HTTP-запросов. База сохраняется между вызовами, поэтому можно хранить пользователей, настройки, очередь заданий.
Понятно, что все шаги я описываю поверхностно, чтобы самому не забыть, для подробностей есть документация.
У меня бот сначала сохраняет событие в локальную базу, потом пробует передать его сайту. Если сайт недоступен, запись остаётся для повторной отправки. Если одно сообщение придёт дважды, второй комментарий из него не получится — движок сайта помнит, что уже импортировал.
Связь со статьёй определяется по ссылке в исходном посте канала — я всегда ставлю её в заголовке. Ответы сохраняют структуру обсуждения, а мой Telegram ID связан с моей учётной записью на сайте, чтобы собственные комментарии узнавались как авторские. Так же из комментариев переносятся картинки, видео, стикеры и реакции, включая их снятие.
Приёмник на сайте защищён отдельным секретным ключом, поэтому злоумышленник не может прислать ему команду добавить комментарий. Сам сайт при этом за файлами в «Телеграм» не ходит — бот скачивает их у себя и отправляет вместе с остальными данными.
Вот такая получилась схема. Я пока не знаю удастся ли этим же путём сделать публикацию заметок, но планирую попробовать, если получится, будет здорово.
«Пропьёшь» ли навык программировать?
Не могу согласиться с распространённой поговоркой «мастерство не пропьёшь». Обычно её понимают так: если у человека есть талант или навык, он останется с ним навсегда. Но мой опыт говорит об обратном. Я, можно сказать, «пропил» по меньшей мере одно своё мастерство.
В начале девяностых я учился в Лениногорском нефтяном техникуме, и черчение давалось мне удивительно легко. Настолько легко, что очень скоро стало скучно. Мне казалось странным снова и снова выводить одни и те же элементы, когда я и без того безошибочно представлял деталь в трёх проекциях и разрезе. В голове она возникала объёмной, а на бумагу переносилась почти автоматически.
Думаю со стороны это казалось проявлением то ли лени, то ли наплевательского отношения к предмету.
Именно
Недавно, уже скорее из любопытства, я решил проверить, осталось ли это умение. Оказалось — нет. Тот навык исчез. Сегодня я уже не могу так же отчётливо увидеть предмет в голове сразу в трёх проекциях и мысленно «вращать» его, как делал это
Замечаю, что в последнее время многие программисты задаются вопросом — не исчезнет ли их навык программирования, если они отдадут эту часть работы нейросетям? Думаю, им хочется услышать от как можно большего количества народу
Вопрос только в том зачем нам этот навык? Это как с моим навыком черчения. Что такое должно произойти, чтобы он снова мне пригодился?
Пандора уже открыла свой пифос, нейросети никуда не исчезнут. У нас сейчас переходный период, поэтому всё выглядит зыбко, но
Уже сейчас на двухсотдолларовой подписке при хорошем уровне понимании задачи и контроле, можно за сутки сделать столько, сколько коллектив из нескольких разработчиков хорошего уровня будет делать месяцы! А ведь это ещё не предел — уровень нейросетей всё растёт и из анонсов мы знаем, что каждая из компаний переднего края готовится выпустить свою нейросеть ещё более высокого уровня.
Другое дело, что поменялось всё слишком быстро и никто не понимает толком как перестроить обучение. Дать каждому студенту подписку на нейросети и сразу учить на
Часть людей до сих пор находится на стадии отрицания вайбкодинга. Благо мемы годовой давности, когда код нейросети без ревью даже в домашний проект класть было зазорно, помогают им жить в своём иллюзорном мирке и считать, что они трезво смотрят на мир.
Одно понятно. В переходной стадии программисту надо одновременно развивать оба навыка — программирования и управления программирующими сетями. Руководители разработчиков оказались в чуть более выгодном положении — программировать им необязательно, а управлять программирующими они уже умеют. Ну или должны уметь.