Библиотека программиста
78K subscribers
4.73K photos
295 videos
98 files
7.87K links
Все самое полезное для программиста в одном канале.

Наши курсы: https://clc.to/Jil6fg

По рекламе: @tproger_sales_bot

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Как правило против ложных срабатываний ослепило линтер

Автор линтера не проверял поле tools: список допустимых инструментов меняется, и сохранённая копия быстро устаревает. Защита от лишних предупреждений скрыла ошибки синтаксиса, для которых список вообще не нужен.

В четырёх конфигурациях стояло tools: *. Документация не считает одиночную звёздочку допустимым шаблоном, а для доступа ко всем инструментам советует убрать поле. Четыре зелёных прогона ошибку не заметили, ручное чтение заметило.

Разбор слепого пятна советует проверять исключения: нет ли внутри них ошибки, которую можно найти без внешних данных.
❤9👏6🙏5🎉4👾3❤‍🔥2🔥2🌚2⚡1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🧹 Claude Code умеет чистить старые промпты

У Anthropic есть команда

/claude-api-prompt-audit


которая проверяет CLAUDE.md, AGENTS.md, skills и промпты.

📍 Она находит старые конструкции, которые больше не помогают моделям: лишние MUST/ALWAYS, think step by step, устаревшие примеры и конфликтующие правила.

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20🔥8🌚5👍4😁4💯4😢3🥰2👾2
🔥 Курс «ИИ для разработчиков» уже стартовал

И мы решили открыть первое занятие всем — можно просто взять и посмотреть, что происходит внутри курса.

⏬ ⁠Первое занятие — в открытом доступе

А дальше — практика на собственном проекте. Ваш код: контекст, планирование, subagents, тесты, ревью и PR.


По ходу работы разберёте MCP и научитесь контролировать расходы на модели.

Если хотите попасть в этот поток — ещё не поздно, присоединяйся 🫡
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤8😍5🔥4🤔4🎉4🙏4🤩3😁2🌚2
Как ускорить Quicksort на C, сократив ветвления

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

На Apple M1 сортировка 50 млн чисел заняла 1,70 секунды вместо 3,70. После дополнительных оптимизаций вариант показал 0,86 секунды против 1,19 у std::sort. На Intel Xeon соотношение другое, поэтому результат нужно проверять на своём процессоре.

В разборе с кодом на C показаны буфер, защита от неудачного разбиения и обработка малых участков.
❤13👍13😁11😍6🔥5🥰5👏5👾5
This media is not supported in your browser
VIEW IN TELEGRAM
⌨️ Google Translate, подвинься

LibreTranslate — переводчик, который живёт прямо на твоём ПК.

⬆️ ~40 языков
⬆️ без интернета
⬆️ бесплатно
⬆️ open source

А значит, можно переводить даже если вырубили свет или заглушили связь 😈

🔗 Ссылка на GitHub

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤11😁8😍4💯4⚡3🙏3😢2🌚2👾2
Как модернизировать устаревшее приложение с ИИ без полного переписывания

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

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

Функциональность лучше переносить небольшими частями, а ИИ использовать для анализа, тестов и повторяющихся преобразований. Решения о том, что сохранять, остаются за инженером.

Полный процесс миграции разобран на TypeScript и Vitest.
❤12👏6👍5😁5🌚5🎉4👾4🙏3⚡2🤩2
Как сделать системную утилиту понятнее и приятнее

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

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

Подход команды MacPaw к служебным приложениям пригодится и для внутренних инструментов: человек должен понимать, что произошло.
❤8😢7🤔6💯5👍4🔥4🎉4❤‍🔥3🙏2😍2
👩‍💻 Что на самом деле происходит внутри Go map?

После Go 1.24 обычный map внутри работает уже не так, как раньше: вместо старой схемы с overflow buckets используется Swiss Tables.

И там довольно много интересного: хеш делится на части, поиск идёт группами по 8 слотов, SIMD сразу сравнивает несколько значений, а при росте таблица может дробиться.


📍 В статье всё это разбирают буквально по шагам — от m["cow"] = 4 до устройства directory и таблиц.

Если хочется понять, почему Go map работает быстро, а не просто знать, что он O(1) — почитать стоит.

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤‍🔥5👍5🙏5⚡4🤩4🥰3👾2💯1
Почему Big O недостаточно для выбора структуры данных в C++

Автор создал hashbrowns, набор тестов для массивов, связных списков и хеш-таблиц. В замерах линейный поиск по массиву обгонял хеш-таблицу до примерно 150 элементов: вычисление хеша съедало выигрыш от быстрого доступа.

На создание тестов ушло четыре месяца: пришлось исключить влияние виртуальных вызовов, добавить прогрев процессора и фиксировать условия запуска.

Разбор устройства hashbrowns показывает, почему перед оптимизацией стоит измерять свою нагрузку: результат зависит от заполнения хеш-таблицы, ключей и удалений.
🔥8❤7🙏6🤔5😁4👍2🥰2
🖥 Git ускорили и добавили несколько полезных фишек:

🟡 git add --resolved — безопаснее закрывать merge-конфликты
🟡 поиск merge-base в некоторых репозиториях стал в десятки раз быстрее
🟡 git history drop — удалять коммиты из истории
🟡 массовая очистка уже смерженных веток
🟡 git bisect теперь может сам вернуться после нахождения проблемного коммита
🟡 Git умеет подсказывать очевидные ошибки в командах

И это только часть изменений 🔗

🔥 — пора обновляться
👾 — забираю новые команды
👍 — я всё ещё на Git 2.4

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥12❤10👾7🙏4😁3🎉2😍2
Кодить — это хорошо, а разбираться в том, что происходит за кадром, тоже полезно. Что там анализируют, зачем нужны метрики, кто такой этот ваш UX, какие задачи решает дизайн? Материалы ниже как раз об этом. Вникать во всё на сто процентов, конечно, не нужно, но базовое понимание поможет находить общий язык с коллегами и видеть чуть дальше кодовой базы.

💵 Как один лотерейный билет превратился в несколько сотен требований, десятки интеграций и пять месяцев Discovery

👍 Очнуться от мрака метрик: три истории от продакта о том, как решать неочевидные проблемы бизнеса

👨‍🎓 Как проверять продукт на UX на примере личного кабинета студента

🟠 Как тестировать пуши и диплинки в финансовом приложении

🏨 Дизайн в маркетинге: как фирменный стиль решает бизнес-задачи

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🥰6😢5❤‍🔥4🎉3🔥2💯2🤔1👾1
Как спроектировать память ИИ-агента, а не склад контекста

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

Рабочая память хранит состояние задачи, эпизодическая хранит прошлые случаи, семантическая — устойчивые факты, процедурная хранит проверенные действия. Записям нужны тип, источник, уровень уверенности и срок жизни.

Схема архитектуры памяти агента показывает, как проверять эпизоды перед превращением в знания и удалять устаревшие данные.
1👾8😁7❤5⚡4👍4🤔4😍4🤩3🌚3💯1
🔥 Последний день для разработчиков

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

На курсе «ИИ для разработчиков» собираете AI-workflow на своём проекте: от задачи и планирования до тестов, ревью и PR 🤩


Разберёте AI-агентов, MCP, контекст проекта, безопасность и контроль расходов на модели.

📍 Только сегодня, 30 сентября — скидка 10 000 ₽

Промокод: LastcallAI

🤩 ⁠Присоединиться к курсу
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10😁6👏5👾4🙏3🌚3
This media is not supported in your browser
VIEW IN TELEGRAM
Вот почему оперативная память стоит так дорого 🙄🙄🙄

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
😁46👏8🤩8😢6🌚6🔥5🤔4⚡1👍1
Как защитить API от повторного выполнения операций

Клиент отправил POST, сервер выполнил операцию, но ответ потерялся из-за тайм-аута. Клиент повторяет запрос, и без защиты сервер может второй раз создать ресурс, изменить состояние или отправить письмо.

Идемпотентный эндпоинт связывает уникальный ключ операции с отпечатком тела запроса и сохранённым результатом. Первый обработчик атомарно резервирует ключ, поэтому параллельные запросы не запускают операцию заново. Повтор с тем же содержимым получает прежний результат, а тот же ключ с другим содержимым возвращает 409 Conflict.

Контракт идемпотентного API также охватывает статус незавершённой обработки, срок хранения ключей и внешние эффекты. Например, событие для очереди записывают вместе с результатом в одной транзакции, чтобы повторный запрос не породил второе действие.
👍15🔥8🤔5👾5❤4😁4🥰3👏3💯3⚡2
Как собрать интерфейс обработки изображений на Gradio Workflow

Workflow1111 воссоздаёт большую часть возможностей AUTOMATIC1111 на одном рабочем поле: 11 конвейеров для генерации и редактирования изображений, удаления фона, создания масок, увеличения разрешения и других задач собраны из 73 узлов.

Каждый узел оборачивает функцию Python, модель, другой Gradio Space или строку набора данных. Входы и выходы становятся портами, которые разработчик соединяет в многошаговый процесс. Независимые ветви запускаются параллельно, а локальные функции могут обрабатывать данные без сетевого запроса.

Выходные узлы автоматически превращаются в REST-методы, а при включении MCP-сервера их может вызывать ИИ-ассистент. В разборе Workflow1111 показано, как связать узлы, подключить собственные функции и модели, запустить обработку на своей видеокарте и развернуть готовый интерфейс в Gradio Space.
❤8👍5🤔4💯4🌚3🔥2👏2🎉2
🎹 Что делать после ChatGPT?

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

На курсе «Разработка ИИ-агентов» разбираем всё, что нужно для этого уровня:

⬇️ RAG и работа с данными
⬇️ MCP и инструменты
⬇️ структурированный вывод
⬇️ контроль качества и стоимости
⬇️ мультиагентные системы
⬇️ AgentOps

Курс полностью в записи — проходите материалы в своём темпе, без привязки к расписанию.

⏰ 4 октября цена вырастет на 10 000 ₽.

Если давно хотели разобраться в AI-агентах — сейчас ещё можно зайти по текущей цене.

🔗 ⁠Посмотреть курс
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚7😢6😍5💯5👍3👏3
Как вручную переносить код от ИИ и не терять понимание проекта

В разборе своего рабочего процесса Анкур Сетхи описывает намеренно медленный режим: ассистент показывает изменения в чате, а автор вручную переносит каждую строку в редактор. Менять файлы, устанавливать зависимости и выполнять команды агент может только по отдельному разрешению.

По наблюдениям Сетхи, ручной набор помогает остановиться на незнакомом API или алгоритме, заметить галлюцинацию либо неудачное решение и сразу переработать код под проект. Заодно сохраняется карта кодовой базы: автор знает, где находится каждая функция и куда идти за следующей правкой.

Подход пригодится разработчикам, которым ИИ ускоряет рутину, но мешает понимать собственный репозиторий. Цена контроля: по личной оценке автора, с таким процессом он работает примерно вдвое быстрее, чем без ИИ, а не в десять раз.
❤16😁13🔥7😢4😍4
🖥 GitHub ускорил интерфейс, убрав CSS-in-JS

Иногда интерфейс тормозит не из-за запросов к API, а из-за того, как вы подключаете стили.

GitHub перевёл компоненты Primer на CSS Modules: время серверного рендеринга сократилось на 55%, а инициализации компонентов — на 25%. Стили больше не нужно вычислять через JavaScript во время рендеринга.

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

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

🔗 Разбор миграции

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🎉8😁6🔥4👏4🤔3⚡2🥰2
👀 Обработчик завершился. А горутина осталась

Она ждёт отправки в канал, но получателя уже нет. И так может ждать сколько угодно.

В Go 1.27 для таких случаев появился профилировщик утечек горутин. Он работает и в продакшене, а результаты можно изучать через pprof.

Есть ограничение: инструмент ищет горутины, навсегда заблокированные на каналах или примитивах sync. Все утечки он не поймает, зато почти не даёт ложных срабатываний.

🔗 Пример утечки и исправление

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥6🌚5❤4❤‍🔥3🎉2👏1😍1