Полезные материалы по всему, что может быть интересно программисту. Обратная связь: @proglibrary_feedback_bot Актуальные мероприятия по разработке: @event_listener_bot По вопросам рекламы: @proglib_adv_bot и @proglib_adv
78 100подписчиков сейчас
22.0%ERR
36.0цитируемость
3постов/день
Русскийязык
Россиягео
Подписаться в Telegram
Данные обновлены 22.07.2020
Публикации всего: 147
🖥 Песочница есть. Файлы проекта всё ещё можно удалить
В Docker Sandboxes агент работает внутри отдельной microVM. Но доступ к проекту зависит от режима: direct разрешает сразу менять исходную папку, clone даёт отдельную копию для работы.
Автор эксперимента с Claude Code проверил это на Mac: в direct агент удалил файл и создал Git hook. Удаление попало в обычный diff, а hook в .git/hooks — нет. Его не запускали.
В clone изменения остались в копии. При этом агент мог читать файлы проекта и отправить тестовое значение на разрешённый сервер. Перед запуском проверьте доступные папки и сеть; после работы в direct может понадобиться проверить больше, чем diff.
🐸 Библиотека программиста
📊 Индекс есть. Запрос стал медленнее
В архивном треде r/PostgreSQL автор отключил последовательное сканирование, чтобы база использовала индексы. По его замерам, запрос стал выполняться около 80 секунд вместо 18.
Индекс не обязан ускорять чтение всей таблицы. Иногда дешевле пройти страницы последовательно, чем читать индекс и затем доставать строки из таблицы. В обсуждении первоначальное объяснение про временные файлы даже пришлось исправить — хороший повод читать весь тред.
Сравнивайте планы на своей нагрузке через
EXPLAIN (ANALYZE, BUFFERS): оценки и фактические строки, время узлов и чтение страниц. Отключение Seq Scan годится для сравнения планов, но не как универсальная настройка ускорения.
🔗 Разбор запроса и обсуждение
🐸 Библиотека программиста
❤ 3 👍 3
Перейти к публикации →
📊 Архитектурную схему тоже можно отправить на ревью
Добавили очередь, разделили сервис, поменяли базу — а в документации всё ещё старая картинка. Если схема описана кодом, её изменения можно обсуждать в том же PR.
В руководстве по Python Diagrams показывают, как собрать схему из узлов, связей и кластеров. Graphviz отвечает за отрисовку, а в Python вы задаёте компоненты и направление потока данных.
Исходник можно хранить рядом с проектом и генерировать изображение при сборке документации. Схема сама не узнает, что вы добавили сервис: обновлять её всё равно придётся. Зато у изменений появятся история и ревью.
🐸 Библиотека программиста
🧠 Ответ короче. Задача дороже
Сократили вывод команды, чтобы сэкономить токены. Агенту не хватило детали — он снова открыл файл или повторил команду. Один ответ стал дешевле, но вся задача потребовала больше работы.
В экспериментах GitHub Copilot команда столкнулась именно с этим. Поэтому исходники и diff сохраняют, результаты поиска перегруппировывают без потерь, а повторяющийся шум сборки и тестов сокращают выборочно.
Часть экономии дала уборка лишнего форматирования, которое агент уже не использовал. Если оптимизируете своего агента, считайте стоимость завершённой задачи, число повторных действий и качество результата. Минимальный ответ инструмента может оказаться не самым выгодным.
🐸 Библиотека программиста
❤ 6 👾 5
Перейти к публикации →
📊 API тормозит. В логах ошибок нет
Запрос дошёл до контроллера, прошёл несколько сервисов, обратился к базе и платёжному провайдеру. Отдельные строки логов показывают события, но собрать из них путь одного запроса бывает непросто.
В руководстве по NestJS Observe разбирают наблюдаемость с контекстом фреймворка: контроллеры, провайдеры, guards и interceptors помогают понять, где выполнялась работа и куда ушло время.
Логи описывают события, метрики показывают тенденции, трассировка связывает этапы операции. При выборе инструмента учитывайте весь стек: глубокий контекст NestJS полезен его командам, а для сервисов на разных языках может быть важнее общая архитектура на OpenTelemetry.
🐸 Библиотека программиста
👍 5 👏 3 🥰 1
Перейти к публикации →
Почему разработчик планирует отдавать больше задач Claude
Винсент Шмальбах описал план перераспределить расходы на ИИ: больше работы отдавать Claude, а Codex сохранить для части задач.
К решению его подтолкнули затяжные сессии. По наблюдениям автора, агент иногда часами продолжал проверки и добавлял соседние задачи. Квота расходовалась, а момент, когда можно принять результат и двигаться дальше, было трудно предсказать.
В личном разборе Шмальбах связывает эти эпизоды с условиями подписки и затратами на собственные проекты.
#ии #инструменты
🐸 Библиотека ИИ для айтишников
👏 5 👾 4 😍 2 · всего 14
Перейти к публикации →
🛠 Инструмент деплоя сменили. Что считать успехом?
В старом пайплайне всё понятно: команда завершилась без ошибки — идём дальше. После миграции выясняется, что никто отдельно не записал, какая версия должна работать, сколько реплик нужно и какой уровень ошибок допустим.
Автор руководства на TypeScript выносит эти условия в отдельную спецификацию. Два исполнителя получают один контракт и возвращают данные для проверки: версию, доступные реплики, долю ошибок и задержку.
Сравнивать можно результат операции, даже если шаги внутри различаются. Примеры учебные, в памяти, но вопрос для своего CI/CD вполне практический: при смене инструмента вы переносите команды или сохраняете условия, при которых деплой считается успешным?
🐸 Библиотека программиста
❤ 5 👍 5 🙏 2
Перейти к публикации →
🦀 Почему dbg! всё ещё удобнее отладчика
Команда Rust опубликовала результаты опроса более 2300 участников. Самыми популярными подходами оказались вывод в консоль и dbg!: для небольшого сбоя они часто проще настройки отладчика.
В результатах опроса видно, что мешает работе: значения enum и коллекций отображаются неудобно, переменные не всегда доступны, а пошаговая отладка async-кода вызывает сложности. Это ответы участников опроса, а не статистика всех разработчиков Rust.
Для авторов библиотек есть полезная деталь: атрибут debugger_visualizer позволяет включить визуализаторы в отладочную информацию. Поддерживаются Natvis и GDB pretty printers. Пользователю вашей структуры данных будет проще увидеть её содержимое, чем разбирать внутренние поля.
🐸 Библиотека программиста
🔥 4 👍 2 👾 2
Перейти к публикации →
🔐 Данные зашифрованы. Как найти нужную запись?
При шифровании со случайностью одно и то же значение каждый раз может выглядеть по-разному. Простое сравнение зашифрованных строк тогда не найдёт все совпадения.
В разборе пайплайна персональных данных показывают компромисс детерминированного шифрования: при одинаковом ключе и контексте одинаковые значения дают одинаковый результат. Поиск по равенству становится возможен, но наблюдателю видны повторы и их частота.
Если исходное значение восстанавливать не нужно, рассмотрите HMAC для сопоставления. Если нужно — отдельно продумайте доступ к расшифровке и ключам. Начните с операций, которые нужны потребителям данных: точное совпадение, диапазон и поиск по префиксу требуют разных решений.
🐸 Библиотека программиста
👍 8 🤩 4 🔥 2
Перейти к публикации →
⌨️ 150 карточек на странице. Видны только пять
Браузер может тратить время на содержимое далеко за пределами экрана. content-visibility: auto позволяет отложить часть этой работы до момента, когда блок понадобится для отображения.
В эксперименте со 150 карточками автор измеряет рендеринг в DevTools и разбирает следующий вопрос: как сохранить геометрию страницы, пока содержимое пропущено. Для этого пригодится contain-intrinsic-size с примерной высотой блока.
Значение auto позволяет повторно использовать уже измеренный размер. Начальную оценку подбирайте по своим карточкам: слишком большая или маленькая меняет положение контента при прокрутке. Проверяйте и загрузку, и скролл — часть работы вы переносите на потом.
🐸 Библиотека программиста
❤ 6 👍 5
Перейти к публикации →
Rozetked
ВИЛСАКОМ РЕД / WYLSACOM RED
[netstalkers]
Типичный программист
СТАС БОМБИТ
Andro News