tgindex
Точка входа в программирование

Точка входа в программирование

Статистика

Фундаментальные знания по основам программирования Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/zrgj

Последний пост
17:14
Последнее чтение
13:31
Постов за неделю
5
Всего постов
196
Тип
открытый
Язык
русский
Категория
Технологии
В каталоге с
12 авг.
Подписчики
18 161
−28 за 4 дн.
Сутки
−4
−0,02%
Неделя
 
Месяц
 
Просмотров на пост
1 257
40 постов
Вовлечённость
6,9%
к подписчикам
Постов в день
0,7
всего 196
Упоминаний
7
каналов
Охват размещения
оценка
1/24сутки в ленте
773
1/48двое суток
885
1/72трое суток
955

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • 17:143263

    Утечки памяти в JS: почему фронтенд тормозит со временем Долгоживущие вкладки часто тормозят из-за мелких ссылок, которые не дают сборщику мусора освободить память. В JavaScript объект живёт, пока на него остаётся ссылка, и удаление последней ссылки отправляет его в следующий проход сборщика мусора. Чаще всего утечки дают забытые таймеры и обработчики событий, отсоединённые DOM-узлы, оставшиеся в массивах, и глобальные переменные без let, const или var. Замыкания тоже держат ссылки дольше, чем нужно. Проверить проще, чем кажется: в Chrome DevTools вкладка Memory покажет снимок кучи и найдёт объекты, которые висят дольше положенного. А для метаданных объектов посмотрите на WeakMap: при удалении основной ссылки данные уйдут вместе с ней. Подробнее в азборе от Sharique Siddiqui.

  • 15:123 9922103

    Куда прятать ключи API, когда работает ИИ-ассистент API-ключ, по сути пароль к сервису, который часто лежит в файле .env, а ИИ-ассистент читает его, чтобы запустить ваш проект. Проблема в том, что ключ попадает в окно диалога: ассистент может случайно вывести его в лог или выполнить чужую инструкцию из стороннего файла. Автор статьи предлагает выход: не давать ассистенту ключи напрямую. Храните их в менеджере секретов, передавайте через прокси, который подставляет ключ сам, или запускайте команды так, чтобы значение оставалось за пределами контекста. Разбор на dev.to поможет понять, как устроить это на своём первом проекте.

  • Магистратура МФТИ+Сколково для айтишников, которые хотят своё дело 14 августа закрывается приём заявлений на онлайн-магистратуру «Технологическое предпринимательство» (МФТИ + Сколково): https://tprg.ru/vptN За 2 года вы с помощью ментора-предпринимателя доведёте реальный проект от идеи до защиты: свой стартап, проект с текущей работы или проект от компании-партнёра. Формат: — полностью онлайн, живые вебинары по выходным, 8–12 часов в неделю; — семинары в группах до 10 человек, персональный ментор; — демодни с бизнес-ангелами и инвесторами; — диплом МФТИ гособразца, степень магистра. Кто учится:  Средний возраст — 34 года, география — от Лондона до Тайбэя, отрасли — от интернет-приложений до биотеха и космоса.  Как поступить: 1. До 14 августа подайте заявление на Госуслугах: «Поступление в вуз онлайн» → МФТИ → 03.04.01 «Прикладные математика и физика» → «Технологическое предпринимательство». 2. Дальше один экзамен «Специальность» (онлайн): собеседование про ваш опыт и планы + эссе + 3 задачи по математике, причём справочники и интернет разрешены, а слабая математика компенсируется собеседованием. 3. Стоимость — 445 500 ₽/семестр, есть кредит под 3%, может оплатить работодатель. Не уверены, подойдёт ли вам? Напишите Юлии, преподавателю кафедры: @BelousovaYV. Можно просто обсудить свой проект, консультация бесплатная. Реклама. МФТИ, Физтех, ИНН 5008006211, erid: 2W5zFHm1YuX

  • Как в QR-код прячут картинку, а он всё ещё работает QR-код читается, даже если его слегка поцарапать или закрыть уголок пальцем. Это не случайность: часть чёрно-белых квадратиков внутри хранит не данные, а запасную копию на случай повреждений. Её называют коррекцией ошибок. А раз этот запас есть, его можно потратить с пользой. Один энтузиаст сделал инструмент, который вписывает в QR-код целую картинку: он аккуратно подменяет часть «запасных» квадратиков так, чтобы сквозь узор проступало изображение, а код при этом всё ещё сканировался телефоном. Секрет — в дизеринге. Это старый приём, когда чёрно-белыми точками имитируют полутона: где точек больше, там глаз видит тёмное, где меньше, там светлое. Тем же способом картинку раскладывают по клеткам QR-кода. Получается красиво, но у фокуса есть предел: чем больше запаса потратить на картинку, тем хуже читается сам код. Поэтому важно не переборщить. Можете попробовать сами — инструмент бесплатный и работает прямо в браузере. #основы

  • Почему учиться в IT стало сложнее? Вайбкодинг создал иллюзию, что теперь любой может сделать продукт быстро и легко, всего лишь с парой подписок. Работает это не так: необходимость разбираться в том, как всё устроено, применять знания и читать код никуда не делась. Разбор задачи, на который раньше уходил месяц, теперь укладывается в десять минут. Именно за этот месяц набирался опыт, а теперь, хорошей базы, очень почти невозможно оценить то, что модель выдала за минуты. Почему разбираться теперь приходится глубже и быстрее, и что с этим делать — читайте на Tproger: https://tproger.ru/articles/uchitsya-v-it-stalo-slozhnee-chto-na-samom-dele-izmenil-vajbkoding

  • 8 авг.91841из ithumor
  • 6 авг.1 19514

    Как фронтендеру войти в мобильную разработку Мобильная разработка пугает, если кажется, что придётся учить Swift или Kotlin с нуля. Но есть пути, где ваши веб-навыки остаются полезны. В статье разбирают три подхода. React Native ближе всего к React-разработчикам: пишете на TypeScript/JavaScript, а на выходе получаются нативные элементы экрана. Flutter идёт другим путём: использует Dart и рисует интерфейс сам, без привязки к системным компонентам. .NET MAUI подойдёт, если вы уже знакомы с C# и XAML. Этот гайд поможет вам разобраться в ваших путях развития.

  • 4 авг.1 18563

    Как кроссчейн-мост связывает разные блокчейны Биткоин, Эфириум и Avalanche живут по своим правилам и не разговаривают напрямую. Мост решает эту проблему: он позволяет перенести актив из одной сети в другую, не нарушая правил каждой из них. В гайде по Avalanche Bridge показан простой сценарий: выбираете исходную сеть, сеть назначения и актив, а дальше работает сам мост. Для новичка в блокчейн-разработке это хороший способ понять, как разные сети обмениваются активами.

  • 4 авг.1 122512

    Как понять, что вы действительно усвоили тему, а не просто прочитали Часто после туториала кажется, что всё понятно, а на практике застреваете. Вот тест: попробуйте объяснить концепцию своими словами вслух, за 30 секунд. Без заготовленных фраз. Этот приём из статьи про собеседования, но он отлично работает при обучении. Замыкание, разница var и let, Promise против setTimeout — берите тему, которая сейчас не даётся, и расскажите её так, будто соседу по парте. Если запнулись или начали бормотать, вы нашли дыру в понимании. 30 вопросов с примерами: выберите один и проверьте себя.

  • 3 авг.1 01239

    Работающий код — ещё не значит, что проект в порядке Часто кажется, что раз программа работает, значит, всё хорошо. Автор этой заметки, самоучка на Python, проверял свою Flask-программу для пекарни пять часов и не добавил ни одной функции. Зато убрал старый код Excel, неиспользуемые импорты, лишние зависимости и рассинхрон между README, Docker и Git. Код на проде не равен репозиторию, который точно отражает текущую версию. Внутри накапливаются остатки старых спецификаций, устаревшие скриншоты и неиспользуемый CSS. В разборе вы узнаете, как проверять такое хозяйство безопасно: что удалять первым делом, зачем нужен .dockerignore рядом с .gitignore и где искать лишнее. Попробуйте пройтись по своему учебному проекту по этому же списку.

  • 1 авг.1 01447

    Разберём рекурсию в C++ так, чтобы она перестала быть магией Рекурсия: функция вызывает сама себя, пока не сработает условие остановки. В примере из статьи функция f() печатает 0, 1, 2: каждый вызов увеличивает счётчик, а при count == 3 происходит возврат. Чтобы понять, почему это работает, смотрите на стек вызовов. Каждый новый вызов сохраняется в памяти отдельной записью, верхняя выполняется первой. Стек работает по принципу LIFO: last in, first out. Когда доходит до базового случая, записи разворачиваются обратно. Разбор с примером кода поможет увидеть это на практике.

  • 28 июл.1 29264

    Три способа указать Java, где лежит файл Класс File из java.io говорит программе: «работаем с этим файлом или папкой». Но new File("test.txt") пока создаёт только объект в памяти — сам файл на диске не появляется. У File три конструктора: один принимает путь строкой, второй склеивает папку и имя файла, третий делает то же самое, но родитель уже — тоже объект File. Когда объект готов, к нему можно применять методы вроде getPath() или createNewFile(). Откройте IDE, создайте один и тот же файл тремя способами и сравните, что выводит getPath(). Разбор с примерами

  • 27 июл.1 179611

    Кто-то превратил работу PostgreSQL в SimCity Автор PGSimCity собрал интерактивную 3D-модель движка PostgreSQL: вместо очередной схемы из документации работу базы показывают через город, по которому можно бродить. Получился рабочий прототип, где сложная система отображается через привычную метафору. Визуализация помогает увидеть, как части движка связаны между собой, а не просто запомнить термины. Автор предупреждает, что модель пока ранняя и может содержать неточности, так что пока смотреть как на эксперимент, а не как источник правды. Но как способ взглянуть на Postgres иначе — отличная находка. #postgresql #sql

  • 25 июл.1 22355

    Соберите первую консольную утилиту (CLI) на Go, которая понимает команды Если вы уже пробовали Go и хотите, чтобы программа реагировала на ввод в терминале, попробуйте Cobra. Это библиотека, которая берёт на себя разбор команд, их аргументов и справки, поэтому ваш скрипт ведёт себя как настоящая утилита. Автор статьи шаг за шагом строит CLI k8s-info с командами version и cluster. Главное здесь не название, а принцип: отдельный файл под каждую команду, общий корневой файл и main.go, который запускает Execute(). Повторите за автором, чтобы увидеть, как куски кода складываются в работающую программу. После прохождения добавьте команду hello сами — это лучший способ понять, почему такая структура масштабируется.

  • 24 июл.1 15124из tproger_web

    React.memo не спасает, если в пропсы летят inline-объекты Поисковая строка тормозит список, Profiler рисует 200 лишних рендеров, а вы уже обернули всё в React.memo и добавили useCallback на обработчики. Виноват обычно один JSX-паттерн: style={{ padding: 16 }} или колбэк прямо в разметке. memo сравнивает пропсы через Object.is, а для объектов и функций это проверка по ссылке: каждый рендер родителя создаёт новую ссылку, и React снова рисует дочерний компонент. Меня убедили цифры из эксперимента: 200 memoизированных строк на один keystroke рендерились 243,9 мс, после стабилизации ссылок — 6 мс. Поэтому статические объекты выносите за пределы компонента, а useCallback добавляйте только там, где колбэк реально уходит в memoизированного потомка. Хуки «на всякий случай» не помогут: сначала меряйте в Profiler. Полный разбор с примерами

  • 23 июл.1 07359из zen_of_python

    OpenCode: ИИ-агент для Python в терминале, который не уводит код в облако Если вы предпочитаете командную строку графическим IDE, OpenCode может оказаться удобнее: он работает как TUI прямо в консоли, понимает контекст Python-проекта и рефакторит код с учётом всей кодовой базы, а не вставленного фрагмента. Для питониста тут два полезных момента. Первый — локальность: провайдер подключается из вашей среды, файлы остаются на вашей машине. Второй: встроенный Pyright и режимы Plan/Build, которые либо показывают план правок, либо применяют его сразу. Ещё AGENTS.md позволяет явно прописать правила проекта: от стиля до команд запуска. Для старта достаточно бесплатного ключа Gemini. Подробности в обзоре.

  • 20 июл.1 2624из tproger_web

    Деструктуризация в JS: когда она мешает, а не помогает Мэтт Смит разобрал, почему перестал разбивать объекты на переменные по первой же возможности. Привычка вроде const { status } = project экономит пару символов, но в длинной функции status превращается в магическую переменную: приходится листать вверх, чтобы вспомнить, откуда она взялась. Его правило: оставляйте точку. project.status сразу говорит, из какого объекта значение, а голая status — нет. То же с post.title или user.name: повторять объект не страшно, если контекст остаётся на виду. Деструктурируйте только когда объект уже очевиден из окружения — например, внутри короткого колбэка. Такой подход упрощает поддержку кода: меньше магических переменных, меньше когнитивной нагрузки, проще читать спустя месяцы. Разобрался Смит здесь.

  • 19 июл.1 239102из ithumor
  • 17 июл.1 30243

    itertools: не хранить то, что можно перебирать по одному Когда начинаешь писать циклы, легко собрать промежуточный список там, где он не нужен. Модуль itertools из стандартной библиотеки Python помогает обходиться без этих лишних коллекций: элементы создаются по запросу, не накапливаясь в памяти. Это особенно удобно для больших файлов и последовательностей, которые могут быть бесконечными. В нём три группы инструментов: бесконечные итераторы вроде count, конечные вроде chain и islice, и комбинаторные, которые перебирают варианты. Например, islice(count(1), 5) выдаст первые пять чисел, не собирая список. В статье разобрали, где itertools помогает, а где лучше обойтись без него.

  • 12 июл.1 415112из ithumor