Программирование {BookFlow}
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий. Группа в https://vk.com/bookflow. По всем вопросам @evgenycarter РКН https://clck.ru/3KoAbH
Show more📈 Analytical overview of Telegram channel Программирование {BookFlow}
Channel Программирование {BookFlow} (@bookflow) in the Russian language segment is an active participant. Currently, the community unites 15 798 subscribers, ranking 8 287 in the Technologies & Applications category and 42 430 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 15 798 subscribers.
According to the latest data from 20 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -23 over the last 30 days and by -1 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 5.36%. Within the first 24 hours after publication, content typically collects 2.53% reactions from the total number of subscribers.
- Post reach: On average, each post receives 847 views. Within the first day, a publication typically gains 400 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 8.
- Thematic interests: Content is focused on key topics such as git, программист, программирование, c++, sql.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий.
Группа в https://vk.com/bookflow.
По всем вопросам @evgenycarter
РКН https://clck.ru/3KoAbH”
Thanks to the high frequency of updates (latest data received on 21 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
Data loading in progress...
| Date | Subscriber Growth | Mentions | Channels | |
| 21 June | 0 | |||
| 20 June | 0 | |||
| 19 June | +2 | |||
| 18 June | 0 | |||
| 17 June | 0 | |||
| 16 June | +2 | |||
| 15 June | +3 | |||
| 14 June | +1 | |||
| 13 June | +1 | |||
| 12 June | 0 | |||
| 11 June | +2 | |||
| 10 June | +1 | |||
| 09 June | +1 | |||
| 08 June | +1 | |||
| 07 June | 0 | |||
| 06 June | +1 | |||
| 05 June | +1 | |||
| 04 June | 0 | |||
| 03 June | 0 | |||
| 02 June | 0 | |||
| 01 June | 0 |
| 2 | BIOS и UEFI / стадии UEFI / драйвера и протоколы
Сергей Пушкарёв — руководитель отдела разработки BIOS в YADRO.
Сергей начал работу с BIOS и UEFI ещё в университете и может очень много рассказать об этой области.
С Еленой Лепилкиной и Антоном Афанасьевым наш герой во всех подробностях разобрал, что происходит на самом низком уровне софта после того, как пользователь нажимает кнопку включения компьютера. Параллельно осветил разные подходы и типичные проблемы разработки в своей сфере, тонкости взаимодействия драйверов, а также разницу между BIOS и UEFI. А напоследок ответил, к чему приводят баги в BIOS и как стараются их избежать, если цена ошибки слишком высока.
0:00 - Тизер
1:12 - Представление Сергея Пушкарева
2:11 - Карьерный путь Сергея
4:50 - История развития BIOS и UEFI и разница между ними
11:28 - Достоинства UEFI
14:14 - Стадии работы UEFI
15:09 - Что работает до UEFI
18:25 - стадия SEC и режим Cache-Is-RAM
22:58 - стадия PEI
27:54 - переход в 64-битный режим
28:42 - PE-файлы,Terse Executable и вопросы производительности
30:46 - DXE стадия и запуск драйверов
33:02 - Протоколы для взаимодействия драйверов
37:58 - Эволюция спецификации: новые архитектуры, Device path для нового железа
40:31 - Загрузка ноутбука через Wi-Fi, разница драйверов Linux и UEFI
42:58 - Работа разработчиков BIOS
44:06 - Баги в UEFI
46:45 - Разработка UEFI под новую платформу
50:38 - Взаимодействие BIOS с BMC, Redfish
53:22 - Разработка драйвера на EDK2
59:55 - Нужен ли ассемблер разработчику BIOS
1:04:13 - Как поменялся процесс загрузки с приходом UEFI
1:05:51 - Взаимодействие BIOS и операционной системы
1:07:20 - Как UEFI работает на ARM
1:11:29 - VFR - DSL-язык для описания меню
1:14:23 - Активное использование Open-Source
1:16:22 - Рынок компаний разработчиков UEFI
1:20:33 - Разработка UEFI для системы, которой нет в железе
1:21:37 - Баги в релизах и процесс тестирования
1:25:59 - Дальнейшее развитие BIOS: ускорение работы, драйверы на Rust
1:35:07 - Заключение
источник
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 396 |
| 3 | ПОЛНЫЙ КУРС ПО CLAUDE AI, который научит вас СОЗДАВАТЬ и АВТОМАТИЗИРОВАТЬ что угодно.
Те, кто посмотрит это сегодня вечером, проснутся завтра с новым навыком.
Посмотрите и добавьте в закладки прямо сейчас.
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 580 |
| 4 | ⭐️ Shotstars — инструмент, который показывает GitHub-звёзды без розовых очков
На GitHub количество звёзд часто воспринимают как показатель качества проекта. Но есть нюанс: звёзды можно накрутить, а резкие всплески популярности не всегда означают реальный интерес сообщества.
Shotstars помогает анализировать публичные репозитории и смотреть, что происходит со звёздами на самом деле.
Что умеет:
— показывает прирост и отток звёзд;
— строит графики и HTML-отчёты;
— ищет подозрительные всплески активности;
— помогает определить возможные фейковые звёзды;
— показывает пик популярности проекта;
— считает динамику роста и регресса;
— умеет работать из CLI;
— поддерживает Windows, Linux и Termux.
Особенно полезно для тех, кто выбирает open-source проект для использования, аудита или внедрения. Можно быстро понять, перед вами живой репозиторий с нормальным ростом или «звёздный пузырь» с красивой витриной.
Установка:
pip install shotstars
shotstars_cli
GitHub-звёзды — это не всегда репутация. Иногда это просто маркетинг.
https://github.com/snooppr/shotstars
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 588 |
| 5 | 🍪 Cookies vs Sessions: В чем разница и как мы "остаемся залогиненными"?
Протокол HTTP не имеет памяти (stateless). Если вы ввели логин и пароль, при переходе на следующую страницу сервер вас уже «забудет». Чтобы этого не происходило, придумали механизмы сохранения состояния. Разбираем наглядную шпаргалку! 👇
1️⃣ Как работают Куки (Cookies)?
(Верхняя часть схемы)
• Логин: Вы вводите данные, сервер их проверяет.
• Ответ: Сервер отправляет вашему браузеру cookie - небольшой фрагмент данных (например, информацию о пользователе или токен).
• Следующий запрос: Когда вы переходите на другую страницу, браузер автоматически прикрепляет эту cookie к запросу. Сервер читает её и понимает: "Ага, это снова тот самый юзер, пускаем!".
💡 Суть: Сами данные хранятся на стороне клиента (в вашем браузере) и летают туда-сюда при каждом запросе.
2️⃣ Как работают Сессии (Sessions)?
(Нижняя часть схемы)
• Логин: Вы авторизуетесь на сервере.
• Создание сессии: Сервер создает сессию и сохраняет все ваши данные у себя (в специальной базе - Session Store).
• Ответ: Сервер отправляет браузеру cookie, но в ней лежит только уникальный ID сессии, а не сами данные!
• Следующий запрос: Браузер отправляет cookie с ID. Сервер смотрит в свою базу, находит по этому ID вашу сессию, проверяет её и выдает нужную страницу.
💡 Суть: Данные хранятся на сервере. У клиента в браузере лежит только "билетик" (ID), по которому сервер его узнаёт.
Что выбрать?
• Куки хороши для некритичных данных (тема оформления, язык, корзина товаров для неавторизованных), так как они не нагружают память сервера.
• Сессии нужны для безопасности (авторизация, банковские операции). Злоумышленник не сможет подделать данные, так как они надежно лежат на сервере.
Как правило, в современных веб-приложениях они работают в паре: сессия хранит данные на бекенде, а куки доставляют ID этой сессии в браузер.
#webdev #backend #frontend #база #шпаргалка #cookies #sessions
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 615 |
| 6 | 🔐 Как на самом деле работает электронная цифровая подпись (ЭЦП)? Разбираем по шагам!
Мы часто слышим про «цифровые подписи», но как именно математика и криптография защищают наши документы? На прикрепленной схеме отлично показан весь процесс.
Сохраняйте себе, чтобы не потерять! 📌
Процесс делится на два главных этапа: создание подписи (у отправителя) и её проверка (у получателя).
📤 ЭТАП 1: Создание подписи (Сторона отправителя)
1. Создание хэша: Берется исходный документ и пропускается через математический алгоритм - хэш-функцию (например, SHA-256). На выходе получается уникальный «цифровой отпечаток» документа. Главная фишка хэша: если изменить в документе хоть одну запятую, хэш изменится полностью.
2. Шифрование: Отправитель берет этот хэш и шифрует его своим Закрытым ключом (Private Key). Этот ключ есть только у него!
3. Готово: Зашифрованный хэш - это и есть Цифровая подпись. Она прикрепляется к оригинальному документу, и весь этот пакет отправляется по сети.
📥 ЭТАП 2: Проверка подписи (Сторона получателя)
Когда документ доходит до адресата, получателю нужно убедиться в двух вещах: что документ прислал именно заявленный автор, и что файл не подменили по пути.
1. Свой хэш: Получатель берет присланный документ и сам пропускает его через ту же хэш-функцию (SHA-256). Получает новый хэш.
2. Расшифровка подписи: Затем получатель берет прикрепленную цифровую подпись и расшифровывает её Открытым ключом (Public Key) отправителя (этот ключ доступен всем). После расшифровки он получает оригинальный хэш, который сделал отправитель.
3. Момент истины - Сравнение: Получатель сравнивает два хэша.
✅ Если они совпадают: Документ 100% подлинный. Его подписал владелец закрытого ключа, и по пути в тексте ничего не меняли.
❌ Если они разные: Документ был изменен злоумышленником при пересылке, либо подпись недействительна.
💡 Главное правило асимметричной криптографии: Подписываем - своим закрытым ключом 🔑
Проверяют нас - нашим открытым ключом 🔓
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 574 |
| 7 | Но что же такое коды Хэмминга?
Истоки коррекции ошибок.
📲 Мы в MAX
👉 @Bookflow | 714 |
| 8 | Антипаттерн: "Сначала MVP — потом нормальная схема"
Частая ошибка при старте проекта — отложить продумывание структуры базы «на потом»:
«Сейчас сделаем быстро MVP, а потом приведём БД в порядок».
И вот что часто происходит:
– MVP превращается в продакшн без переработки схемы.
– Костыли начинают множиться.
– Появляется технический долг, который сложно погасить: миграции становятся болью, связи — запутанными, а данные — ненадёжными.
Типичные симптомы:
— nullable-поля без нужды
— дублирование данных
— универсальные таблицы вроде entities или attributes
— "магические" значения в enum-полях
— отсутствие внешних ключей и индексов
Как избежать:
1. Минимум нормализации — с самого начала. Даже для MVP важно заложить понятную структуру.
2. Используй миграции сразу. Даже если это скрипт в папке migrations/, а не полноценный tool.
3. Заведи ER-диаграмму. Она не обязана быть идеальной, но уже поможет избежать хаоса.
4. Смотри в будущее. Планируешь рост? Подумай о расширяемости схемы.
5. Не стесняйся рефакторить. Лучше на раннем этапе изменить структуру, чем через год бояться сломать прод.
👉 MVP не должен значить "без архитектуры". Плохая схема — это замедление развития и боль на каждый новый фичереквест.
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 897 |
| 9 | Пишем отладчик для Linux
Part 1: Setup
https://blog.tartanllama.xyz/writing-a-linux-debugger-setup/
Part 2: Breakpoints
https://blog.tartanllama.xyz/writing-a-linux-debugger-breakpoints/
Part 3: Registers and memory
https://blog.tartanllama.xyz/writing-a-linux-debugger-registers/
Part 4: Elves and dwarves
https://blog.tartanllama.xyz/writing-a-linux-debugger-elf-dwarf/
Part 5: Source and signals
https://blog.tartanllama.xyz/writing-a-linux-debugger-source-signal/
Part 6: Source-level stepping
https://blog.tartanllama.xyz/writing-a-linux-debugger-dwarf-step/
Part 7: Source-level breakpoints
https://blog.tartanllama.xyz/writing-a-linux-debugger-source-break/
Part 8: Stack unwinding
https://blog.tartanllama.xyz/writing-a-linux-debugger-unwinding/
Part 9: Handling variables
https://blog.tartanllama.xyz/writing-a-linux-debugger-variables/
Part 10: Advanced topics
https://blog.tartanllama.xyz/writing-a-linux-debugger-advanced-topics/
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 960 |
| 10 | Слышал, тебе нравится чистый код 😂
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 848 |
| 11 | 🛠 Sentry — платформа, которая помогает быстрее находить и чинить ошибки в продакшене
Sentry — это open-source debugging platform для разработчиков: она собирает ошибки, stack trace, логи, performance-проблемы и помогает понять, что именно сломалось у пользователя.
Полезно, когда нужно не просто увидеть «что-то упало», а быстро ответить на вопросы:
▪️ где произошла ошибка;
▪️ какой пользователь её поймал;
▪️ в какой версии приложения появился баг;
▪️ какой commit или release мог всё сломать;
▪️ почему запросы стали медленнее;
▪️ какие проблемы реально влияют на пользователей.
Sentry поддерживает веб, backend, mobile и разные языки через официальные SDK. Отдельно есть self-hosted версия — её можно поднять у себя для тестов, внутренних проектов или небольших инсталляций.
Хороший инструмент для команд, которые хотят меньше гадать по логам и быстрее закрывать баги в проде.
GitHub: https://github.com/getsentry/sentry
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 1 026 |
| 12 | 💡 Топ-15 строительных блоков системного дизайна, которые стоит знать:
1. Балансировщик нагрузки (Load Balancer): Распределяет входящий трафик между несколькими серверами, предотвращая перегрузку одного из них. Повышает доступность, устойчивость к сбоям и уменьшает время отклика.
2. API-шлюз (API Gateway): Единая точка входа для всех клиентских запросов в архитектуре микросервисов. Обрабатывает маршрутизацию, аутентификацию, ограничение частоты запросов и агрегацию данных.
3. DNS (Система доменных имён): Преобразует читаемые доменные имена в IP-адреса.
4. Кэш (Cache): Хранит часто запрашиваемые данные в памяти. Существенно снижает задержки и нагрузку на базу данных.
5. CDN (Сеть доставки контента): Доставляет статический контент (изображения, CSS, JS и т.п.) с серверов, расположенных ближе к пользователю. Снижает задержки и расход трафика, особенно на глобальном уровне.
6. База данных (Database): Основное хранилище данных. Может быть SQL или NoSQL в зависимости от требований. Поддерживает запросы, индексацию, транзакции и надёжность.
7. API (Программные интерфейсы): Определяют, как сервисы взаимодействуют между собой, часто через HTTP или gRPC. Обеспечивают модульность и чёткое разделение ответственности.
8. Микросервисы (Microservices): Разделяют монолитное приложение на независимо развёртываемые сервисы. Повышают гибкость, изоляцию ошибок и масштабируемость.
9. Ограничитель запросов (Rate Limiter): Контролирует количество запросов от пользователя или сервиса в заданный период. Защищает API от злоупотреблений и обеспечивает справедливость.
10. Объектное хранилище (Object Storage): Хранит большие бинарные объекты (изображения, видео, резервные копии) с высокой доступностью и надёжностью. Примеры — AWS S3, Google Cloud Storage и др.
11. Очередь сообщений (Message Queue): Обеспечивает асинхронную коммуникацию между сервисами через очередь (например, Kafka, RabbitMQ). Позволяет слабо связать компоненты и справляться с пиками нагрузки.
12. Шардинг (Sharding): Разделение больших объёмов данных между несколькими базами или таблицами. Обеспечивает масштабирование и повышение производительности запросов.
13. Репликация (Replication): Копирование данных между узлами базы данных. Повышает отказоустойчивость и производительность чтения.
14. Консистентное хеширование (Consistent Hashing): Метод распределения данных между узлами с минимальными изменениями при масштабировании. Часто используется в кэшировании и распределённых хранилищах.
15. Система мониторинга (Monitoring System): Отслеживает состояние системы, собирает логи и метрики, отправляет оповещения при сбоях или аномалиях. Критически важна для наблюдаемости, отладки и обеспечения доступности.
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 705 |
| 13 | Алгоритм Дейкстры - это классический алгоритм на графах, который находит кратчайшие пути от одной заданной вершины (источника) до всех остальных вершин в графе.
Проще говоря, это цифровой аналог поиска самого быстрого маршрута на карте от вашего дома до любой другой точки в городе.
🔑 Главная фишка (жадный выбор)
Алгоритм работает по «жадному» принципу: на каждом шаге он выбирает ту вершину, до которой на данный момент известен самый короткий путь, фиксирует его как окончательный, а затем проверяет, нельзя ли через эту новую вершину быстрее добраться до её соседей (этот процесс называется релаксацией рёбер).
⚙️ Как он работает (на пальцах)
1. Вы стоите в начальной точке. Расстояние до неё равно 0, до всех остальных точек - бесконечность ∞ (мы их ещё не знаем).
2. Вы смотрите на всех соседей текущей точки и считаете расстояние до них. Если новый путь короче того, что был записан раньше, обновляете значение.
3. Отмечаете текущую точку как «посещённую» - сюда мы уже нашли самый короткий маршрут.
4. Выбираете среди непосещённых точек ту, до которой сейчас получилось самое маленькое расстояние, перемещаетесь в неё и повторяете шаг 2.
5. Алгоритм завершается, когда все доступные точки будут посещены.
⚠️ Важное ограничение
• Алгоритм Дейкстры корректно работает только графах с неотрицательными весами рёбер.
• Если в графе есть дороги с «отрицательным весом» (например, за проезд по участку вам доплачивают, а не вы платите), алгоритм уйдёт в ступор или выдаст неверный результат. Для таких задач используют алгоритм Беллмана-Форда.
🛠 Где применяется?
• Навигаторы и карты (Google Maps, Яндекс.Карты) - поиск кратчайшего автомобильного маршрута.
• Сетевая маршрутизация - протокол OSPF (Open Shortest Path First) использует этот алгоритм для поиска кратчайшего пути передачи пакетов данных в компьютерных сетях.
• Игры - поиск путей для юнитов или персонажей на карте.
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 742 |
| 14 | 🚀 Подборка полезных IT каналов в Max
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП | 697 |
| 15 | 🚀 Как улучшить производительность API?
Оптимизация API — ключ к быстрой и стабильной работе приложений. Вот 5 проверенных техник:
1️⃣ Пагинация (Pagination)
Разбиваем большой объем данных на страницы.
🔹 Уменьшает нагрузку
🔹 Позволяет обрабатывать большие выборки
2️⃣ Асинхронное логирование (Async Logging)
Сохраняем логи в буфер, а затем на диск.
🔹 Меньше задержек
🔹 Выше пропускная способность
3️⃣ Кэширование (Caching)
Часто используемые данные храним в кэше, а не в БД.
🔹 Быстрый доступ
🔹 Меньше запросов к базе данных
4️⃣ Сжатие данных (Payload Compression)
Сжимаем запросы и ответы.
🔹 Уменьшение объема трафика
🔹 Быстрая загрузка/выгрузка
5️⃣ Пул соединений (Connection Pool)
Повторно используем открытые соединения с БД.
🔹 Снижение накладных расходов
🔹 Повышение эффективности
📌 Используй эти подходы, чтобы ускорить свой API и улучшить пользовательский опыт.
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 940 |
| 16 | В чём разница между аутентификацией на сессиях и JWT?
Многие разработчики не знают об этом различии, хотя оно критически важно.
Большинство веб-приложений используют один из двух подходов к аутентификации:
сессии (где состояние хранится на сервере) или JWT (где состояние передаётся вместе с клиентом).
1. Аутентификация на основе сессий
Когда пользователь входит в систему, бэкенд генерирует случайный session ID, сохраняет его в кэше или базе данных и устанавливает этот ID как HttpOnly cookie в браузере. При каждом запросе браузер отправляет cookie, сервер находит соответствующую запись и восстанавливает пользовательский контекст.
Такой подход:
• сохраняет чувствительные данные на сервере;
• позволяет мгновенно завершить сессию удалением записи.
Преимущества сессий:
• 🔹 Мгновенная деактивация доступа (“выйти отовсюду”) - одной строкой: просто удалить запись из Redis или SQL.
• 🔹 Секреты никогда не покидают сервер, что снижает риск утечки.
• 🔹 Отлично подходит для малых и средних систем, где кэш - не узкое место.
Но: при горизонтальном масштабировании понадобятся «липкие» сессии или реплицированный кэш, что добавляет задержки и усложняет инфраструктуру.
2. Аутентификация с помощью JWT (JSON Web Token)
После входа сервер подписывает JWT, содержащий:
• заголовок (например, alg, typ),
• полезную нагрузку (claims - sub, role и т.д.),
• цифровую подпись.
JWT - это просто base64-строка (не шифрованная): любой может прочитать данные, но подделать их может только владелец секрета. Сервер не хранит состояние - любой узел может локально проверить подпись и доверять данным.
Преимущества JWT:
• 🔸 Беспамятный (stateless): не требует общего хранилища, подходит для микросервисов и edge-нод.
• 🔸 Удобен для SPA и мобильных приложений, напрямую работающих с бэкендами.
• 🔸 Лёгкий: помещается в заголовок Authorization или cookie.
Минус: JWT нельзя отозвать после выдачи - он действителен до истечения срока, так что «экстренный выход» или блокировка аккаунта требуют дополнительной логики.
Вывод:
• Если главное - возможность немедленно отозвать доступ, выбирай сессии.
• Если нужна масштабируемость без состояния, выбирай JWT, но помни, что токены нельзя «забрать обратно» после их выдачи.
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 902 |
| 17 | Как работает Git?
Для начала важно понять, где хранится наш код. Обычно предполагается, что существует только два места: удалённый сервер (например, GitHub) и локальный компьютер. Однако это не совсем так. Git использует три локальных хранилища на нашем компьютере, а значит, наш код может находиться в четырёх местах:
• Рабочая директория (Working directory): место, где мы редактируем файлы.
• Область подготовки (Staging area): временное место, где файлы находятся перед коммитом.
• Локальный репозиторий (Local repository): содержит закоммиченный код.
• Удалённый репозиторий (Remote repository): сервер, где хранится код (например, GitHub).
Большинство команд Git в основном перемещают файлы между этими четырьмя локациями.
Теперь вопрос к тебе: знаешь ли ты, с каким хранилищем работает команда git tag?
Эта команда позволяет добавлять аннотации к коммиту.
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 944 |
| 18 | 🔄 Git шпаргалка: в чем разница между fetch, pull и pull --rebase?
Казалось бы, все эти команды нужны для того, чтобы забрать изменения из удаленного репозитория. Но дьявол кроется в деталях (и в структуре вашей истории коммитов!).
🟢 1. git fetch
Вы скачиваете новые коммиты из удаленного репозитория (C и D), но они не сливаются с вашим кодом автоматически.
• Что происходит: Обновляется только указатель origin/main. Ваша локальная ветка main с вашими коммитами (X и Y) остается нетронутой.
• Когда использовать: Когда нужно просто посмотреть, что там нового написали коллеги, не ломая свою текущую работу.
🔵 2. git pull
Эта команда делает fetch, а затем сразу же автоматически пытается слить (merge) удаленные изменения с вашими локальными.
•. Что происходит: Создается новый специальный мерж-коммит (M), который соединяет ветку с изменениями коллег и вашу ветку. Ваши коммиты X и Y остаются в исходном виде.
•. Когда использовать: Самый частый сценарий, но будьте готовы к тому, что история коммитов превратится в «паутину» из-за обилия мерж-коммитов.
🟣 3. git pull --rebase
Комбинация fetch + rebase. Вместо создания мерж-коммита, Git берет ваши локальные коммиты и «переносит» их на самый верх свежих изменений из удаленного репозитория.
•. Что происходит: Старые коммиты X и Y стираются, а вместо них создаются новые X' и Y', которые аккуратно встают после коммитов C и D.
•. Когда использовать: Когда вы хотите, чтобы история вашего репозитория выглядела как одна красивая прямая линия, без лишнего мусора.
💡 Краткий итог:
• Хотите просто проверить? 👉 git fetch
•. Быстро обновиться (по классике)? 👉 git pull
• Нужна чистая, линейная история коммитов? 👉 git pull --rebase
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 795 |
| 19 | 🚀 Регулярные выражения (RegEx) в Linux: Полная шпаргалка
Сохраняйте в избранное, чтобы всегда было под рукой при работе с grep, sed, awk или при написании Bash-скриптов! 📌
🧩 Базовые символы (Matching Characters)
• . — Любой символ (кроме переноса строки)
• \w — Буквенно-цифровой символ + подчеркивание
• \W — Любой НЕ буквенно-цифровой символ
• \d — Любая цифра (0-9)
• \D — Любой символ, кроме цифры
• \s — Пробельный символ (пробел, таб, перенос)
• \S — Непробельный символ
⚓️ Якоря (Anchors)
• ^ — Начало строки
• $ — Конец строки
• \b — Граница слова
• \B — Не граница слова
🧮 Квантификаторы (Quantifiers)
• * — 0 или более вхождений
• + — 1 или более вхождений
• ? — 0 или 1 вхождение
• {n} — Ровно n вхождений
• {n,} — n или более вхождений
👻 Жадные vs Ленивые (Greedy vs Lazy)
• * — Жадный (захватывает как можно больше символов)
• *? — Ленивый (захватывает как можно меньше символов)
• +?, ??, {n}? — Ленивые версии остальных квантификаторов
🗂 Классы символов (Character Classes)
• [abc] — Любой символ из списка: a, b или c
• [^abc] — Любой символ, КРОМЕ a, b или c
• [a-z] — Любая буква в диапазоне от a до z
• [0-9] — Любая цифра от 0 до 9
📦 Группы и Диапазоны (Groups and Ranges)
• (abc) — Захватывающая группа (сохраняет совпадение)
• (?:abc) — Незахватывающая группа (ищет, но не сохраняет)
• | — Логическое ИЛИ (например, cat|dog)
• \1, \2, \3 — Ссылки на 1-ю, 2-ю, 3-ю захваченные группы
🚩 Флаги / Модификаторы (Flags)
• g — Глобальный (ищет все совпадения, а не только первое)
• i — Игнорировать регистр (A = a)
• m — Многострочный (^ и $ работают для каждой строки текста)
• s — Dotall (позволяет точке . совпадать с переносами строк)
• x — Extended (позволяет использовать пробелы и комментарии в самом RegEx)
🛡 Экранирование (Escaping)
• \ — Используется для экранирования спецсимволов, чтобы искать их буквально.
• Символы, которые нужно экранировать: [ \ ^ $ . | ? * + ( ) { }
👀 Опережающие и ретроспективные проверки (Lookarounds)
• (?=abc) — Позитивный lookahead (совпадает, если дальше идет abc)
• (?!abc) — Негативный lookahead (совпадает, если дальше НЕ идет abc)
• (?<=abc) — Позитивный lookbehind (совпадает, если перед ним идет abc)
🌐 Свойства Unicode (работают с флагом u)
• \p{L} — Любая буква из любого языка
• \p{N} — Любой числовой символ
• \p{Sc} — Любой символ валюты
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow | 764 |
| 20 | 🚀 Подборка полезных IT каналов в Max
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП | 671 |
Available now! Telegram Research 2025 — the year's key insights 
