Если бы мне нужно было допиливать легаси проект, обязательно был взял openspec, чтобы вносить и фиксировать изменения. Но для моих текущих задач даже "схем" недостаточно, т.к. вообще не помогают разработке в условиях неопределённости
требование должно жить в самой дешёвой форме, которая способна его удерживать.
Золотые слова
Структурный инвариант домена держится типом, и тогда он обязан быть типом (Влашин, illegal states unrepresentable). Граница систем держится схемой и контрактным тестом. Обобщённое намерение держится свойством в property-based тесте.
А вот про это мы ещё только думаем. Нужен какой-то лок, где мы говорим агенту и самим себе: вот это истинно, это нарушать нельзя, тут нужно подумать при изменении. А всё остальное можно править без проблем. Главное поймать агента, когда он начнёт костылить, чтобы обойти инварианты.
Я вот пришёл к выводу, что мне проще провести провести нормальную подготовительную работу и получать более менее предсказуемый результат, чем бороться с умолчаниями. Вообще у меня ощущение, что я делаю то же самое, только не в процессе написания кода, а в процессе подготовки документации для агента.
Классная статья. Я уже давно (по меркам последнего года, хе-хе) отказался от плана. Т.к. заметил, что всё что агент может превратить в план, он может просто сделать по исходным данным. Хочешь план, а хочешь сразу исходный код.
Отношение к плану сменилось с "инструкции, которые агент должен сделать" на "вот как агент понял задачу". Можно свериться.
Openspec хорош тем, что даёт простой, понятный процесс, но я его друпнул через неделю.
Для моих задач оказался как‑будто слишком плоским, как-будто для чего‑то маленького, что ты можешь полностью загрузить в голову. Очень быстро получил миллион папочек со спеками, которые хз как организовывать и вообще контролировать. Я даже дельты офигел читать, не то что результат мержа.
Сейчас использую что‑то более иерархическое: общие требования, общий процесс и скоупы. Внутри скоупа его требования, истории, дизайны и только там уже появляются решения по модели, коду и другим вещам имплементации.
При этом всё живое, списки открытых вопросов, правки спеки, решений по ходу реализации и т.д. Не могу я сначала все придумать, а потом получить программу целиком.
ИИшка работает не мгновенно, а чем сложнее и запутаннее, тем больше контекста и дольше работа.
Я пробовал отпускать вожжи с столкнулся с бесконечными итерациями переделки и правок. Для себя решил, что лучше сначала спроектировать нормально и получать предсказуемый результат, чем выгребать все места, где модель тебя не правильно поняла.
У нас количество закрытых задач выросло в 1,5 раза. Это единственный измеряемый эффект. Где-то подросло качество, т.к. ИИ вытаскивает кейсы, которые просмотрели все.
А меня задалбывает процесс исправлений. Решил что проектировать сразу нормально гораздо проще чем переделывать. Хорошо зашли, как ни странно, uml-диаграммы бд (я бэкендер): нейронка их легко правит в тексте, а делаю ревью по визуацлизации.
На хорошей структуре данных и методы писать просто (той же нейронке).
Сейчас получаю ожидаемый код, поэтому его просто ревьюить. Чем меньше ошибок и сюрпризов, тем меньше исрпавлений и повторного ревью, тем быстрее идёт задача. А сами нейросети стали меньше косячить по мелочи, но иногда просто делают не то и вот понимание я и проверяю.
Тем не менее, по работе приходится читать множество статей написанных нейронками и к стилю привыкаешь и хорошо видишь какие-то характерные приёмы. Как-будто одного автора читаешь.
Т.е. я не могу "чётко отделить нейрослоп от самостоятельно написанных вещей", но если статья палится, то она палится. Например: Уборщик резервов кадров жил по таймеру в 15 минут. Генерация укладывалась в 16.
И вот вопрос, который меня мучает: где тут мысли автора, а где "фантазии" нейронки, которые автор пропустил, потому что ему пофиг, или потому что решил "вроде похоже на правду"?
Выхлоп GPT я могу и без всякого хабра прочитать.
Признаю, есть очень маленькое количество статей, где автор принёс что-то действительно интересное, а GPT использовал только для оформления, но их очень мало.
Опус 5, который хоть что-то начал понимать тратит минимум 10 минут на новом чате в проекте размером с человеко-год. Чтобы потратить пару минут, нужно либо просить сделать что-то очень локальное, типа конкретной функции (а это нифига не вайбкодинг), либо использовать очень тупые модели.
Если дело только в отсутствии экспертизы, по можно попробовать собрать пайплайн на основе агентов.
Звучит как предложение, которое себе противоречит. Типа в написании софта не шаришь, зато можешь проделать нехилую инженерную работу для автоматизации написания софта и отделить бизнес требования от технины
Очень быстро. А ещё мы скоро узнаем объём, который можно без боли чисто вайбкодить. Типа как автоматизация в екселе идёт хорошо до определённого предела, дальше боль, страдания и извращения. Сейчас этот предел расшили нейронки.
Если бы мне нужно было допиливать легаси проект, обязательно был взял openspec, чтобы вносить и фиксировать изменения. Но для моих текущих задач даже "схем" недостаточно, т.к. вообще не помогают разработке в условиях неопределённости
Золотые слова
А вот про это мы ещё только думаем. Нужен какой-то лок, где мы говорим агенту и самим себе: вот это истинно, это нарушать нельзя, тут нужно подумать при изменении. А всё остальное можно править без проблем. Главное поймать агента, когда он начнёт костылить, чтобы обойти инварианты.
Я вот пришёл к выводу, что мне проще провести провести нормальную подготовительную работу и получать более менее предсказуемый результат, чем бороться с умолчаниями. Вообще у меня ощущение, что я делаю то же самое, только не в процессе написания кода, а в процессе подготовки документации для агента.
Классная статья. Я уже давно (по меркам последнего года, хе-хе) отказался от плана. Т.к. заметил, что всё что агент может превратить в план, он может просто сделать по исходным данным. Хочешь план, а хочешь сразу исходный код.
Отношение к плану сменилось с "инструкции, которые агент должен сделать" на "вот как агент понял задачу". Можно свериться.
Openspec хорош тем, что даёт простой, понятный процесс, но я его друпнул через неделю.
Для моих задач оказался как‑будто слишком плоским, как-будто для чего‑то маленького, что ты можешь полностью загрузить в голову. Очень быстро получил миллион папочек со спеками, которые хз как организовывать и вообще контролировать. Я даже дельты офигел читать, не то что результат мержа.
Сейчас использую что‑то более иерархическое: общие требования, общий процесс и скоупы. Внутри скоупа его требования, истории, дизайны и только там уже появляются решения по модели, коду и другим вещам имплементации.
При этом всё живое, списки открытых вопросов, правки спеки, решений по ходу реализации и т.д. Не могу я сначала все придумать, а потом получить программу целиком.
ИИшка работает не мгновенно, а чем сложнее и запутаннее, тем больше контекста и дольше работа.
Я пробовал отпускать вожжи с столкнулся с бесконечными итерациями переделки и правок. Для себя решил, что лучше сначала спроектировать нормально и получать предсказуемый результат, чем выгребать все места, где модель тебя не правильно поняла.
У нас количество закрытых задач выросло в 1,5 раза. Это единственный измеряемый эффект. Где-то подросло качество, т.к. ИИ вытаскивает кейсы, которые просмотрели все.
Тест, код, uml - это способ записи модели. А модель то кто должен придумать? Это и есть моделирование.
Прямо сейчас переделываю модель после ИИ, потому с ней банально неудобно работать.
А меня задалбывает процесс исправлений. Решил что проектировать сразу нормально гораздо проще чем переделывать. Хорошо зашли, как ни странно, uml-диаграммы бд (я бэкендер): нейронка их легко правит в тексте, а делаю ревью по визуацлизации.
На хорошей структуре данных и методы писать просто (той же нейронке).
Сейчас получаю ожидаемый код, поэтому его просто ревьюить. Чем меньше ошибок и сюрпризов, тем меньше исрпавлений и повторного ревью, тем быстрее идёт задача. А сами нейросети стали меньше косячить по мелочи, но иногда просто делают не то и вот понимание я и проверяю.
Я просто хотел понять на каком объеме упёрлись, кода, функционала?
Чтобы как-то сравнить со своими объёмами
В любом случае я согласен, что ИИ не Акинтор, если ТЗ из одной строчки не стоит удивляться, что всё остальное будет выдумано.
Насколько это большой был проект?
Тем не менее, по работе приходится читать множество статей написанных нейронками и к стилю привыкаешь и хорошо видишь какие-то характерные приёмы. Как-будто одного автора читаешь.
Т.е. я не могу "чётко отделить нейрослоп от самостоятельно написанных вещей", но если статья палится, то она палится. Например: Уборщик резервов кадров жил по таймеру в 15 минут. Генерация укладывалась в 16.
И вот вопрос, который меня мучает: где тут мысли автора, а где "фантазии" нейронки, которые автор пропустил, потому что ему пофиг, или потому что решил "вроде похоже на правду"?
Выхлоп GPT я могу и без всякого хабра прочитать.
Признаю, есть очень маленькое количество статей, где автор принёс что-то действительно интересное, а GPT использовал только для оформления, но их очень мало.
Погоди, в цитате буквально написано, что реализация была доказательством хорошей инженерной работы, а сейчас больше нет.
Поэтому я и спросил: а что теперь является доказательством хорошей инженерной работы? Или она больше не нужна?
Опус 5, который хоть что-то начал понимать тратит минимум 10 минут на новом чате в проекте размером с человеко-год. Чтобы потратить пару минут, нужно либо просить сделать что-то очень локальное, типа конкретной функции (а это нифига не вайбкодинг), либо использовать очень тупые модели.
Звучит как предложение, которое себе противоречит. Типа в написании софта не шаришь, зато можешь проделать нехилую инженерную работу для автоматизации написания софта и отделить бизнес требования от технины
И как теперь объяснить нужность и ценность хорошей инженерной работы?
Это если есть геттер
С полем протестил клодом, получился доступ по смещению
Я так понял в момент первого вызова вычисляется смещение и jit либо генерит доступ к полю, либо генерит метод, бросающий исключение.
Очень быстро. А ещё мы скоро узнаем объём, который можно без боли чисто вайбкодить. Типа как автоматизация в екселе идёт хорошо до определённого предела, дальше боль, страдания и извращения. Сейчас этот предел расшили нейронки.
Всякое бывает. Мне приходилось подменять статическую локальную функцию в библиотеке парсинга екселя, чтобы улучшить этот самый парсинг.
Какие фишки? Чем отличается от безопасного доступа к публичному полю?