Открытый канал ID 69133193729337

Инструменты программиста

Полезные инструменты для программистов — бесплатные и платные

Всё о вебе: @tproger_web
IT Юмор: @ithumor
Типичный программист: @tproger
Новости IT: @your_tech
Для новичков в IT: @prog_point
Всё о Python: @zen_of_python
Мобильная разработка: @mobi_dev

Правила общения: tprg.ru/rules

Сайт: tprg.ru/site

Разместить рекламу: t.me/tproger_sales_bot

Каналов в рубрике
1 733
Место этого канала
№ 285
Открыть рубрику →

Публикации за период

По реакциям

Поиск и вся лента — после бесплатной регистрации. Свои даты — по подписке; владелец канала видит их бесплатно. Сортировка по реакциям — по подписке. Зарегистрироваться

Загрузка…

git rerere: повторное использование решений конфликтов

Git rerere запоминает, как вы разрешили конфликт, и при повторении того же содержимого с обеих сторон подставляет сохранённое решение в файл. Включить его для текущего репозитория можно командой git config rerere.enabled true.

В практикуме с командами и ожидаемым выводом конфликт в config.yml сначала решают при слиянии веток, затем отменяют слияние и выполняют rebase, перенос коммитов на другую основу. Git применяет записанное решение и останавливается для проверки.

По умолчанию файл не добавляется в индекс: нужно проверить изменения через git diff, выполнить git add и продолжить операцию. Если окружающий код изменился, прежнее решение может оказаться неверным.

#git #инструменты
Просмотры: 34
Перейти в пост Открыть в MAX Сообщить о неточности
GDB: отладка программ на C на двух примерах

GDB позволяет остановить программу на нужной строке и посмотреть значения переменных, вместо того чтобы добавлять вызовы printf и пересобирать код после каждой правки. В практическом руководстве разобраны две ошибки с исходниками и командами отладчика.

В первом примере цикл выходит за границы массива и портит среднее значение. Условная точка останова останавливает выполнение при индексе 5, чтобы увидеть лишнее чтение. Во втором программа падает при передаче нулевого указателя в strlen. Стек вызовов показывает, откуда пришёл этот аргумент.

Разбор начинается со сборки с флагом -g, который связывает машинный код со строками исходника. В конце есть шпаргалка команд и таблица решений проблем настройки, например когда отладчик не показывает переменные.

#инструменты #терминал
Просмотры: 31
Перейти в пост Открыть в MAX Сообщить о неточности
GDB: breakpoint и watchpoint отвечают на разные вопросы

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

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

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

📎 Breakpoint и watchpoint в руководстве GDB

#инструменты
Просмотры: 24
Перейти в пост Открыть в MAX Сообщить о неточности
Рецепты curl для авторизации и проверки доступа к серверу

curl позволяет воспроизводить запросы из терминала: передавать логин и пароль, сохранять cookies после входа через форму и использовать их в следующих запросах. В подборке команд для загрузки файлов, авторизации и проверки сервисов разобраны эти сценарии с примерами.

Для cookies показана пара параметров: --cookie-jar сохраняет их в файл, а --cookie читает оттуда. Так можно запросить защищённую страницу после входа.

Отдельный пример посвящён --connect-to: curl подключается к указанному серверу и порту, сохраняя имя исходного узла в заголовках запроса. Это позволяет проверить сервис напрямую, исключив балансировщик как возможную причину ошибки.

#инструменты #терминал
Просмотры: 27
Перейти в пост Открыть в MAX Сообщить о неточности
Logpoints в IntelliJ IDEA: поиск ошибок в gRPC-сервисе без остановки

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

В руководстве по отладке Java-сервиса в Docker показаны подключение отладчика и поиск причины неверной скидки: имя клиента сравнивается без учёта регистра. Затем исправление проверяют без изменения кода сервера.

Обычная точка останова мешает разбору: пока сервер стоит на паузе, истекает срок выполнения gRPC-запроса, заданный клиентом, и сервер отменяет работу. Logpoints позволяют наблюдать за обработкой без такой паузы.

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

#ide #инструменты

Рекламный пост

Просмотры: 28
Перейти в пост Открыть в MAX Сообщить о неточности
Шпаргалка по GitHub Copilot CLI: история диалога, каталоги и экспорт сессий

GitHub Copilot CLI позволяет управлять работой ИИ-помощника в терминале командами с префиксом /. Для очистки истории или смены рабочего каталога не нужно каждый раз писать запрос обычным текстом.

Если Copilot ссылается на прошлую задачу, /clear удалит историю текущего диалога. Команда /cwd покажет рабочий каталог, а с указанным путём сменит его. Через /list-dirs можно проверить, к каким директориям у помощника есть доступ.

В шпаргалке с примерами команд и их вывода есть и экспорт: /share file сохраняет историю сессии в Markdown-файл, чтобы передать коллеге ход работы или приложить его к обсуждению задачи.

#cli #инструменты
Просмотры: 32
Перейти в пост Открыть в MAX Сообщить о неточности
🧑‍💻 Какие навыки помогают вам в разработке в 2026 году?

Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно?

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

Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании.

👉 Пройти опрос
Просмотры: 29
Перейти в пост Открыть в MAX Сообщить о неточности
git range-diff: проверка изменений в коммитах после rebase

Команда git range-diff сравнивает серии коммитов до и после переноса ветки на новую базу. Одинаковые сообщения в git log не гарантируют, что код сохранился: ручное разрешение конфликта становится частью переписанного коммита.

В воспроизводимом упражнении с тремя коммитами при разрешении конфликта намеренно меняют вычитание x.patch - y.patch на y.patch - x.patch. Ошибка оказывается в коммите про оформление кода.

Разбор показывает, как сохранить исходную ветку командой git branch before-rebase и прочитать результат сравнения: знак = отмечает совпавшие изменения, ! указывает на различия. Два уровня знаков в выводе помогают найти случайную правку внутри изменённого коммита.

#git #инструменты
Просмотры: 29
Перейти в пост Открыть в MAX Сообщить о неточности
Команды Git для восстановления коммитов и переноса изменений

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

git reset --soft HEAD~1 отменяет последний коммит, сохраняя изменения подготовленными к следующему. Для уже отправленных и общих коммитов источник рекомендует git revert. Через git reflog можно найти хеш потерянного коммита и создать от него ветку.

Флаг -n у git cherry-pick переносит изменения без создания коммита, чтобы вы могли их доработать. Для stash, временно сохранённых изменений, показаны именование и выборочное применение с сохранением записи или её удалением.

#git #терминал
Просмотры: 35
Перейти в пост Открыть в MAX Сообщить о неточности
Как подключить личный GitHub и корпоративные аккаунты к GitButler

GitButler позволяет работать с личными репозиториями GitHub и корпоративными серверами GitHub Enterprise в одном Git-клиенте. Для каждого репозитория он сохраняет свой аккаунт: при переходе между проектами вручную переключать учётные данные не нужно.

В руководстве по подключению аккаунтов показаны вход через код подтверждения в браузере и подключение с токеном доступа. Для Enterprise понадобятся адрес API сервера и токен именно этого сервера.

Отдельно разобрана блокировка корпоративного сервера сетевой политикой GitButler: нужные адреса добавляют в поле extraCsp файла настроек, затем перезапускают клиент. Учётные данные хранятся локально, в зашифрованном виде в системном хранилище ключей.

#git #инструменты
Просмотры: 34
Перейти в пост Открыть в MAX Сообщить о неточности
Вся лента — после бесплатной регистрации
ВКонтакте Телеграм Одноклассники
Избранное в datool.ru

Следите за каналом в личном кабинете

Зарегистрируйтесь в datool.ru, чтобы добавить канал «Инструменты программиста» в избранное и отслеживать его показатели.

Зарегистрироваться
Для владельцев каналов

Подтвердите свой канал

Войдите или зарегистрируйтесь в datool.ru, затем добавьте нашего бота в канал по инструкции в личном кабинете. После проверки владения замок исчезнет и вам станет доступно управление каналом.

Войти или зарегистрироваться

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти