Здравствуйте, Dimonka, Вы писали:
D>Здравствуйте, Doom100500, Вы писали:
D>>>>А! Ясно — понятно. Формошёпство.
D>>>Понятно, что у вас там все хардкоровые пользователи — читают голые csv, json и md файлы и руками правят настройки всего. D>>Вообще ничего такого нет. UI есть, но не для jsonов. Не все делают web-однодневки — представляешь? json-ы и другие форматы для межмашинного взаимодеиствия.
D>Время становится таким, что появилась возможность каждому пользователю дать его собственный UI. Прикинь?! UI можно генерироваь по мере необходимости в соответствии с поставленной задачей и особенностями опыта пользователя.
Для новостных сайтов — вполне даже может и подойти.
D>>>UI для слабаков. D>>Для операторов. Они видят картинки и нажимают на кнопки. А ещё есть светофор физический это тоже часть UI и показывает он сигналы, а ещё может пищать.
D>Да чего только нет. Есть ещё красный флажок на ручке туалета — типа "занято".
А есть программы работающие в цехах заводов, представляешь? Там операторы кутсы и сертификации проходят. В том числе и по управлиеную машинами, представь — через UI.
D>>>И всё потому что раньше UI было делать скучно — надо быть и немного дизайнером и немного UX специалистом и ужасно терпеливым — аккуратно создавать контролы для свойств. D>>>А сейчас UI это практически пара предложений в свободной форме (если ты правильно освоил vibecoding). D>>UI надизайнили дизайнеры. Берём и юачим из этого, намакаронив ещё и логики вокруг (хотя не стоило бы).
D>И всё это сейчас катастрофически сжимается в стоимость токенов. Факт в том, что ЛЛМы тоже могут намакаронить логику в UI, могут всё чётко разделить по слоям, могут сами сделать MCP протокол для управления и сами управлять программами без всякого UI.
Вот и стремимся к мимимуму UI, только без LLM и токенов, но используя другие нейронки — свои — обученные на каждом конкретном предприятии.
D>>>С UI приятнее работать, чем без него. UI можно показать начальству и оно покажет своему начальству, когда другие показатели не готовы. D>>>В общем конечно UI нынче не нужен, а нужны MCP, потому что у всего будет скоро только один пользователь — ИИ. Но пока для людей тоже неплохо бы что-то сделать. D>>Для облегчения процесса обучения стараемся минимизировать действия операторов, как раз используя нейронные сети, чтобы предугадать что нам нажмут основываясь на приобретённом опыте. В идеале хотим прийти к одной кнопке и показ результатов в микрофронтендах. Вот эти микрофронтэнды можно будет и вайбкодить. D>Интерфейсы с одной кнопкой скорее всего будут не нужны первыми.
Смотря в какой отрасли.
D>>Но все забывают что стоит за всем этим и там все эти LLM до сих пор только тратили время. D>Это не распарсил.
Потому что глаза надо раскрыть и вылезти из своей коробочки, где однодневки штампуются.
Здравствуйте, Shmj, Вы писали:
S>А теперь ответьте честно — пишите ли вы тесты, применяете ли TDD?
Когда код пишу сам — тесты пишу, но так, чтобы написание тестов ускоряло разработку, а не замедляло. В том числе и TDD, когда test first.
Но без фанатизма, когда покрывается вообще все, включая геттеры с сеттерами и потом если какие изменения — двойная работа, а то и десятерная, ибо тесты оказываются заточены на реализацию, и когда нужно поменять реализацию, щадолбаешься переписывать тесты, причем кода тестов в разы больше, чем кода компонентов. В крайне многих конторах 90 процентов кода это тесты, но там писец как медленно двигается разработка на деле и писец какой раздутый штат. Где реально в конторах TDD — я насмотрелся на жуть с раздутым штатом, то, что в мелкой команде делается за день одним человеком, в крупных делается месяц и толпой из 50 человек, плюс там не разработка идет, а тупо саппорт. С тестами наработал куча хороших best практик, которые приносят пользу, а не когда тесты ради тестов, как у крайне многих. И собственно именно для UI пока ни черта не выработал, на UI я вообще только перешел, причем еще прыгаю с проекта на проект и с задачи на задачу.
Так вот, именно для AI автогенеренного тесты написать проблематично. Сам AI нагенерит лютейшую жесть, которая в лучшем случае зафиксирует некорректное поведение. И если AI не справляется нормально даже с относительно простой логикой, крайне сомнительно что он напишет нормальные тесты. Будет тоже самое, сейчас некорректная просто логика, будут некорректные тесты сгенерены и задолбаешься из делать корректными. А потом задолбаешься делать чтобы они проходили. После чего выяснится, что для того чтоб поправить логику, нужно снова править тесты, и при этом AI будет их генерить снова криво. Получается двойная и тройная работа и задолбаешься этого AI поправлять. Тут просто добиться нормального поддерживаемого кода сложно и задолбаешься причесывать ручками, так как автоматом код идет крайне фиговый, даже если пишешь до фига уточнений о том, что нужно соблюдать DRY, SRP, отделять UI логику от бизнеслогики и тому подобно.
И еще проблема. То, что требуется сделать — я на деле сам не силько в курсе. Мне говорят аналитики свою боль, я пытаюсь эту боль решить. Показывая прототип и пытаясь согласовать ТЗ и т.д. Итеративно, что то показал, получил фидбек что исправить. И это затрагивает одновременно несколько сервисов плюс общие библиотеки. Это именно стандартная разработка, когда разработчик решает какую боль, должен разобраться в проблеме, выяснить как эту проблему решить в существующем окружении. И никакой AI это на деле не сделает в обозримом будущем. Как минимум по тому, что чтоб разобраться, нужно подстроиться под окружение, которое каждый раз разное, плюс тем секьюрность, пароли, ключи доступа, логи, специфические для проекта, на котором никакой AI даже близко не обучался.
Так что нет никакой работы по другому! Все как и ранее на деле. Единственное что изменилось, это ищешь не на форумах решение и какие то советы, а у AI спрашиваешь. Ответы, как и ранее, не совсем верные, так как советчики вне твоего контекста, единственное что AI отвечает сильно быстрее, и собственно реальному человеку тупо лень вникать в чужую проблему, и он 10 раз подумает, давать ли развернутый ответ или нет. Соответственно польза от AI действительно в некоторых случаях есть, и это близко к чуду. Но как и раньше — это ни черта не серебряная пуля! Хотя приоритеты в разработке может действительно поменять. И дополнительно — есть вероятность что некоторые глупые начальники поумнеют и сменят стратегию собеседований. Ибо спрашивать разворот списка в эпоху AI — это маразм. Соответственно какое то время индустрию поколбасит, еще много лет будут многие собеседовать по инерции. А теперь вопросы на собеседованиях должны будут касаться и практик использования AI. И вот твои практики, это как раз пример, когда нужно говорить no hire! Ибо если делать так, как мечтаешь ты — проекту писец, он не будет доведен до работоспособного состояния никогда при любых бюджетах. И даже если за счет огромного бюджета будет что работоспособное, при попытке изменить потребуются еще более астрономические бюджеты. Правда бюджет не поможет со сроками, сроки тоже будут огромные даже при раздутом штате.
Здравствуйте, elmal, Вы писали:
E>Так вот, именно для AI автогенеренного тесты написать проблематично. Сам AI нагенерит лютейшую жесть, которая в лучшем случае зафиксирует некорректное поведение. И если AI не справляется нормально даже с относительно простой логикой, крайне сомнительно что он напишет нормальные тесты.
И все же возьмите последние платные агенты (Codex 5.2) — и попробуйте писать в TDD. И уже сюда конкретную претензию — прошу его написать такой-то тест а оно не смогло.
Здравствуйте, Shmj, Вы писали:
S>Люди будут писать спецификации, правила приемки. Т.е. детально описывать свои хотелки.
Вот только свои хотелки потребуется описывать настолько детально, что эту спецификацию ты будешь писать на порядок дольше. Эта спецификация на деле будет сложнее и более громоздкой, чем нормальный код сейчас.
И просто для сведения. Кому важен результат — уже давно пишут DSL. Когда в каком псевдоязыке описывается что нужно сделать, на основе этого делается валидация всего этого, зачастую библиотеками делаются либо интерпретация в рантайме, либо генерация кода. В результате и UI формочки генерятся автоматически на основании DSL. И добавление типичной фичи занимает вообще минуты и без участия программистов. Без всяких AI. Я такое успешно неоднократно делал, аналитики меня практически не беспокоят и на основе моего каркаса уже сдали до фига проектов. Ко мне обращаются, когда требуется доработать DSL, ибо хотят то, на что ранее было не рассчитано. Тогда дорабатываю, в общем виде.
Давно уже есть направление, называемое No Code разработкой. Без всяких AI ассистентов. Вот только работает это на типичных проектах вроде интернет магазинов. Берешь автогенератор, кастомизируешь названием своей конторы, возможно чуток стили поправишь и фоточки специфические для конторы (которые может сгенерить и AI) — и все, разработчик не нужен. Только разработчики интернет магазины и не пишут давно, уже давно все эти генераторы написали, такое все было минимум 20 лет назад еще. А вот когда нужно усовершенствовать генератор, или сделать какой новый генератор с нуля, принципиально другой — вот тут и нужны разработчики! А если не генератор идет, значит проект не является типичным и придется для начала писать ручками. Так как специфическое окружение, специфические ограничения, совсем другие требования, все полностью нетипично. Или достаточно типично, но это ключевой продукт для конторы и каждая контора использует свое, а специализированных шаблонных либо пока нет, либо это оказывается дороже покупать у специализированных контор, чем написать самому.
И дополнительно. Я еще AI применял для частичного переписывания больших проектов с одного языка на другой. Или с крайне древних библиотек на современные. Переписывал с vue на react и с реакт 8 летней давности, на классовых компонентах, на функциональные современные. Тупо писал скрипт который прогонял все исходники через модели. И потом весьма долго и муторно исправлял косяки и добивался работоспособности уже ручками. Кстати другие коллеги это делали не через модели, а через регулярные выражения и что подобное, в принципе примерно тоже самое по времени заняло, что так до фига руками править, что так. Единственный плюс от AI — при написании скрипта конвертации меньше мозги приходилось напрягать, чем если бы ручками писал регэкспами или еще как, плюс AI я просил сам написать конвертов, вообще минимум мозги напрягал на начальной стадии. Но далее один фиг до хрена времени добивался работоспособности, это была у меня основная работа, которую AI не могло помочь сделать вообще, либо помощь была минимальной.
Здравствуйте, elmal, Вы писали:
S>>Люди будут писать спецификации, правила приемки. Т.е. детально описывать свои хотелки. E>Вот только свои хотелки потребуется описывать настолько детально, что эту спецификацию ты будешь писать на порядок дольше. Эта спецификация на деле будет сложнее и более громоздкой, чем нормальный код сейчас.
Вот это и есть ключевой вопрос и от ответа на него все зависит. Ответа есть два:
1. Спецификацию писать сложнее чем код.
2. Спецификацию писать проще чем код.
Правильный вариант — 2 — код писать в 10 раз сложнее чем спецификацию. И для кода нужны отдельные профессиональные навыки.
Т.е. в перспективе программист либо переквалифицируется на аналитика либо просто ему не остается места.
Здравствуйте, Shmj, Вы писали:
S>1. Спецификацию писать сложнее чем код. S>2. Спецификацию писать проще чем код.
S>Правильный вариант — 2 — код писать в 10 раз сложнее чем спецификацию. И для кода нужны отдельные профессиональные навыки.
Чёрта с два правильный.
Спецификацию придётся писать на некоем подмножестве языка. Строго соблюдать правила. В общем, написание спецификации будет выглядеть в точности, как написание кода. Только спецификацию невозможно ни отлаживать, ни тестировать. А если учесть, что разрабатываются не только Интернет-магазины и опердени, всё становится достаточно сложным.
Вы можете написать спецификацию, как решать СЛАУ? Или вычислять обратную матрицу? Это я о моделировании реальных процессов типа землетрясений или полёта на Луну не упоминаю.
Здравствуйте, Privalov, Вы писали:
S>>Правильный вариант — 2 — код писать в 10 раз сложнее чем спецификацию. И для кода нужны отдельные профессиональные навыки.
P>Чёрта с два правильный. P>Спецификацию придётся писать на некоем подмножестве языка. Строго соблюдать правила. В общем, написание спецификации будет выглядеть в точности, как написание кода. Только спецификацию невозможно ни отлаживать, ни тестировать. А если учесть, что разрабатываются не только Интернет-магазины и опердени, всё становится достаточно сложным. P>Вы можете написать спецификацию, как решать СЛАУ? Или вычислять обратную матрицу? Это я о моделировании реальных процессов типа землетрясений или полёта на Луну не упоминаю.
В том то и дело что нет — нужно на неформальном языке (на любом из зрелых) — описать более-менее кратко что хочешь получить. Без соблюдения правил речи — можно с матами, можно с ошибками и т.д.
Кстати интересен вопрос вхождения языков в зрелые. Вот в той же Болгарии вопрос стал — будет ли GPT понимать их язык. Т.е. это 10 млн. чел. фактически и у них свой язык, своя культура. Почему GPT должен их понимать, если это размер области? И там вопрос стал — нужно было набрать определенный объем валидных переводов популярных книг (которые бы были на англ.). Если смогли набрать — то язык состоялся и он будет полноправным среди всех других языков.
Здравствуйте, Shmj, Вы писали:
S>В том то и дело что нет — нужно на неформальном языке (на любом из зрелых) — описать более-менее кратко что хочешь получить. Без соблюдения правил речи — можно с матами, можно с ошибками и т.д.
И что мы получим в результате? Или нас результат не интересует?
Кратко — это как? "Хочу личный кабинет банка", "хочу решатель дифференциальных уравнений", "хочу ОС для бортового компьютера самолёта"?
S>Кстати интересен вопрос вхождения языков в зрелые. Вот в той же Болгарии вопрос стал — будет ли GPT понимать их язык. Т.е. это 10 млн. чел. фактически и у них свой язык, своя культура. Почему GPT должен их понимать, если это размер области? И там вопрос стал — нужно было набрать определенный объем валидных переводов популярных книг (которые бы были на англ.). Если смогли набрать — то язык состоялся и он будет полноправным среди всех других языков.
А почему обзательно на английском? В мире, насколько я помню, 4 языка, которые называют полными. Это русский, английский, немецкий и, если не ошибаюсь, французский. А что такое зрелый язык?
Здравствуйте, Privalov, Вы писали:
P>А почему обзательно на английском? В мире, насколько я помню, 4 языка, которые называют полными. Это русский, английский, немецкий и, если не ошибаюсь, французский. А что такое зрелый язык?
Русский на 8 месте. Первое место — мандарин (китайский).
Здравствуйте, Shmj, Вы писали:
S>Для начала вам нужно прочитать книгу по вайбкодингу — но не очень толстую — примерно на 100 страниц. Кто не осилит 100 страниц — не сможет вайбкодить.
То есть вы не знаете, как написать спецификацию. И примера мы не дождёмся. Вы всё время будете увиливать. Собственно, мне всё ясно.
Здравствуйте, Shmj, Вы писали:
S>Правильный вариант — 2 — код писать в 10 раз сложнее чем спецификацию. И для кода нужны отдельные профессиональные навыки.
Смотря какую спецификацию. Неполную и кривую спецификацию, которую чаще всего пишут аналитики — да, такую спецификацию писать проще, чем код. Точнее не проще, там работа совсем другая, там нужно выяснить вообще что нужно сделать в общем, с точки зрения бизнеса, а не с точки зрения технических деталей. Ибо это является просто пожеланием для программиста, программист это 10 раз проверит, задаст кучу вопросов, укажет на неточности, согласует. После чего аналитик зачастую забудет спеку поправить, и основным источником правды будет код. Зачастую в код будет даже сам аналитик смотреть, и потом выяснится, что код строго по спеке, а ошибка именно в спеке!.
А вот полную суперспецификацию, на которую можно однозначно нагенерить код, такую спецификацию написать на порядок сложнее кода. Ибо нет автоматической валидации на непротиворечивость, нет средств помощи написания, плюс спеку пишут каждый по разному. И эта спека будет зачастую более
громоздкой, чем хороший код. Собственно именно по причине сложности такую суперподробную спецификацию никто не пишет. И имеем пирамиду — общие бизнес требования, неформальные. Далее более формальная спецификация от аналитика. И далее уже разработчик из спецификации аналитика делает еще свою краткую неформальную спецификацию как объяснение идей кода. И потом уже разработчик на основании этой спецификаций пишет код. Который не дублирует спецификацию, если что, в коде до черта есть вещей, которые в спецификации не отражены, и это находится в комментариях.
Хороший код является компактнее даже неформальной спецификации от аналитика, спецификация от аналитика переводится в DSL, который интерпретируется или выполняется кодогенерация в зависимости от того, что лучше. И собтвенно сделать кучу хотелок, проанализировать, сформировать DSL максимально компактный и читаемый, при этом расширяемый и позволяющий предугадать новые фичи — это и есть работа программиста!
Аналитики на настолько низкий уровень тупо не погружаются никогда. У них другая задача — просто перевести неформальные пожелания заказчиков, который зачастую сам не знает, что хочет, в то, с чем программист уже может работать. И результат работы аналитика — это не лютая простыня на миллион страниц. Это достаточно компактный структурируемый документ. Которого достаточно для программиста, но совершенно недостаточно для полной кодогенерации какой AI моделью совсем с нуля.
А программист на уровень аналитика тоже не поднимается! Ибо для работы именно аналитиком нужно до черта осуществлять переговоров с заказчиком, зачастую придется в командировку скататься, побыть на производстве и все такое. Совершенно другая работа. Аналитик не заменит программиста, а программист не заменит аналитика — совсем другой вид деятельности. Будешь совмещать — будет фигово выполнено и одно, и другое. Я уж молчу о том, что именно пользователи чаще всего даже близко не технари и вытащить у них то, что они хотят — крайне нетривиально.
Здравствуйте, Privalov, Вы писали:
P>И что мы получим в результате? Или нас результат не интересует? P>Кратко — это как? "Хочу личный кабинет банка", "хочу решатель дифференциальных уравнений", "хочу ОС для бортового компьютера самолёта"?
Да. Но чудес не бывает, хорошую спеку по такому промпту не получишь.
Зато можно поговорить с ИИ-агентом, начав разговор с подобной реплики, и он на основе интервью наваяет вполне нормальную, подробную спеку на естественном языке.
По которой он же (или другой агент — неважно) напишет тесты.
Ну, и так далее.
На выходе — профит
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
P>>Кратко — это как? "Хочу личный кабинет банка", "хочу решатель дифференциальных уравнений", "хочу ОС для бортового компьютера самолёта"?
S>Да. Но чудес не бывает, хорошую спеку по такому промпту не получишь.
Я в курсе, что не юывает. Начинается всё с обращения заказчика примерно в такой форме.
S>Зато можно поговорить с ИИ-агентом, начав разговор с подобной реплики, и он на основе интервью наваяет вполне нормальную, подробную спеку на естественном языке.
Участие заказчика в этом разговоре обязательно. Он не всегда может внятно сформулировать требования. А работа аналитика сводится к трансляции требований заказчика ИИ-агенту.
S>По которой он же (или другой агент — неважно) напишет тесты.
S>На выходе — профит
Боюсь, что доводка будет гораздо более трудоёмкой. Фактически мы скармливаем агенту спеку. Которую он преобразует в код. И нам придётся всё время работать на уровне спеки. Лишний этап. Доводка и так отнимает 80% ресурсов.
Я когда-то пробовал гораздо более простой вариант: фортрановскую программу превратил в сишную каким-то транслятором. И сишная не заработала, как надо.
А ещё я пробовал ИИ, чтобы он преобразовал шарповую функцию отправки файла с WebRequest на HttpClient. И он не справился. Выдал пару десятков неработающих вариантов. А там всех делов было одну строчку поправить.
Здравствуйте, Privalov, Вы писали:
P>А ещё я пробовал ИИ, чтобы он преобразовал шарповую функцию отправки файла с WebRequest на HttpClient. И он не справился. Выдал пару десятков неработающих вариантов. А там всех делов было одну строчку поправить.
Бро, сколько можно? Это было 2 года назад. С тех пор все изменилось, не пиши глупостей.
Да и тогда ты не предоставил полной информации — которая у тебя была, но нам ты ее не раскрыл а требовал чтобы GPT догадался без наличия этой информации.
Сейчас ты даешь агенту задание — он пробует, запускает, анализирует ошибку, сам изменяет и пробует еще раз. И это все за секунды.
Здравствуйте, Shmj, Вы писали:
S>Бро, сколько можно? Это было 2 года назад. С тех пор все изменилось, не пиши глупостей.
Всю информацию я дал. А что чатгоаота тупа до ужаса, так это не моя проблема.
S>Сейчас ты даешь агенту задание — он пробует, запускает, анализирует ошибку, сам изменяет и пробует еще раз. И это все за секунды.
Здравствуйте, Privalov, Вы писали:
S>>Сейчас ты даешь агенту задание — он пробует, запускает, анализирует ошибку, сам изменяет и пробует еще раз. И это все за секунды. P>Ни хрена он не умеет. Только что пробовал.
А подробнее что пробовал? Установил таки Copilot и заплатил $10? Или опять халявный чатик?
Здравствуйте, Privalov, Вы писали:
S>>А подробнее что пробовал? Установил таки Copilot и заплатил $10? Или опять халявный чатик?
P>Прежде чем платить, нужно знать, за что платить. P>Молодой человек, вы случайно не в отделе рекламы чатгопоты работаете?
Давай я за тебя попробую в агенте. Говори что именно у тебя не получилось.