Фундаментальные знания по основам программирования. Всё о вебе: @tproger_web Типичный программист: @tproger IT Юмор: @ithumor Новости IT: @your_tech Инструменты для программистов: @prog_tools Всё о Python: @zen_of_python Мобильная разработка: @mobi_dev Правила общения: tprg.ru/rules Сайт: tprg.ru/site Разместить рекламу: t.me/tproger_sales_bot
Публикации канала
Лента каналаКак сделать прилипающие заголовки списка на CSS Соберите список контактов, в котором буква группы остаётся сверху, пока имена прокручиваются под ней. Для заголовка достаточно position: sticky и top: 0, но его движение ограничивает родительский блок. Оберните каждую группу вместе с заголовком в отдельный контейнер. Когда контейнер уйдёт за верхнюю границу, его заголовок освободит место следующему. Самому списку задайте высоту и вертикальную прокрутку. Непрозрачный фон не даст тексту просвечивать, а z-index разместит заголовок поверх строк. В интерактивных примерах с HTML и CSS можно сравнить два варианта: заголовки сменяют друг друга или накапливаются сверху. Повторите оба и уберите обёртки групп: так сразу станет видно, как структура страницы задаёт границы position: sticky.
10Как извлекать данные из объектов и массивов в JavaScript Деструктуризация создаёт отдельные переменные из значений объекта или массива одной строкой. У объекта свойства выбираются по имени: const { name, age } = person. У массива важна позиция: const [first, second] = colours. Попробуйте запустить оба примера и поменять исходные данные. Затем переименуйте переменную через { name: fullName } и задайте значение по умолчанию: { size = "medium" }. Оно пригодится, если свойства size в объекте нет. Короткие примеры деструктуризации также показывают пропуск элементов массива, чтение свойств прямо в параметрах функции и работу с вложенными объектами. Последний вариант лучше оставлять неглубоким, иначе запись становится трудной для чтения.
11Семь ошибок индексации PostgreSQL и как их проверить Индекс помогает PostgreSQL быстрее находить строки, но при каждой вставке, правке и удалении база обновляет все индексы таблицы. Поэтому индексы «на всякий случай» замедляют запись. Ещё два частых промаха: индекс по полю с парой значений и неверный порядок колонок в индексе из нескольких полей. Возьмите один медленный SELECT-запрос и запустите EXPLAIN ANALYZE: команда покажет реальный план, число прочитанных строк и затраченное время. Если большая таблица сканируется целиком ради малой выборки, проверьте, соответствует ли индекс условиям запроса. Разбор семи ошибок индексации даёт SQL-примеры, способы найти неиспользуемые или занявшие лишнее место индексы и варианты исправлений.
18Как найти ошибку в Python с подсказкой ИИ, а не готовым ответом Возьмите функцию вычисления среднего, которая делит сумму чисел на len(numbers) - 1. Для списка [80, 90, 70, 100] она получает 340 / 3 вместо ожидаемых 85. Сначала запустите код и сравните фактический результат с ожидаемым. Затем попросите ИИ не исправлять функцию, а указать, какую часть вычисления стоит проверить. Найдите ошибку самостоятельно и добавьте проверки: среднее четырёх чисел равно 85, двух чисел равно 15, одного числа равно самому числу. После этого передайте пустой список: так обнаружится деление на ноль, которого первая правка не устранила. Для других задач пригодится схема из пяти этапов: собрать контекст, поставить диагноз, получить подсказку, проверить исправление и объяснить причину ошибки.
18Как посчитать книги по жанрам и не перепутать WHERE с HAVING Возьмите таблицу из шести книг и получите по одной строке на каждый жанр. GROUP BY genre объединит книги одного жанра в группу, а COUNT(*) посчитает строки внутри неё: SELECT genre, COUNT(*) AS total_books FROM books GROUP BY genre; Затем замените подсчёт на SUM(price) или AVG(price), чтобы найти сумму или среднюю цену книг каждого жанра. Если нужно убрать отдельные книги до группировки, используйте WHERE. Для отбора уже посчитанных групп нужен HAVING, например HAVING COUNT(*) > 1. В готовом наборе данных и запросов можно повторить примеры в PostgreSQL и проверить частую ошибку: обычное поле в SELECT должно входить в GROUP BY либо обрабатываться функцией вроде COUNT.
18Как устроен разбор аргументов командной строки в Rust Аргументы командной строки — это параметры, которые передают программе при запуске. С ними один и тот же инструмент может выбирать режим работы без правок в исходниках. Для новичка это следующий шаг после программы, которая всегда выполняет один сценарий. Подход на базе getopts позволяет описывать команды и параметры вместо ручного разбора строки, добавлять вложенные опции и флаги, а при неверном вводе показывать подсказки. Статью стоит читать как обзор устройства такого решения, а не как пошаговый урок. Для практики соберите небольшой прототип, запустите его с корректными и ошибочными параметрами и сравните вывод. Затем добавьте собственную опцию: так станет видно, как параметры запуска меняют поведение программы и где нужно обрабат…
Читать целиком16
Подписчики
148
Публикации
378
Обновление
1 октября 2026 г.
Первая публикация
24 мая 2026 г.
Активность канала
За 7 дней
18
публикаций
За 30 дней
102
публикаций
Просмотров за 90 дней
6 511
Ср. просмотров на пост
49