Некой противоположностью генераторов являются корутины. Для примера напишем функцию, которая будет в бесконечном цикле подставлять значение и выводить строку.
Обратите внимание на то, как было использовано ключевое слово yield. При таком написании создаётся не генератор, а корутина, что позволяет не просто генерировать значения, но и принимать их.
Функция работает так: при отправке значения через метод send локальная переменная name принимает его, а далее значение подставляется в строку и выводится на экран.
🌎 Blue Team Handbook: Incident Response, 1st Edition (2026)
❔ Чему вы научитесь:
🔵 действовать по фазам реагирования: подготовка, обнаружение, сдерживание, устранение, восстановление;
🔵 анализировать логи и сетевой трафик в поиске признаков компрометации;
🔵 проводить первичную сортировку событий и отделять инциденты от шума;
🔵 собирать и сохранять артефакты с учётом требований к доказательствам;
🔵 разбирать типовые тактики атакующих и сопоставлять их с наблюдаемыми следами;
🔵 оформлять разбор инцидента и выводы для усиления защиты.
"Blue Team Handbook: Incident Response" — практический справочник для защитников: сжатый формат «под рукой во время инцидента», а не теоретический курс. Рассчитана на SOC-аналитиков, специалистов реагирования и администраторов, отвечающих за безопасность. Материал относится к легальной защите собственной инфраструктуры.
📖 Python GUI Programming with PAGE: Create professional-looking GUIs for Python applications efficiently and effectively by Gregory Walters
▬▬▬▬▬▬▬▬
Язык: #English
Уровень: #Средний
Год выпуска: 2023
Эта всеобъемлющая книга - ваш путеводитель от установки дизайнера PAGE до освоения создания сложных графических интерфейсов.
В книге рассматривается широкий спектр вопросов, начиная от создания внешних интерфейсов для баз данных SQLite (и других баз данных) и заканчивая использованием виджета Canvas для рисования фигур и текста. В книге рассматриваются различные аспекты, включая работу со стандартными виджетами Tk, использование возможностей инструментария ttk, расширение функциональности графического интерфейса с помощью библиотек виджетов сторонних производителей и пользовательских виджетов.
🌎 The Art of Computer Programming, Volume 4B: Combinatorial Algorithms, Part 2. Donald E. Knuth. Addison-Wesley (2022)
❔ Чему вы научитесь:
🔵 разбираться в методах удовлетворения ограничений и переборе с отсечениями;
🔵 работать с алгоритмом Dancing Links (DLX) для точного покрытия;
🔵 решать задачу выполнимости булевых формул (SAT) и понимать работу решателей;
🔵 применять техники backtracking к комбинаторным задачам;
🔵 анализировать сложность и математические свойства этих алгоритмов строго;
🔵 выполнять авторские упражнения с градацией сложности и разбором решений.
"The Art of Computer Programming" — том 4B легендарной серии Кнута, продолжение части про комбинаторные алгоритмы. Это не учебник для чтения подряд, а глубокий математический справочник: строгий анализ, обширные упражнения, примеры на гипотетическом ассемблере MMIX. Требует серьёзной математической подготовки и терпения — предназначен тем, кому нужна исчерпывающая глубина, а не практический разработческий рецепт.
Функции-генераторы выглядят как и обычные, но вместо return содержат выражения с ключевым словом yield для последовательного генерирования значений.
Вызов подобной функции вернёт не значение, а объект генератора. Далее из этого объекта можно получать значения, например, с помощью функции next или циклом for.
Если генератору больше нечего возвращать, то будет вызвано исключение StopIteration. В целом, генератор — это особый, более изящный случай итератора.
🌎 The Art of Decoding Microservices: An In-Depth Exploration of Modern Software Architecture (2025)
❔ Чему вы научитесь:
🔵 выделять границы сервисов по предметной области, не создавая распределённый монолит;
🔵 организовывать межсервисное взаимодействие: синхронные вызовы против обмена сообщениями;
🔵 работать с распределёнными данными, итоговой согласованностью и паттерном saga;
🔵 применять устойчивость к сбоям: circuit breaker, retry, таймауты, graceful degradation;
🔵 выстраивать наблюдаемость — логи, метрики, трассировки — в распределённой системе;
🔵 оценивать, где микросервисы оправданы, а где добавляют сложность без выгоды.
"The Art of Decoding Microservices" — обзорный разбор архитектурного стиля: от выделения границ до эксплуатации, с акцентом на компромиссы, а не на один стек. Рассчитана на бэкенд-разработчиков и архитекторов, переходящих от монолита к сервисам. Содержание конкретно этого издания я не проверял — за точный состав глав не ручаюсь.