Бобук
👤 SpeakerAppearances Over Time
Podcast Appearances
Я попробовал... В чатике в нашем я рассказывал про эксперимент. Я попробовал его использовать для программирования. То есть давно этого не пробовал. А тут попробовал попрограммировать на нем, на Go, и результат меня, честно говоря, поразил. Меня уже давно ничего не удивляет, но...
Ну вот смотрите, что он сделал. У нас же гиковский выпуск. Давайте я вам гиковский расскажу. У меня есть модуль, который занимался тем, что чего-то для этого скиллтаса моего, который как вот этот три раза переименованный, но мой собственный и работает в докере, и параноидально ограничен всем, что он может сделать, и пишет скрипты под себя, и я к нему хотел прикрутить телеграм-нотификатор, чтобы он с телеграмом работал.
Сейчас он у меня по SSH работает, как у нормального гика. Как еще бот у гика может работать? Правильно? По SSH. Он внутри SSH сервис держит, на VPS работает, я к нему захожу и так общаюсь. Телеграм хотел прикрутить.
И Telegram я прикрутил, все в порядке. Потом говорю вот этому новому кодексу, зайди, дружище, посмотри, что там не так, что там не по моим стилям и не по моим стандартам. А он ко всем стандартам, он у меня точно так же настроен, один в один, сто процентов, как и Cloud Code. И предложи изменения. А я на них посмотрю и соглашусь или нет.
Он пошел, пошел, пошел. Долго работал. Полчаса работал. Сказал, вот есть такие проблемы, которые хорошо бы решить. Пойдете, хозяин, решать или нет? И с первого взгляда эти проблемы такого вида, что... Ну вот, например. Леха, ты как Go-программист, я тебе скажу. Когда он тебе говорит, у тебя плохой каверич для MainGo, поскольку теста вообще нет.
Сразу возникает подозрение. Ну, чувак не рубит, да? Какой кавердж для Мэнго? Там только вайлинг происходит. Он говорит, давай я сделаю. Я говорю, ты уверен, что это делается?
Сама постановка задачи странная. Он делает интеграционное тесто? Или что он сделает? Он говорит, вообще фигня вопрос. Сейчас сделаю. И он сделал. Но как он это сделал? Это какое-то второе пришествие Java в Go. Я такого кода не видел никогда. Он переписал все функции внутри. Невзависимо. Если бы он все в зависимости притащил, я бы сказал, ну, понятно. Дебил, но понятно.
Он все функции переписал в таком руби-способе. Они все теперь стали factory, который может возвращать любую функцию. Он теперь только factory вызывает изнутри. То есть, если тебе надо time функцию, он вместо нее сделал функцию createTime функцию.
И все абсолютно вещи, которые мейн вызывает, теперь глобальные такие хелперы, которые можно вызвать. Тесты эти, глобальные хелперы, под себя переписывают. Тесты люто конфликтуют, поскольку это же глобальные хелперы. Поэтому он ввел систему registry, которая говорит, кто что переписал. Потом он подумал, потом он говорит, как-то сложно получилось, слишком много factories. Какой способ? Догадайтесь, какой способ? Сделать абстрактную factories, правильно?
для Factory. Конечно, сделать абстрактную Factory и вокруг него сделать регистратор, который умеет правильное Factory правильно создавать. Он реально все это написал. Он работал часа три, наверное, для этой глупости. И вот это все нагенерировал. Такого плохого кода на Go я не видел очень давно.
И при этом я потом... Может удивлять еще, да, тебя. Говорю, чувак, ну, если ты пошел в эту сторону, ну, давай, ладно, зависимость интерфейсами сделаем. Будет же проще. Он говорит, о, как я об этом не подумал.
И все на интерфейсе переписал. Когда я отдал это к код-коду на обзор, я не намекал никак. Я говорю, вот изменение, которое мне сделала другая. Я даже не стал говорить, что другой AI, чтобы не обиделся. Программист принес пиар, коллега. Что ты про это думаешь?
Он так говорит, ну, говорит, типа тут зерно есть. Вот эти три строчки я бы переиспользовал. А 1800 других, которые он добавил, хорошо бы убрать, к чертовой матери. Я с ним полностью согласен. Вот три строчки, это был единственный полезный код, который он придумал. Для какого-то H-кейса какой-то странный тест. Я даже не очень понял, как этот H-кейс может произойти, но фиг с ним. Тесты никогда лишними не будут. Короче, мне активно не понравилось, как оно пишет.
Анализирует круто, писать не умеет. Мое ощущение, это такой PhD-профессор, который пришел из области теоретической химии и который пытается программировать, как они вот свои эксперименты программируют. Ты же, Бабук, видел, как эти PhD пишут программирование? Они про форы не знают, они там ничего не умеют. Но как-то результаты добиваются. Вот и кодекс такой же.
Моим теткам необходим теперь терминал, который OSC, вот этот номер, умеет использовать для того, чтобы копии клейбордов делать.
Они после терминала говорят, слушай, почему ты раньше молчал? Какой прекрасная программа. Они не понимают, терминал или не терминал, но он красивый, понимаешь? Самое сложное, когда включишь Copy on Select, отучиться нажимать Ctrl-C или Command-C. Да неважно. Ты видел, как они копируют. Я когда вижу, как они копируют, они в терминале выбирают... В терминале, в котором Copy on Select включен, они сначала выбирают дабл кликом. Вот это они знают. Потом нажимают правую клавишу. Потом выбирают Copy to Clipboard.
Из менюшки. А потом копируют таким же образом обратно куда-то. Я уже даже не лезу в это. Хотите так делать, делайте так. Ну, так, да. Как-то так. Давайте на третью тему перейдем. Ксения, тебя на удивление мало слышно. А нам хотелось бы тебя услышать. Это потому, что я пришел.
Тут у меня возникло желание, не поверите, написать программу для МакОс. Нативную. Ну, как Грей Хвастался написал. Я уже даже домен купил под эту программу. Прикиньте. Ну, все готово. OpenClaw 2. Или Open... Называется... Как домен назвал? Esculighter.
Лайтер, как этот самый, как зажигалка. Оказывается, SQLighter доступный домен был. Ну, согласитесь, крутое имя, правильно? Для чего-то, что с SQLighter работает. Я хочу сделать тот самый клиент для SQLighter, который я хочу. Поскольку все остальные клиенты, которые я видел, а я не знаю, пробовали вы GUI клиенты для SQLighter, они все...
Убоги более чем... Они убоги более чем полностью, с одной стороны. С другой стороны, простая идея. Почему я не могу SQLite своим ходить на удаленный сервер по SSH и там смотреть свой SQL? Почему мне его копировать куда-то? Вообще, что это такое?