Обновить
24

Пользователь

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

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

Думаю, вайбкодеры - те, кто вайбкодят. И это как пешеходы - любой водитель может иногда быть и пешеходом, то есть не какая-то стабильная характеристика. Менее применимо в рабочих процессах, более - в пет-проектах всяких. Вот Линус Торвальдс применял вайбкодинг в пет-проекте AudioNoise для настройки гитары. На самом деле это поле непаханое. Очень многих не устраивают чем-то чужие программы и утилитки. Раньше для непрограммистов вариант был или упрашивать добавить функцию, или нанимать программиста - долго и дорого и всё равно надо объяснять что тебе нужно. Сейчас открывается возможность написать для себя именно то, что нужно тебе лично. Вот что, мало приложений для настройки гитар? Их тысячи. Но его все они чем-то не устроили. Я уже так же писал игру-пасьянс без рекламы в подарок, симуляцию полета Артемиды к Луне, просто для себя визуализировать, утилиты на Python, которого почти не знаю, для юзер-ботов в телеграме, собирающих информацию по нужным мне критериям, скачивающих файлы, вступающих в группы с очередью запросов, кулдаун таймаутами и прочим, чтоб телеграм не сильно активно блочил. До этого всего я бы никогда не добрался если бы сам писал код. Тут я на него даже и не смотрел почти.

Да, это возможно и уже происходит. Но это запустит уже конкуренцию среди вайбкодеров, курсы и прочее. Тоже навык, который надо будет совершенствовать, а с учётом постоянного изменения и появления новых моделей, подходы тоже должны будут постоянно меняться. Если раньше писали "думай по шагам", теперь это наоборот вредно. Многие вещи, ради которых раньше писали монстроидальные промпты, теперь работают из коробки.

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

Нейронка тянет самый частый ответ. Не лучший для вашей системы, не идиому вашей кодовой базы, не решение с учётом будущих изменений, а вероятный паттерн из обучения.

Самый частый где не понял что-то? Это всё совсем не так. Если вы ей дали код своей системы, то она именно что будет учитывать его, особенно если в промпте об этом указано, а в системных промптах там чего только не указано. Недавно листал логи, так там для того, чтобы сделать фразу из 5 слов о том, что модель делает сейчас, идёт промпт на несколько экранов. Ну, это так, к слову.

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

Надуманные примеры неизвестной модели. Вот code review примера с безопасным именем файла: https://chatgpt.com/share/6a407dd0-2400-83eb-8cae-8e0211e5b58e
То есть достаточно будет даже вайбкодеру сказать нормальной модели "проверь что все предельно безопасно и меня никто не взломает" (они не такие тупые, какими вы их себе нарисовали) и она много чего поправит, ну, и скорее всего не напишет просто тот код, что приведен.

напиши простой аналог lru_cache

Ага, так и вижу себе вайбкодера, который задаёт подобные промпты. Забывается как-то для чего вообще нужны программы - решать чьи-то задачи. Если вайбкодер сделал то, что решает его задачи и полезно кому-то ещё, это купят. А всякие там кеши и безопасность уже будет допиливаться той же нейросетью при необходимости. Ну, или подключится кто-то, кто знает как пинать нейросеть. Кстати, какая модель это писала? Сомневаюсь, что Opus. Может Haiku или китайщина какая-то вообще?

Кстати, вот часто такое наблюдаю, straw man bias типичный. Строится ложный образ кого-то и выполняется критика. Я не особо вайбкодер в рабочих проектах, только в своих мелких относительно, но понял, что вайбкодинг это несколько другое понимание вообще промптов и логики работы нейросети. Уж точно, не конкретные строгие запросы, ограничивающие возможности нейросети по реализации задуманного, зато больше введение в контекст, в то, что в итоге хочется получить. Не жёсткие указания, а скорее дискуссия, из которой у модели появляется более глубокое понимание требований и она потом даёт адекватный результат. Ну, и там много на самом деле всяких техник и подходов. Часть интуитивно нащупал, сильно глубоко не копал прямо. И всякую оркестрацию агентов и харнесы они освоили получше нас с вами.

Поддерживаемый код является существенной частью эффективности.

Это не более чем технический параметр, мало кому интересный. Более того, если написание поддерживаемого кода стоит дороже, а на качество продукта это никак не влияет, только на степень понимания кода программистами, то этот параметр быстренько оптимизируется в сторону игнорирования. Сильно кто-то заботится о поддерживаемом машинном коде скомпилированной программы, например?

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

Частично согласен. Если значение задано 20 раз в разных файлах, то более высока вероятность для современных моделей, что что-то упустит, хотя уже лучше справляется чем раньше. Но часто под поддерживаемостью понимается, что логика попроще, пусть и за счёт эффективности, наглядность повыше. То есть код строится в угоду именно ограничений интеллекта, а не из соображений эффективности. Даже вот выделение в функцию кода требует накладных расходов как правило - работа со стеком и прочее. Где-то можно и повторить пару раз с разными параметрами. Но человеку проще формировать модель восприятия так, а модели может быть и всё равно. В конце концов главная метрика - эффективность решения поставленной задачи. И если она решает эффективнее человека, то какая разница какой там код? Если он для эффективного решения объективно выгоднее когда структурирован, так он и будет становиться таким по мере улучшения обучения моделей.

Тут, в целом может быть и так, но вообще многое зависит от устоявшихся привычек, которые не факт, что будут полезны с приходом нейросетей. Например, одним из важных требований выдвигают поддержание кода. Очень хорошо это понимаю, отзывается болью от изменения плохо написанных проектов, неоптимальных решений. Когда кто-то быстренько написал что-то вроде работающее, а тебе потом надо что-то по мелочи изменить и ты тратишь в 10 раз больше времени, всё переписывая, это неприятно. Но это при условии что весь код пишет человек. Если код написала нейросеть и поддерживать тоже будет нейросеть, а если что, так и зарефакторит, то так ли уже важен этот критерий? Важны другие - производительность, стабильность. Они часто бывают связаны с поддерживаемостью. А иногда и наоборот - пишется что-то лучше поддерживаемое, но хуже в плане производительности. Руководителю же важны скорость разработки и просто выполнение задачи без сюрпризов в будущем. Но и с сюрпризами будет бороться нейросеть. Так что тут многое надо ещё переосмысливать в восприятии. Как многие до сих пор ожидают, что нейросети должны сразу писать идеальный код с первого промпта и такие "Ага-а-а, не может. На помойку её. Вот человек бы..." забывая, что любые сложные задачи итеративны и поэтапны.

Согласен. Тем более, что синглтон многие вообще в антипаттерны записывают.

с точки зрения "высокой" грамматики

Кстати, вот да, высокая грамматика у них это вообще отдельная тема. Столкнулся с этим на примере условных предложений (conditionals). Давняя борьба с ними и вот хотелось бы найти приложение, которое позволит их довести до автоматизма. Русскоязычным, понятно, сильно неинтуитивны все эти прошедшие времена, там где мы используем другие "если я пойду..." (будущее), а у них - всегда варианты прошедшего. И мне еще вот всегда казалось не очень логичным разделение на типы 0-3 и ещё смешанный, при том, что англоговорящие и смешивают обе части как попало, и поотдельности используют. Чисто в плане декомпозиции сложности логичнее было бы освоить фрагменты и их комбинировать. И вот как-то попался оксфордский что ли монументальный учебник по грамматике и полез я там искать кондишиналы. И, разумеется, ничего не нашёл. Они таким вообще не пользуются, это для иностранцев кто-то придумал "упрощение". Там да, аспекты, наклонения и хрен знает что ещё - чёрт ногу сломит.

Ограничение на длительность записи обусловлено используемым провайдером для оценки произношения.

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

Сейчас я думаю, что для подавляющего большинства изучающих целесообразно начинать делать с нуля.

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

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

Конечно, пишите.

Ещё вот, вы наверняка в курсе, но на всякий случай скину находку: https://englishprofile.org/?menu=egp-online Профиль грамматики с разбивкой по уровням. Может вы по нему и делали карту. И для лексики у них там похожее есть. Как раз хорошо на эту концепцию ложится.

Интересный подход и сайт. Тоже пришёл к пониманию того, что пассивного словарного запаса недостаточно, но в какой-то мере это исправляется тренажёрами, в которых сначала показывается русское слово, а потом английское. Anki как-то всегда отпугивала сложностью, привязкой к компьютеру, не очень дружелюбным интерфейсом, использовал другие. Но да, возникает проблема не тех ассоциаций. Ты видишь слово, пусть даже русское, вспоминаешь английское и вроде бы кажется, что раз уж по русскому слову смог вспомнить, то в речи на ура будет вылетать, но не совсем так. В речи ты переключаешься на английский и возвращаться на русский для срабатывания ассоциации не успеешь и вообще неправильно. Да и ассоциация будет визуальная, а картинок со словами нет, когда говоришь. Нужна ассоциация "ощущение потребности слова - английское слово". Ну и со временем осваиваешь по несколько синонимов и не знаешь, что выбирать. Правда, решал это просто. Отключал режим написания, а в голове давал сразу все синонимы, переворачивал карточку и отмечал, вспомнилось или нет.

С LingQ довольно долго занимался и нравится сама идея - есть корпус освоенных слов, можно взять любой текст и видеть насколько хорош твой "coverage" для него. Но это неплохо на начальных этапах. Когда уровень B2-C1 основные значения основных слов выучены, а дьявол в деталях: у обычных с виду слов могут быть необычные значения, всякие сочетания. Добавишь слово как неизвестное, повылезает на обычных значениях во многих текстах, портя картинку. Вот тут нейросеть и могла бы пригодиться - об этом дальше.

Посмотрел ваш сайт. Очень интересные идеи и грамотное ненавязчивое использование нейросетей как раз там, где надо. Понятно, что это не может быть долго бесплатным, но, надеюсь, удешевление нейросетей сделает цену доступной. Режим раскладки произнесенного по фонемам очень удобный. Видел такое еще в Elsa, но там всё стало слишком заморочено и дорого. Понравилась карта звуков и карта грамматики. Сразу виден текущий уровень и это наилучшая замена любой геймификации - показывает прогресс, горизонт того, что надо освоить. Но вот всё-таки было бы идеальным дополнением иметь такую же карту ещё и для лексики, тоже по уровням A1-C2. Причём отдельными единицами можно считать даже не слова, а семантические единицы, а также добавлять туда же и сочетания слов. Какой вот смысл учить слово "побери" в русском, если оно встречается исключительно в выражении "чёрт побери"? Можно, кстати, и словоформы выделять отдельно - неправильные глаголы, исключения из множественных. Всё это ведь не появится автоматически, требует запоминания. Есть словари, где разные значения слова разделяются по уровням, оксфордский, кажется.

Тогда была бы полная картина. Вот, на A1 надо знать минимум такой набор слов, правил грамматики. Знать слова это значит эффективно использовать в 4-х режимах: чтение, аудирование, написание, использование в речи. Для всего этого, думаю, можно было бы понаделать упражнений, где, например, человек свободно (или направленно на проработку пробелов) общается с нейросетью, а по результатам она выделяет какие режимы для каких слов усвоены и на каком уровне, обновляя результаты. Это покрывает и режим LingQ - даётся текст, непонятные вещи помечаются, из них выявляются отдельно неизвестные грамматические разделы и неизвестные слова, обновляется их уровень освоения.

Посмотрел ваше расширение к Chrome. Идея хорошая, но пришлось отключить, потому что текст всплывает сразу при выделении, а как веб-разработчику, мне надо всякое тестировать и чтоб ничего не мешало. Хорошо бы настройку и альтернативный вариант.

Вот несколько пожеланий по сайту:
- В тренировке разговорной практики мне не хватало иногда времени на пересказ рассказа - долго же думаешь, подбираешь слова. Где-то там еще текст выводился и он обрезался без возможности прокрутки.
- Хоткеи можно чуть улучшить - сейчас требуют двух рук на клавиатуре (1, space, enter). Лучше что-то покомпактнее (1,2,3, например).
- Вылезло вот "convert" с ударением на "o". Даже не знал о таком, потому что значение всё-таки очень редкое, "новообращённый, неофит". Для привычного глагола - другое ударение. Можно заучить неправильно. А в предложении потом уже как раз используется обычный вариант.
- Логичным было бы выбирать англоязычный интерфейс сайта для более полного погружения.
- В упражнениях добавил слово для тренировки произношения, но хорошо бы там где-то фиксировать текущий результат, чтобы накидать сложных слов и фраз и время от времени возвращаться, дорабатывать.
- Что-то странное распознала вместо "does she record the result": "Dašė record the result." Может в промпте надо явно указать не распознавать неанглийские слова/буквы. Или вот еще: "Das schützt die Methode?"
- В режиме тренировки грамматики, и может в других тоже, нет смысла давать произность что-то, пока не было выведено ни текста, и не проиграна фраза. По запарке можно записывать непонятно что.
- Хорошо бы чтобы можно было как-то побыстрее пробежать базовую грамматику, которую точно знаешь. Сейчас там, я так понял, только с нуля всё нужно проходить. Ошибки если и есть, то только из-за того, что не замечаю когда сменяется задание - с отрицания на вопрос, например.

В общем, программа хорошая, надеюсь, получится найти баланс и сделать цену приемлемой. Понятно, что с нейросетями это не может быть бесплатным.

Я заметил, что последнее сообщение - от пользователя, с примерами и ответа на него нет 2 года.

Ну, я Ruby не знаю, предлагаете мне изучать всё, что я хочу бегло проверить нейросетью? Если даже не требуется больших изменений, я бы поостерёгся подключать такую библиотеку в продакшне.

Про код это вы сообщество переубеждайте, а не меня, какой код считается современным и удобочитаемым. Кому-то и с перфокарт на ура читать, конечно.

Про баги и саппорт всё явно не так. Вот первый попавшийся: https://github.com/weshatheleopard/rubyXL/issues/462
Там пользователь 2 года назад выложил примеры и ждёт бедняга вашего ответа.

ChatGPT не в восторге. Заметен 30-летний опыт: "Читаемость кода 5/10 Ruby-стиль старой школы, нестандартные соглашения, отключены quality metrics...
Производительность 4–5/10 Для больших файлов и массовых стилей/ячееек стоит ожидать проблем."
И issues по 2 года висят без движения.

Скрытый текст

Моя оценка: 6.5/10 как зрелая утилитарная библиотека, но 5/10 по современному качеству кода/поддерживаемости.

Вердикт: rubyXL можно использовать для умеренно сложных задач чтения/правки .xlsx/.xlsm, особенно когда важно сохранить структуру файла. Но я бы не выбирал её для тяжёлого продакшн-экспорта, сложных формул, больших файлов, строгой безопасности входных файлов или кода, который должен легко развиваться командой.

Что хорошо

Проект живой и довольно зрелый: на RubyGems есть версии вплоть до 3.4.37 от 24 мая 2026, а история релизов идёт с 2011 года. Это хороший сигнал для библиотеки такого нишевого класса. (RubyGems)

Зависимостей мало: runtime — только nokogiri и rubyzip, что снижает поверхность проблем и упрощает аудит. Это видно и в Gemfile, и на RubyGems. (RubyGems)

Архитектурно есть сильная идея: библиотека моделирует OOXML через декларативные описания атрибутов и child-node’ов. Например, define_attribute, define_child_node, define_element_name дают единый механизм парсинга/сериализации XML-объектов. Это удобно для покрытия большого OOXML-пространства.

Есть CI и матрица Ruby-версий, включая 3.0–3.4 и даже 4.0, что неплохо для совместимости.

Что настораживает

Код сильно завязан на метапрограммирование, class variables и mutable state. Например, базовый OOXML-слой активно использует @@ooxml_attributes, @@ooxml_child_nodes, class_variable_get/set, динамические accessors и send. Это рабочий, но хрупкий стиль: сложнее рефакторить, сложнее локализовать баги, выше риск неочевидных эффектов между классами-наследниками.

RuboCop подключён, но конфигурация в основном отключает важные ограничения: длину классов/методов/модулей, cyclomatic complexity, perceived complexity, parameter lists и часть naming/style правил. Это почти прямо говорит: “стиль у нас свой, автоматические quality gates мягкие”.

Тесты есть, но выглядят скорее как функциональные regression/spec tests, а не как плотный safety net. Например, parser_spec проверяет базовый parse/write roundtrip, спецсимволы, metadata, parse_buffer, но это не выглядит как исчерпывающее покрытие OOXML edge cases.

README сам честно предупреждает, что операции вставки/удаления строк, колонок и ячеек ломают формулы, которые ссылаются на перемещённые ячейки. Для Excel-библиотеки это важный функциональный риск. (GitHub)

Есть признаки проблем с производительностью/памятью: открытые PR’ы и issues обсуждают memory usage и оптимизации, включая PR, где автор измерял значительные allocations при чтении/записи.

Также есть открытые баги по edge cases: например, parse_buffer неожиданно меняет входной buffer, а формулы с внешними workbook references могут ломаться.

По категориям

| Категория          |  Оценка | Комментарий                                                                     |
| ------------------ | ------: | ------------------------------------------------------------------------------- |
| Зрелость проекта   |    8/10 | Много лет, много релизов, много пользователей/downloads.                        |
| API/документация   |    7/10 | README подробный, ограничения местами честно описаны.                           |
| Архитектура        |    6/10 | Мощная OOXML-модель, но много implicit magic и mutable class state.             |
| Читаемость кода    |    5/10 | Ruby-стиль старой школы, нестандартные соглашения, отключены quality metrics.   |
| Тестируемость      |    6/10 | RSpec + SimpleCov + CI есть, но coverage depth вызывает вопросы.                |
| Производительность |  4–5/10 | Для больших файлов и массовых стилей/ячееек стоит ожидать проблем.              |
| Риск в продакшне   | Средний | Нормально для контролируемых файлов, рискованно для сложных/чужих Excel-файлов. |

Когда я бы использовал

Использовал бы, если нужно: открыть существующий .xlsx, поправить пару ячеек/стилей/листов, сохранить файл, и входные файлы более-менее предсказуемые.

Не использовал бы как первый выбор, если нужно: генерировать очень большие отчёты, активно двигать строки/колонки с формулами, работать с нетипичными Excel-фичами, принимать произвольные файлы от пользователей, либо строить новый слой бизнес-логики поверх внутренней модели rubyXL.

Итог: библиотека практичная и живая, но качество кода скорее “работает и покрывает много OOXML-случаев”, чем “современная, чистая, легко поддерживаемая архитектура”. Для точечных задач — ок. Для стратегической зависимости в критичном продукте — только после собственных нагрузочных тестов на ваших файлах.

30 лет опыта работы с системами от 30-летней давности и полным отрицанием новейших, так ведь? Это сейчас такое себе преимущество. Тоже могу рассказывать про лет 30 опыта, но кому он интересен, мой опыт, начиная с бейсика, если нужно сделать телеграм-бота и мне надо будет разбираться несколько дней, если вдруг откажусь от нейросетей, а вайбкодер напишет за час?
Лучше приведите пример критических огрех в программах, которые вы заметили, всё-таки программистский ресурс, а не комический. Может быть тоже следствие неправильно написанных промптов.

Да нет у них там ничего. Гоняют QWEN модель только на ресурсах клиентов, вот и вся децентрализация. AGI на QWEN не создашь, а бабло на хайпе ИИ - вполне.

Такого рода приложения, наверное, в каких-то случаях полезны - ведётся строгая база, можно рисовать графики, мотивирует, всякие напоминалки можно делать, но я вот вышел на другой подход. В обычном 20$-вом ChatGPT в чате сначала просто задавал вопросы по правильному питанию, скормил ей свои данные, она подсчитала ИМТ, сказала, что можно немного убрать, заодно дала ещё ряд полезных советов. Потом я поискал программы типа вашей, но это ж очевидно бесплатная замануха и потом подсаживание на регулярную оплату. Попробовал в том же чате поскидывать ей фото еды, заодно наговаривая и описания (это еще проще, чем фото). Она выдавала довольно правдоподобные ответы. Для ряда продуктов я проверил калорийность. Но мне ж главное не просто калории, а именно персональные рекомендации в чате. Откуда бы ещё я узнал, что колбаса - не самый полезный, мягко говоря, продукт, хлеб с маслом - углеводы плюс жир, белка надо побольше, потому что при похудении в первую очередь могут мышцы страдать. А вот клубника - хоть и сладкая, наоборот низкокалорийный ("бесплатный") продукт в отличие от апельсинового сока, например. То есть я попутно общался с ней, уточнял всякие вещи, потом кидал ей фото с упаковки продуктов, выбирая цельнозерновой хлеб, например (довольно бесполезный продукт, надо сказать, и полно обманок с высокой калорийностью, сахаром, мукой высшего сорта). Попутно я упоминал ей о своём весе, получал фидбэк. То есть это уже полноценный, как там их зовут, "коуч"?

Главное, что за счёт единого чата она уже запомнила мои основные продукты, формат необходимого вывода (подсчёт калорий, отслеживание белка). Я как-то попросил оценить приём еды и она потом стала добавлять каждый раз эту 10-бальную оценку. Почему-то всегда максимум до 8 и считала это хорошим, а на 10 так и не понял что у неё надо есть. Порции по фото, конечно, примерно оценивает. Потом я купил весы, просто чтобы интуитивно понимать вес, иногда ей сообщал. Но главное, я не привязывался ко всей этой системе. Со временем уже запомнил на что надо обращать внимание, перестал ей кидать фото, какое-то время кидал текстом просто, уже заранее зная, что ответит. То есть она помогла выработать интуицию и понимание что полезно, что нет, где калорий много, как балансировать еду. Сейчас уже ей в чат не кидаю, но может будут еще вопросы какие-то. Результатами доволен, приближаюсь к верхней границе ИМТ (25), хотя там и было превышение может килограммов 5 всего. Но и прошло пара месяцев. Помимо калорийности много всего узнал о своём питании.

1
23 ...

Информация

В рейтинге
3 119-й
Зарегистрирован
Активность