📱 Подписаться
IT и цифровая трансформация

[Перевод] Аудит сайта, который навайбкодил CEO Y Combinator

📰 Habr 👁️ 4 просмотров

PatientZero1 час назад

Аудит сайта, который навайбкодил CEO Y Combinator

Уровень сложностиПростойВремя на прочтение3 минОхват и читатели3.7KИскусственный интеллектПрограммирование*Отладка*ПереводАвтор оригинала: GregoreinЯ провёл аудит веб-сайта CEO Y Combinator Гарри Тана после того, как он похвастался, что выдаёт по 37 тысяч строк кода в день, и держит этот темп уже 72 дня. В статье я покажу, как на самом деле выглядят в продакшене 78,4 тысячи строк ИИ-слопа. При загрузке одной главной страницы http://garryslist.org в 169 запросах загружается 6,42 МБ. И это для простого новостного блога с рассылкой.

Абсолютно безумная неделя для агентской разработки. 37 тысяч строк кода в пяти проектах. И мы продолжаем ускоряться.Главная страница отправляет каждому посетителю по 28 ТЕСТОВЫХ ФАЙЛОВ. Не просто результатов тестов, а реальных тестовых обвязок. membership_form_controller.test (89 КБ), media_grid_controller.test (31 КБ), story_composer_controller.test (19 КБ)... 300 КБ кода тестов. Все они возвращают HTTP 200. Все активно скачиваются, файл HAR не обманет.

Кроме того, она скачивает 78 контроллеров Stimulus, в том числе для...

• ИИ-генерации изображений
• Извлечения голоса
• Генерации видео
• Лепестковых диаграмм
• Проверки черновиков
• Вычислений Voice Lab
• И буквально шаблона «Hello World» Rails (hello_controller.js, 157 байт)Итого передаётся 154 КБ. Ничего из этого не применяется на главной странице, но браузер всё равно это всё загружает.

Больше всего мне нравится история с логотипом. Один и тот же медведь загружается... 8 раз на каждую загрузку страницы: 3 копий в PNG, 2 варианта в WebP, 2 варианта в AVIF и фавиконка 512x512.

Один из файлов AVIF имеет размер 0 байт.

Пустой файл.

Ошибка преобразования файла, которую опубликовали и загружают в продакшене. Полный объём: 654 КБ на два логотипа.

Но основную нагрузку составляют изображения из статей, передаваемые с CloudFront в виде сырых несжатых PNG:

• Изображение 1: PNG на 2,07 МБ
• Изображение 1: PNG на 1,99 МБ
• ...Браузер отправляет > Accept: image/avif, image/webp, в явной форме запрашивая современные форматы. Сервер игнорирует просьбу и отправляет 4 МБ сырых PNG. В формате WebP они суммарно весили бы 200-400 КБ. И это 4 МБ, потраченных впустую лишь на два изображения.

Другие интересности из аудита:

• 520 KB редактора форматированного текста Trix (передаётся 120 КБ), загружаемые на страницу, предназначенную только для чтения (это попало сюда из бэкенда?)
• 47 изображений с пустым alt=""... на сайте, «вовлекающем в общественную жизнь»
• Всё содержимое страницы рендерится в DOM дважды (мобильная + десктопная версии)
• Дублирующиеся теги <title> в <head>
• Пустой файл CSS (только комментарий с манифестом, хэширован по содержимому и передаётся сервером)
• Аналитика PostHog проксится через /s/, чтобы... обходить блокировщики рекламы, как написано в его собственном комментарии к кодуИсходный код в буквальном смысле содержит такой комментарий: // Load SDK from our proxy (bypasses ad blockers). Некоммерческая «организация, занимающаяся вовлечением граждан в общественную жизнь» согласно классификации 501(c)(4) Налоговой службы США, активно старается обходить инструменты обеспечения конфиденциальности своих читателей, чтобы следить за ними пристальнее. При этом она передаёт в продакшен тестовые файлы, пустое поломанное изображение и 4 МБ сырых PNG.

Для контекста: главная страница Hacker News, поддерживаемая собственной организацией Гарри Y Combinator, делает 7 запросов и передаёт 12 КБ. Страница Гарри делает 169 запросов и передаёт 6,42 МБ: она в 562 раз тяжелее. Даже если не учитывать изображения, 73% передаваемого объёма — это мусор.

ИИ и LLM — потрясающие инструменты, я сам пользуюсь ими каждый день и даже сжёг в прошлом году больше трёх миллиардов токенов (2,5 миллиарда в одном только Cursor), но ИИ увеличивает масштабы того процесса, который ты подаёшь ему на вход, в том числе и отсутствие процесса. Сайт Гарри — пример того, что происходит, когда заменяешь ревью кода счётчиком ежедневного выпуска фич. Ударный режим Duolingo для git push. Автоматизации делают именно то, что им скажут. И никто не сказал им, что нужно остановиться.

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

Дополнительный контекст: когда семнадцатилетний разработчик (@xiaonweb) вежливо сообщил, что хвастаться количеством строк глупо, Гарри в ответ публично обозвал его «зарабатывающим хайп» подростком. Этот подросток написал в 17 лет движок браузера на Rust: токенизатор HTML, каскад CSS, структуру box model и GPU-рендерер на wgpu, после чего опубликовал технический анализ, продемонстрировав более глубокое понимание работы веба, чем у большинства сениор-разработчиков, с которыми я работал (в том числе и у меня, потому что я никогда не копал вглубь).

Сравните это с нацеленным на «выпуск» человеком, президентом Y Combinator, многомиллиардного вершителя судьб стартапов, который массово генерирует код при помощи 113 сессий Claude в неделю, считает строки, как стрики в Duolingo, и выпускает в продакшен файлы тестов, пустые 0-byte AVIF и 4 МБ несжатых PNG. Да, отлично, оскорбляй подростка на своём основном аккаунте.

@garrytan: «Вы написали это, но троллите мои посты? Не понимаю. Думаю, вы поняли, в чём смысл, но предпочитаете зарабатывать хайп».Теги:• вайб-кодинг
• нейрослоп
• аудит кодаХабы:• Искусственный интеллект
• Программирование
• Отладка

Получайте больше инсайтов о систематизации бизнеса

Подписывайтесь на Telegram-канал Business Operations — ежедневные материалы о бизнес-процессах, операционном управлении и повышении эффективности

💬 Подписаться на канал