🦀 Почему dbg! всё ещё удобнее отладчика
Команда Rust опубликовала результаты опроса более 2300 участников. Самыми популярными подходами оказались вывод в консоль и dbg!: для небольшого сбоя они часто проще настройки отладчика.
В результатах опроса видно, что мешает работе: значения enum и коллекций отображаются неудобно, переменные не всегда доступны, а пошаговая отладка async-кода вызывает сложности. Это ответы участников опроса, а не статистика всех разработчиков Rust.
Для авторов библиотек есть полезная деталь: атрибут debugger_visualizer позволяет включить визуализаторы в отладочную информацию. Поддерживаются Natvis и GDB pretty printers. Пользователю вашей структуры данных будет проще увидеть её содержимое, чем разбирать внутренние поля.
🐸 Библиотека программиста
Команда Rust опубликовала результаты опроса более 2300 участников. Самыми популярными подходами оказались вывод в консоль и dbg!: для небольшого сбоя они часто проще настройки отладчика.
В результатах опроса видно, что мешает работе: значения enum и коллекций отображаются неудобно, переменные не всегда доступны, а пошаговая отладка async-кода вызывает сложности. Это ответы участников опроса, а не статистика всех разработчиков Rust.
Для авторов библиотек есть полезная деталь: атрибут debugger_visualizer позволяет включить визуализаторы в отладочную информацию. Поддерживаются Natvis и GDB pretty printers. Пользователю вашей структуры данных будет проще увидеть её содержимое, чем разбирать внутренние поля.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥7👾2
🛠 Инструмент деплоя сменили. Что считать успехом?
В старом пайплайне всё понятно: команда завершилась без ошибки — идём дальше. После миграции выясняется, что никто отдельно не записал, какая версия должна работать, сколько реплик нужно и какой уровень ошибок допустим.
Автор руководства на TypeScript выносит эти условия в отдельную спецификацию. Два исполнителя получают один контракт и возвращают данные для проверки: версию, доступные реплики, долю ошибок и задержку.
Сравнивать можно результат операции, даже если шаги внутри различаются. Примеры учебные, в памяти, но вопрос для своего CI/CD вполне практический: при смене инструмента вы переносите команды или сохраняете условия, при которых деплой считается успешным?
🐸 Библиотека программиста
В старом пайплайне всё понятно: команда завершилась без ошибки — идём дальше. После миграции выясняется, что никто отдельно не записал, какая версия должна работать, сколько реплик нужно и какой уровень ошибок допустим.
Автор руководства на TypeScript выносит эти условия в отдельную спецификацию. Два исполнителя получают один контракт и возвращают данные для проверки: версию, доступные реплики, долю ошибок и задержку.
Сравнивать можно результат операции, даже если шаги внутри различаются. Примеры учебные, в памяти, но вопрос для своего CI/CD вполне практический: при смене инструмента вы переносите команды или сохраняете условия, при которых деплой считается успешным?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍6🙏2
Forwarded from Библиотека ИИ для айтишников
Если приходилось уходить с одного ИИ-инструмента на другой, что стало главной причиной?
Anonymous Poll
29%
Качество ответов и кода стало не устраивать
14%
Упёрся в лимиты или не хватает функций
10%
Цены кусаются
18%
Проблемы с доступом: блокировки, нужен VPN
3%
Сложности с оплатой
3%
Стало неудобно работать
23%
Не менял инструмент — сижу на привычном
👾9❤3
Forwarded from Библиотека ИИ для айтишников
Почему разработчик планирует отдавать больше задач Claude
Винсент Шмальбах описал план перераспределить расходы на ИИ: больше работы отдавать Claude, а Codex сохранить для части задач.
К решению его подтолкнули затяжные сессии. По наблюдениям автора, агент иногда часами продолжал проверки и добавлял соседние задачи. Квота расходовалась, а момент, когда можно принять результат и двигаться дальше, было трудно предсказать.
В личном разборе Шмальбах связывает эти эпизоды с условиями подписки и затратами на собственные проекты.
#ии #инструменты
🐸 Библиотека ИИ для айтишников
Винсент Шмальбах описал план перераспределить расходы на ИИ: больше работы отдавать Claude, а Codex сохранить для части задач.
К решению его подтолкнули затяжные сессии. По наблюдениям автора, агент иногда часами продолжал проверки и добавлял соседние задачи. Квота расходовалась, а момент, когда можно принять результат и двигаться дальше, было трудно предсказать.
В личном разборе Шмальбах связывает эти эпизоды с условиями подписки и затратами на собственные проекты.
#ии #инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6👾5💯4😍3❤2👍2
Запрос дошёл до контроллера, прошёл несколько сервисов, обратился к базе и платёжному провайдеру. Отдельные строки логов показывают события, но собрать из них путь одного запроса бывает непросто.
В руководстве по NestJS Observe разбирают наблюдаемость с контекстом фреймворка: контроллеры, провайдеры, guards и interceptors помогают понять, где выполнялась работа и куда ушло время.
Логи описывают события, метрики показывают тенденции, трассировка связывает этапы операции. При выборе инструмента учитывайте весь стек: глубокий контекст NestJS полезен его командам, а для сервисов на разных языках может быть важнее общая архитектура на OpenTelemetry.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👏4🥰2
Сократили вывод команды, чтобы сэкономить токены. Агенту не хватило детали — он снова открыл файл или повторил команду. Один ответ стал дешевле, но вся задача потребовала больше работы.
В экспериментах GitHub Copilot команда столкнулась именно с этим. Поэтому исходники и diff сохраняют, результаты поиска перегруппировывают без потерь, а повторяющийся шум сборки и тестов сокращают выборочно.
Часть экономии дала уборка лишнего форматирования, которое агент уже не использовал. Если оптимизируете своего агента, считайте стоимость завершённой задачи, число повторных действий и качество результата. Минимальный ответ инструмента может оказаться не самым выгодным.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👾10
Добавили очередь, разделили сервис, поменяли базу — а в документации всё ещё старая картинка. Если схема описана кодом, её изменения можно обсуждать в том же PR.
В руководстве по Python Diagrams показывают, как собрать схему из узлов, связей и кластеров. Graphviz отвечает за отрисовку, а в Python вы задаёте компоненты и направление потока данных.
Исходник можно хранить рядом с проектом и генерировать изображение при сборке документации. Схема сама не узнает, что вы добавили сервис: обновлять её всё равно придётся. Зато у изменений появятся история и ревью.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
В архивном треде r/PostgreSQL автор отключил последовательное сканирование, чтобы база использовала индексы. По его замерам, запрос стал выполняться около 80 секунд вместо 18.
Индекс не обязан ускорять чтение всей таблицы. Иногда дешевле пройти страницы последовательно, чем читать индекс и затем доставать строки из таблицы. В обсуждении первоначальное объяснение про временные файлы даже пришлось исправить — хороший повод читать весь тред.
Сравнивайте планы на своей нагрузке через
EXPLAIN (ANALYZE, BUFFERS): оценки и фактические строки, время узлов и чтение страниц. Отключение Seq Scan годится для сравнения планов, но не как универсальная настройка ускорения.Please open Telegram to view this post
VIEW IN TELEGRAM
Reddit
From the PostgreSQL community on Reddit
Explore this post and more from the PostgreSQL community
❤7👍6
Forwarded from Точка входа в программирование
Вебинар в прямом эфире уже идёт десять минут. Вы только открыли трансляцию. Что для вас важнее всего?
Anonymous Poll
13%
Минимальная задержка от живого момента.
10%
Стабильное разрешение картинки.
15%
Ровный звук.
62%
Возможность отмотать назад и вернуться в эфир.
❤4👍4👾3
В Docker Sandboxes агент работает внутри отдельной microVM. Но доступ к проекту зависит от режима: direct разрешает сразу менять исходную папку, clone даёт отдельную копию для работы.
Автор эксперимента с Claude Code проверил это на Mac: в direct агент удалил файл и создал Git hook. Удаление попало в обычный diff, а hook в .git/hooks — нет. Его не запускали.
В clone изменения остались в копии. При этом агент мог читать файлы проекта и отправить тестовое значение на разрешённый сервер. Перед запуском проверьте доступные папки и сеть; после работы в direct может понадобиться проверить больше, чем diff.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3🤔2
Forwarded from Типичный программист
Общая папка для работы Claude Code и Codex
Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так:
Папка хранит исходные материалы и решения
↓
Индекс указывает, где искать данные для задачи
↓
Claude Code планирует работу
↓
Codex выполняет задачи по его вызову
В описании этого рабочего процесса Бушар объясняет, зачем даёт агенту сведения для конкретной задачи. Начать предлагает с общей папки, короткого индекса и одного повторно используемого скилла.
#ии #инструменты
Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так:
Папка хранит исходные материалы и решения
↓
Индекс указывает, где искать данные для задачи
↓
Claude Code планирует работу
↓
Codex выполняет задачи по его вызову
В описании этого рабочего процесса Бушар объясняет, зачем даёт агенту сведения для конкретной задачи. Начать предлагает с общей папки, короткого индекса и одного повторно используемого скилла.
#ии #инструменты
👾7❤2👍2🔥2
Forwarded from Типичный программист
Типичный программист
Общая папка для работы Claude Code и Codex Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так: Папка хранит исходные материалы и решения ↓ Индекс указывает, где искать данные для задачи ↓ Claude…
Приходится ли вам копипастить данные и какие именно, когда переходите из одной нейросети в другую?
Anonymous Poll
18%
Код
28%
Описание задачи
14%
Документацию
17%
Результаты работы
19%
Настройки и контекст: историю чатов, промпты, скиллы
50%
Ничего, использую один инструмент
👏4👾4🔥3
Разработчица в Threads рассказала о неожиданном продолжении код-ревью. По её словам, после комментариев об ошибках стажёр убрал её из ревьюеров и запросил проверку у другого коллеги.
История одного автора, но вопрос для команды вполне практический: что происходит с замечаниями, когда меняется проверяющий? Новый ревьюер может заново пройти весь путь или не заметить, почему предыдущий остановил изменение.
Полезно договориться, как фиксировать блокирующие замечания и кому подтверждать их закрытие. Смена проверяющего и устранение проблемы — разные события. А у вас можно сменить ревьюера, пока его замечания остаются открытыми?
Please open Telegram to view this post
VIEW IN TELEGRAM
Threads
Рина 👩🏼💻| aйос девелопмент (@rinkolate) on Threads
😁8❤4🌚3👍2🔥2👏2😍1
🔎 Где багхантер начинает искать ошибки
Исследователь vaib25vicky выбирает сложную функцию и сначала разбирается, как она работает. Затем проверяет, как её можно использовать неожиданным для разработчика способом. Класс уязвимости зависит от самой функции.
В интервью GitHub он объясняет этот подход и отдельно напоминает: находку от ИИ нужно подтвердить самому, прежде чем отправлять отчёт.
Такой подход пригодится и при проверке собственного продукта. Возьмите сложный сценарий, проследите его шаги и проверьте, где меняются права и доступные действия. Найденное странное поведение ещё нужно воспроизвести и связать с конкретным последствием.
🐸 Библиотека программиста
Исследователь vaib25vicky выбирает сложную функцию и сначала разбирается, как она работает. Затем проверяет, как её можно использовать неожиданным для разработчика способом. Класс уязвимости зависит от самой функции.
В интервью GitHub он объясняет этот подход и отдельно напоминает: находку от ИИ нужно подтвердить самому, прежде чем отправлять отчёт.
Такой подход пригодится и при проверке собственного продукта. Возьмите сложный сценарий, проследите его шаги и проверьте, где меняются права и доступные действия. Найденное странное поведение ещё нужно воспроизвести и связать с конкретным последствием.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏5👍1
Лукаш Лалинский сделал zt — шаблонизатор, который во время
zig build превращает HTML-шаблоны в код Zig. Параметры типизированы: ошибку в имени поля или несовместимый тип компилятор замечает до запуска приложения.Сгенерированный код пишет результат в
std.Io.Writer: можно отправлять HTML в сокет или собирать его в буфере. Динамические значения экранируются по умолчанию, а URL в href и src проверяются на опасные схемы. Для сырого HTML нужно явное исключение.Автор разбирает устройство библиотеки и границы защиты: безопасные значения по умолчанию не закрывают все варианты XSS. Интересный пример того, как перенести часть ошибок шаблона из запроса пользователя в сборку.
Please open Telegram to view this post
VIEW IN TELEGRAM
Lukáš Lalinský
Type-safe HTML templating in Zig
I’ve done a lot of web development over the years. I started around the year 2000, just after PHP 3.0 was released and started taking over the web world. I’ve used all kinds of approaches for generating HTML: raw PHP, string concatenation in Python, Smarty…
👾6👍2
Forwarded from Типичный программист
🧑💻 Какие навыки помогают вам в разработке в 2026 году?
Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно?
Мы решили собрать портрет современного разработчика — и приглашаем вас поделиться своим опытом. Расскажите, какие навыки вам пригодились и как вы используете ИИ. Если обходите его стороной, нам тоже интересно узнать почему.
Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании.
👉 Пройти опрос
Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно?
Мы решили собрать портрет современного разработчика — и приглашаем вас поделиться своим опытом. Расскажите, какие навыки вам пригодились и как вы используете ИИ. Если обходите его стороной, нам тоже интересно узнать почему.
Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании.
👉 Пройти опрос
😁7❤1👍1
Выходные — хороший повод заняться тем, на что вечно не хватает времени. Например, освоить новый навык или углубиться в знакомую тему.
Вот несколько сочетаний:
Можно выбрать и другие курсы — под свои интересы и цели.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5⚡4👏2
Количество комментариев мало говорит о качестве ревью. Важно, какие реальные ошибки инструмент нашёл, какие пропустил и сколько раз поднял ложную тревогу.
GitHub представил ReviewBench — бенчмарк на 219 публичных PR на 19 языках. Эталонные находки собирали из нескольких источников: человеческого ревью, статического анализа и LLM. Результаты можно смотреть по серьёзности и типу проблем.
Так проще сравнивать инструменты под свою задачу: искать критичные баги или получать больше замечаний, принимая дополнительный шум. Для выбора в команду всё равно проверьте кандидатов на своих PR: общий результат не гарантирует такую же пользу в вашем проекте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👾3❤1
В архивном обсуждении r/ExperiencedDevs участник описал интеграционные тесты, которые коллеги избегали. Чтобы понять путь от написанного сценария до проверки, приходилось разбираться примерно в шести слоях самописной инфраструктуры.
В треде разделяют проверки одного сервиса с реальным вводом-выводом и сценарии, проходящие через несколько систем. Во втором случае больше связей и обслуживания; выбор инструмента сам по себе эту сложность не убирает.
Перед ещё одним тестовым фреймворком полезно посмотреть на обычный сценарий команды: сколько шагов нужно, чтобы запустить тест, понять падение и изменить проверку? Если ответ требует экскурсии по инфраструктуре, проблема может быть в устройстве тестов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Reddit
From the ExperiencedDevs community on Reddit
Explore this post and more from the ExperiencedDevs community
❤5
В C ноль может быть и результатом разбора строки, и признаком того, что число вообще не удалось прочитать. Поэтому проверки только возвращённого значения недостаточно.
Автор разбора сравнивает поведение glibc и musl и требования ISO C и POSIX. Проверка одного
errno тоже не переносима: при строке без числа реализации могут сигнализировать по-разному.Для случая «ничего не разобрали» передавайте
endptr и сравнивайте его с началом входной строки. Переполнение и потеря слишком малого значения требуют отдельных проверок. Небольшой разбор о том, почему привычный библиотечный вызов стоит проверять вместе с его контрактом.Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1🤔1