Обновить
55
Alex Gusev@flancer

Я кодирую, потому что я кодирую…

0,1
Рейтинг
99
Подписчики
Отправить сообщение

Вы не могли бы показать код, который вы получаете за "час активной работы"?

Я когда вижу, что агенты генерят, у меня глаз дёргается. Ну а когда не вижу - норм. Что-то делают, как-то работает - уже ОК. Но я под Magento больше 5 лет интегратором различных расширений был. До сих пор удивляюсь, как тот зоопарк работал. Всё-таки у сложных программных систем в определённой конфигурации есть достаточный уровень самостоятельной живучести.

Я как раз только что выложил свою публикацию на похожую тему (Spec-Driven Dev). У меня в коде тоже используется мой "самописный фреймворк" без "накатанных рельсов". Проблему решал "самописным скиллом" (teq-esm-validator). Если у агентов есть спецификация по условиям применения фреймворка и скилл-валидатор, который загоняет агента в рамки - вполне себе приемлемо (для человека). Но расход токенов, думаю, должен быть побольше. Особенно на старте, пока шаблонного кода мало.

На эту тему даже анекдот есть :)

Перед светофором останавливаются два авто - Рено Логан и Ламборгини. Водитель Логана, крутя ручку, опускает стекло и спрашивает водителя Ламборгини: - Ну как тачка вообще? Не ломается? - Да вроде нормальная тачка, а почему спрашиваешь? - Да смотрю, что-то не очень народ их покупает.

У меня подписка GPT Plus за 20 евро. Мне норм.

IMHO, ревьюить каждую строчку нейрокода человеками - безумие не меньшее.

Я это к тому, что смотреть сгенерённый код людям нужно. Но это не ревью - это анализ. Поиск типовых "ляпов", что делает агент, и исключение их как класса через документы контекста, промпты, скиллы, тесты и перекрёстные проверки другими агентами. Человек не вывезет эту гонку, на мой взгляд.

Лично я сравниваю навык ревьюинга нейрокода с навыком ревьюинга машкодов после компиляции исходников. Неплохо, конечно, разбираться в таком коде, но корректность его работы нужно обеспечивать на другом уровне (компилятор, тесты). У европейского финтеха может быть другое мнение на этот счёт.

Вот здесь: "Задолбали уже со своим вайб-говнокодом. Что, писать на хабре больше неочем?"

Мне показалось, что ваш коммент в какой-то мере поддерживает это инфантильное нытьё. Извините, если был не прав.

IMHO, нет смысла человеку ревьюить нейрокод. На край, можно поручить это другой нейронке, но тоже такое - могут вступить в сговор. А вот делать приёмочные тесты (интеграционные) - смысл, наоборот, есть. Но это и с людьми так.

Человек может изучать сгенерённый код, чтобы понимать, как "думает" нейронка, но ревьюить "каждую строчку"... перебор, на мой взгляд.

Статья получила +10 на данный момент и 35 читателей добавили в закладки. Она кому-то оказалась полезной. Просто подумайте об этом.

А если у вас есть способ, чтобы читатели получали доступ только к полезным для них публикациям - поделитесь с редакцией Хабра. Ныть про то, что "этот мир под вас плохо подстроили" - инфантильно.

Есть выход! Можно читать только главную ленту!! Главное - не поддаваться унынию.

К каждой статье есть вот такой блок с контролами. Нажми на "шестерёнку", а потом скрой публикации автора. Прекрати ныть и сделай себя счастливым сам! Ты - сильный, ты - сможешь!!

Я решаю сложные front-end задачи на работе, я собираю для себя PyTorch под древний Adreno 530 (телефон 2016 года), чтобы запустить на нем Silera и opus MT translate. Это задачи высокой инженерной сложности, и мой агент справляется с ними, долго, часами, но справляется и не ошибается.

А покажите, пожалуйста, ваш волшебный промпт. Можно даже под лицензией "CC BY-SA 4.0". Фронт, PyTorch, задачи друга... Аж прям любопытно стало, что это за "заклинания" такие.

Дружище, я тебе карму заминусил за твой стиль общения. Ты лично не считаешь свои выпады хамством, например такой:

Можно просто открыть доку к любой либе поверх них, включая либу многоуважаемого автора, посмотреть какое это убогое говно и закрыть.

Я, например, считаю.

У тебя такой пронзительный стиль общения, что тут боты не нужны для кармослива. Ты и сам прекрасно справляешься.

  Почти все новости сгенерированы нейронками.

А что вас в этом парит? Стиль или искажение фактов? Если первое - то заведите свою нейронку и научите её излагать новости в нужном вам стиле. Если второе - люди тоже лгут, особенно в новостях. Переключите канал. А лучше заведите несколько и сравнивайте, что совпадает.

Школьники делают дз используя их.

Раньше школьники вообще друг у друга списывали. Так что тут прогресс, я считаю. Теперь школьнику нужно как-то объяснить нейронке задание, а потом понять, где у неё ответ.

Мир всегда меняется, некоторые вписываются в новые условия лучше (молодёжь, она без опыта), некоторые хуже (у опытных больше инерция). Так всегда было, есть и будет. Это нормально. Новые возможности несут новые угрозы, так же как и новые угрозы несут новые возможности. Инь и янь, будь они неладны!

Я, кстати, могу даже ваш код внутрь своего контейнера пустить. Если дадите адрес, где лежит js с именем типа Evil.js и кодом типа:

export const __deps__ = {
    logger: "Client1_Di_Logger$",
};

export default class App_Evil {

    constructor({ logger }) {
        debugger;
    }

}

Сможете изнутри приложения попытаться logger переопределить.

Это вообще прекрасно! Тут уже без CSP не обойтись!

Пришлось переключиться на новую версию Контейнера (v2). Её как раз Codex сделал. В моей ручной версии был небезопасный код (new Function)

Сделал тестовый стенд, поставил в bootstrap задержку на 5 сек. Класс тот же - Client1_Di_Logger, метод тот же - print. Пробуйте.

http://app1.habr.dev.wiredgeese.com/index2.html

Неплохо! Это всё ещё окружение, но тем не менее - это реальная возможность переопределить поведение порождаемых объектов.

В любом случае, спасибо за аргумент, коллега :) Меня тут на Хабре как-то уже ногами месили за то, что я использую замыкания в конструкторе вместо того, чтобы как "все нормальные люди" использовать классы и прототипы. Теперь, благодаря вам, я могу наглядно показать, почему я не делаю, как "все нормальные люди".

Переписал имплементацию логгера на замыкание:

export default class Client1_Di_Logger {

    constructor() {
        /** @type {Console|undefined} */
        let consoleRef;

        this.setConsoleLogger = (console) => {
            consoleRef = console;
        };

        this.print = (msg) => {
            consoleRef.log('Client1 logger: ' + msg);
        };
    }

}

Теперь ваш трюк с Client1_Di_Logger не работает. Остальное в примере тоже можно через замыкания переписать (я пример специально делал в виде, наименее шокирующем нормальных людей). Принцип тот же. Но я думаю, вы уже и сами это поняли.

Да, я действительно по-другому, нежели вы, понимаю, как работает JS runtime. Но вы лично, и любой другой, можете повторить то, что я написал выше. Это скриншоты, а не нейрогенерёнка. Это повторяемо.

Размещать что-либо прикладное в globals после 2015-го года - это не олдскульно, а архаично.

console.log=null

Вы, так-то изменили не объект, который мой контейнер генерирует, а окружение, в котором мой контейнер работает. Надеюсь, вы понимаете разницу :) К моим прикладным объектам (и самому контейнеру) из консоли у вас доступа нет.

У нас с вами, коллега, очень сильно разное чувство прекрасного. Моё, например, страдает от такой картины:

И это только с $hyoo_, а ещё с $mol_ не  меньше
И это только с $hyoo_, а ещё с $mol_ не меньше

Разработчики языка специально в ES6 сделали возможность ограничивать область видимости объектов (let vs var). Понимали, что чем менее доступен объект, тем меньше поверхность атаки на него.

А разработчик $mol всё выложил в globals - скучное техническое решение с весёлыми последствиями. Каждый-всякий-любой может на странице https://mol.hyoo.ru/ сделать вот такое (в консоли или скриптом):

window.$mol_view=null

и получить такое после клика на любой ссылке:

Любой скрипт на странице может "убить" $mol
Любой скрипт на странице может "убить" $mol

А ведь, при желании, можно не просто тупо грохать приложение, а обернуть любой $mol-объект собственным кодом прямо с консоли браузера. Можно это представить как непревзойдённую расширяемость, а можно - как дыру для утечки конфиденциальных данных.

А попробуйте-ка с консоли получить доступ к моему контейнеру и его объектам хотя бы вот в этой демке (к этой статье). Ну как? О!

ES6-модули рулят с 2015-го года:

<script type="module">

но ваша архитектура до сих пор тупо лезет в глобалс и подставляется через него :(

А что касается бойлерплейта, то в наш век автоматизации разработки ПО этот аргумент звучит жалко.

Информация

В рейтинге
3 465-й
Откуда
Рига, Латвия, Латвия
Дата рождения
Зарегистрирован
Активность

Специализация

Фулстек разработчик, Архитектор программного обеспечения
Ведущий
JavaScript
HTML
CSS
Node.js
Vue.js
Веб-разработка
Progressive Web Apps
PostgreSQL
MySQL
GitHub