Придумайте с этими словами небольшой рассказ миниатюру можно юмористическую

Бородин создал меньше 20 романсов, но все они стали общепризнанными шедеврами. в этой части познакомимся с его вокальными сочинениями. это

Бородин создал меньше 20 романсов, но все они стали общепризнанными шедеврами. В этой части познакомимся с его вокальными сочинениями.

Это часть интерактивных уроков, подготовленных образовательной платформой Level One в сотрудничестве
с крупнейшими российскими экспертами.

Еще 500 уроков по 15 направлениям, от истории
и архитектуры до здоровья и кулинарии на levelvan.ru/plus

посмотреть все уроки

Придумайте с этими словами небольшой рассказ миниатюру можно юмористическую

Автор урока

Ляля Кандаурова

Скрипачка, ведущая десятка авторских курсов по классической музыке, автор книги «Полчаса музыки»

Придумайте с этими словами небольшой рассказ миниатюру можно юмористическую

Послушаем вокальные сочинения Бородина.

? Для голоса Бородин написал немного — меньше 20 романсов и песен. Это мало, учитывая, что его соратники по «Могучей кучке» писали романсы десятками. Зато у Бородина каждый романс, каждая песня — шедевр.

? Лучшие вокальные сочинения были написаны в 1867–1868, в очень насыщенное творческое время. Еще два всплеска происходят в начале 1870-х и 1880-х.

? Романсы Бородина можно разделить на три группы:

— Эпос и сказка
— Лирические и психологические
— Бытовые и юмористические

? Но внутри этих групп жанровое разнообразие огромно:

«Для берегов отчизны дальней» на стихи Пушкина — трагедийная элегия.

«Отравой полны мои песни» и «Из слез моих» (миниатюры на слова Гейне) — в традициях шумановской лирики.

«Арабская мелодия» — ориентальный, восточный романс.

«У людей-то в дому» на слова Некрасова — русская песня.

«Спесь» на слова А. Толстого — реалистичная бытовая сценка.

«Море» на свои слова — драма.

?‍♀️ На собственные слова Бородин писал эпические и сказочные песни-баллады: «Песня темного леса», «Спящая княжна», «Морская царевна».

?‍♀️ Ранние сочинения — «Красавица рыбачка», «Разлюбила красна девица», «Слушайте подруженьки» — написаны в характере русской народной песни и бытового романса.

? Круг поэзии, как видите, небольшой. Больше всего вокальных сочинения написаны на собственные слова (Бородин обладал прекрасным литературным слогом) и переводы из Гейне (вспомните особое отношение Бородина к Германии), есть народные слова, по одному романсу на слова великих русских — Пушкина, Некрасова, А. Толстова.

Начнем с романсов Бородина на собственные тексты.

? Удивительное создание Бородина — «Спящая княжна». Этим ранним романсом композитор фактически открыл новый жанр — эпической баллады. Сам он называл «Княжну» сказкой. Сюжет действительно сказочный. В лесу «мертвым», «глубоким» сном спит княжна. Мерный зачарованный аккомпанемент напоминает колыбельную, и покачивание ее волшебной колыбели — это повторяющийся рефрен.

?‍♀️ Спокойное течение музыки нарушают два контрастных эпизода: мимо княжны проносится «ведьм и леших чудных рой», а затем проходит слух, что «богатырь придет могучий» и княжну освободит. Но идут годы, богатырь не приходит, и княжна по-прежнему спит. «И никто не знает, скоро ль час настанет пробужденья», — этими словами заканчивается романс.

?‍♀️ Романс появился в конце 1860-х, в момент большого гражданского подъема, усиления антимонархических настроений, и маленькая прекрасная музыкальная сказка Бородина пришлась очень к месту (хотя вряд ли композитор мог иметь это в виду): спящая княжна ассоциировалась с образом России, которую никак не разбудит богатырь.

→ Поет Сергей Лейферкус

Видео-пример: https://yadi.sk/i/ijC1hHH8VBO_Sw

? Уже явно мотивы восстания звучат в «Песне темного леса». Ее суровое унисонное начало напоминает запевы таких песен, как «Эй, ухнем», которые в революционные годы станут воплощением духа времени.

В этой песне поется о «воле-волюшке», «силе-силушке», которая «на расправу шла города брала». Все это созвучно молодецким песням и очень-очень близко образам «Бориса Годунова», которого Мусоргский заканчивал как раз в то время, когда Бородин писал свою «Песню темного леса». В кружке за работой над оперой пристально следили, и ее влияние несомненно. У этой песни любопытная судьба. Цензор не пропустил ее, посчитав крамольной. Тогда Римский-Корсаков вложил песню Бородина между своими романсами, и таким образом песня была подписана к печати.

Аудио-пример: https://yadi.sk/i/SL37Z7UgONldfw

? «Море» — еще одна превосходная баллада Бородина. Ее сюжет перекликается с сюжетом «Садко», только баллада Бородина написана на 20 лет раньше оперы Римского-Корсакова. По бурному морю плывет отважный молодец и везет богатый товар — парчу, жемчуга, золото. Он спешит к своей молодой жене, но ветер все сильнее, он относит лодку от берега, и ее поглощает волна.

? Хотя текст насыщен типично русскими словами и понятиями, музыка перекликается с европейскими балладами: в фортепианном аккомпанементе ни на миг не смолкает бушующее море подобно тому, как в «Лесном царе» Шуберта ни на секунду не прекращается ритм скачки. На этом фоне ведется тревожный и выразительный рассказ. Бородин средствами одного фортепиано очень выразительно изобразил морскую стихию, но позже Римский-Корсаков сделал оркестровку этого романса.

Аудио-пример: https://yadi.sk/i/Vlm59DvW3MCfQw

??‍♀️ Совсем другая морская стихия царит в романсе «Морская царевна». Изумительная музыка которого предвещает волшебный образ Царевны-лебедь из «Сказки о царе Салтане» Римского-Корсакова.

→ Поет Ольга Бородина

Видео-пример: https://yadi.sk/i/B9wDo5ngbkL2-g

? Не пропустите и лирический микро-романс «Фальшивая нота». Как мало нот и слов, а сколько чувства!

Видео-пример: https://yadi.sk/i/WTliZdPysJKhCg

Теперь давайте послушаем романсы на слова разных поэтов.

? Один из самых известных — трагическая элегия «Для берегов отчизны дальней» на текст Пушкина. Она написана в 1881 году под впечатлением от смерти Мусоргского. В ней звучат редкие для Бородина трагизм, конфликт жизни и смерти.

? Настроение глубокой печали создает ровная поступь тяжелых аккордов, проходящих через все произведение, и скупые фразы вокальной мелодии. Вначале она долго стоит на месте, затем медленно, с усилием поднимается вверх, кульминация романса приходится на слова «печальной», «разлуки». Боль переживания с особой силой раскрывается в фортепианной партии, полной диссонирующих аккордов, на фоне которых в басу звучит своя выразительная мелодия с патетическими возгласами.

? Здесь композитор продолжает линию лирико-психологических и философских романсов Глинки. В частности элегии «Сомнение». В то же время возникает аналогия с чрезвычайно любимым Бородиным Шуманом, с его романсом «Я не сержусь».

→ Поет Дмитрий Хворостовский.

Видео-пример: https://yadi.sk/i/OR1z96wtK7lq3A

? С Шуманом Бородин напрямую соприкасается через текст Гейне «Из слез моих выросло много душистых и нежных цветов». Это стихотворение входит в шумановский цикл «Любовь поэта»:

→ Поет Фриц Вундерлих.

Аудио-пример: https://yadi.sk/i/9tv3XS3Uxi8DMQ

?‍♂️ Бородин не боится сравнений и создает свой, совершенно иной вариант романса на этот текст.

→ Поет Борис Христов.

Аудио-пример: https://yadi.sk/i/LG2D6GgDkz0E1A

? Музыкальной драмой в романтическом духе стала песня на слова Гейне «Отравой полны мои песни».

→ Поет Борис Христов.

Видео-пример: https://yadi.sk/i/d8ermTp15_TvIQ

? На стихи Некрасова Бородин создает комическую (с легким оттенком горечи) зарисовку «У людей-то в дому» в духе Мусоргского. Характер романса передают стилизованные народные наигрыши и плясовых мотивы.

→ Поет Борис Христов.

Аудио-пример: https://yadi.sk/i/FlY6EY8GzgQaPQ

? В одном ряду с лучшими музыкальными сатирами 19 века находится и романс «Спесь» на стихи Алексея Толстого. Он стоит где-то между романсом Даргомыжского «Титулярный советник», где социальный статус становится больше человека, и «Носом» Гоголя, где уже нос отделяется от тела и гуляет сам по себе. В романсе Бородина «Ходит Спесь, надуваючись, с боку на бок переваливаясь. Ростом-то Спесь аршин с четвертью, Шапка-то на нем во целу сажень».

→ Поет Борис Христов.

Аудио-пример: https://yadi.sk/i/3uPJnn2_V1lAfQ

На чтение 42 мин. Опубликовано

Смешные короткие сценки на 2 человека в домашних условиях

Прикольные смешные и короткие сценки на 2 человека помогут сделать праздник ярким и интересным. Принимать участие могут все желающие гости. Подбирать надо самых раскрепощенных и артистичных.

Новые смешные сценки для взрослых на день рождения

Как можно не поверить в существование Бога?

Какие есть новые смешные сценки для взрослых?

(После непродолжительного звонка открывается дверь. Стоит женщина средних лет, одета скромно, в длинной юбке. В руках ее брошюры и книги. Она тихо себе под нос повторяет заученный текст)

Женщина: Здравствуйте, скажите, верите ли вы в Бога? Если у вас трудности в жизни, вы не знаете, к кому обратиться…

(Параллельно ее голова медленно поднимается. Женщина вскрикивает и падает в обморок. На пороге стоит демон с рожками и трезубцем в руках. Из квартиры доносится громкая музыка, выбегает парень в костюме ангела)

Ангел: Слушай, я, конечно, все понимаю, у нас Хэллоуин, но давай ты больше не будешь открывать дверь, а то третий обморок за вечер – это слишком…

Заливайте нас, пожалуйста, но подороже, хоть каждый день!

(Стук в дверь, на пороге стоит мужчина, открывает ему алкоголик)

Сосед: Послушайте, вы нас заливаете!
Алкоголик: (икая) Давно?
Сосед: Конечно, давно.
Алкоголик: А почему вы раньше не пришли?
Сосед: Потому что раньше с моего потолка бежало качественное виски, а теперь только дешевый портвейн! Сделайте с этим что-нибудь.

Опытному массажисту все равно, кто приходит на процедуры

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

Женщина: Ну что, миленький, я к тебе.
Мужчина: Я, конечно, понимаю, что для меня тут нашлось бы много работы, но вряд ли вы ко мне.
Женщина: Что, неужели я не подхожу?
Мужчина: Нет, что вы, грудинка у вас очень даже ничего, ножки и бедра тоже, правда филейная часть подкачала, но ничего страшного. Массажисту все равно. Его дверь соседняя, вы ошиблись.
Женщина: А вы тогда кто?
Мужчина: Я мясник, сударыня.

Если бы Интернет был у Сталина в далекие времена

(К Сталину в кабинет врывается парень с ноутбуком, ставит его деловито на стол)
Сталин: Это что?
Парень: Интернет
Сталин: И на что он мне?
Парень: Как это на что? Здесь все про всех написано.
Сталин: Давай, скажи-ка мне, когда закончится война?
Парень: (вбивая запрос) 9 мая следующего года.
Сталин: Хм, хорошая дата, весна, надо записать. А что у нас с ядерными разработками?
Парень: В Википедии написано, что разработки первой атомной бомбы закончатся только в 1949 году.
Сталин: Ладно, ждать недолго осталось. Ну-ка, а насчет меня там что-нибудь есть?
Парень: Конечно есть, товарищ Сталин! Написано: Иосиф Виссарионович был государственным руководителем до своей смерти в 1953 году…
Сталин: Чтооооо? Какой такой смерти? Расстрелять!
Парень: Но меня-то за что? Так в Интернете написано.
Сталин: Кто главный?
Парень: Но там нет главного, все само по себе.
Сталин: Охрана, в ссылку его на Урал, чтоб никаких компьютеров и интернета!

(Парня уводят)

Сталин: Ишь, какая молодежь пошла. Само по себе у них все. Сейчас напишу Лаврентию Павловичу, пусть расстреливает хакеров, производство компьютеров прекращаем, а все силы пусть на атомные разработки направляет.

Сталин всегда держит свое слово и готов на решительные действия

(Сталин сидит за столом со своими приближенными, всего 6 человек. Достает из-за пазухи шахматную фигурку)

Сталин: Вы все знаете, что ситуация у нас в стране непростая. Поэтому я решил выбрать себе преемника среди вас, на экстренный случай. Тот, кто заберет эту фигурку, и станет им.

(Бросает шахматы на стол, приближенные кидаются к ней, кроме одного. После кряхтений и сумятицы победитель встает с высоко поднятой фигуркой.)

Сталин: Ай, молодец! Всех отправить в Сибирь в ссылку, а ты будешь у них главным. Сталин всегда держит свое слово. А ты (показывает на того, кто остался сидеть на месте) будешь расстрелян. За безынициативность! Охрана, увести всех!

Лучшие смешные сценки для веселой компании

Читаем классику и становимся роковой обольстительницей

Какие сценки для взрослых лучшие?

(Скромно одетая женщина, явно образованная и интеллигентная, обращается к консультанту в книжном)

Женщина: Скажите, пожалуйста, у вас есть что-нибудь…ну…как это сказать-то…ну что-то на такие темы, понимаете…очень интимные и откровенные…советы в общем?

Продавец: Конечно есть, вот держите “Самые лучшие уроки секса: как стать обольстительницей”.

Женщина: У меня просто дочка, она встречается с мальчиком. И они читают классику вроде бы, но поймите меня правильно, ведь я же мать, я же волнуюсь.

Продавщица: Вы бы сразу так и сказали, вот, держите!

(Достает том “Война и мир”. Женщина начинает листать книгу, а среди страниц мы видим упаковки презервативов. Женщина смотрит на продавщицу широко открытыми глазами, а та подмигивает ей и кивает)

Что покупают молодые и пожилые в книжном магазине

(Сцена в книжном магазине. Отдел кулинарной литературы)

Продавец: Здравствуйте, чем я могу вам помочь?
Покупатель: Добрый день. Я ищу книгу, называется она “О вкусной и здоровой пище”.
Продавец: Вы знаете, она продается в двух томах. Вам какой нужен?
Покупатель: А что, есть принципиальная разница?
Продавец: Ну, конечно. Первый том чаще читают молодые, он называется “О вкусной пище”, а вот вторым интересуются пожилые, он называется “О здоровой пище”.

Кто будет ходить на работу и делать дела?

(Сцена в магазине сотовых телефонов. Продавец демонстрирует покупателю новейшие модели телефонов)

Продавец: Смотрите, вот эта модель очень удобная. Данный телефон транслирует все, что вы видите, прямиком в Интернет.
Покупатель: Что, и даже из ванной комнаты?

Продавец: Ну, конечно! Очень здорово, не правда ли? А вот эта модель подходит для тех, кто очень любит ставить лайки. У него имеется клавиатура, которую всегда можно носить с собой, и проектор, чтобы видеть все на любых поверхностях.
Покупатель: Ну да, и цена у него соответствующая, как у автомобиля…

Продавец: Ну что ж, если такая цена вас не устраивает, могу предложить сногсшибательную модель! Имеется все, даже складной нож, купюроприемник, складная палатка и набор для выживания.
Покупатель: А как с него совершать звонки?

Продавец: А зачем вам с него звонить? Эту функцию убрали за ненадобностью.
Покупатель: Нет, это все мне совершенно не подходит, до свидания.

Продавец: Нет, постойте! Самый лучший вариант для вас от популярной грушевой компании! Этот телефон может все, даже на работу будет ходить за вас!

Папа может все, что угодно и даже больше

(Молодой парень приходит в аптеку, где работает его отец)

Парень: Пап, привет, мы сегодня с ребятами едем в коттедж.
Папа: Ха-ха, да-да, сынок, понимаю, что-то нужно с собой?

Парень: Ну да, ты же помнишь, что в прошлый раз было… Давай, чтоб сейчас на всех хватило, а то девчонки пищать начнут, что им весь кайф обломали, да и парням тоже не понравится такой расклад.
Папа: Олеся! Принеси со склада самую большую пачку презервативов. (Очередь настороженно наблюдает за происходящим). И еще йод с зеленкой принеси пару пузырьков.

Парень: Ты думаешь этого хватит?
Папа: В этот раз воздушных шариков точно хватит всем, иди надувай и раскрашивай!

Какие нынче бывают старушки в очередях

(Сценка в аптеке. Огромная очередь, сзади подходит сухонькая старушка, осматривает всех людей, пытается протиснуться, но ее не пускают. Тогда та спокойно достает шапку-маску, надевает ее, затем из ее сумочки появляется пистолет)

Старушка: Всем на пол, не двигаться! Это ограбление!

(Очередь с визгом падает на пол, старушка снимает маску и уверенно подходит к кассе)

Старушка: Мне корвалол, пожалуйста, пару пузырьков, и валидола две пачки. Смотрите-ка, что за люди пошли, без пистолета не выжить!

Развлекаем гостей с помощью оригинальных сценок

Попробуйте эти смешные и короткие детские сценки на 2 человека.

Грабители тоже могут ошибаться и перепутать квартиры

Как развлечь гостей с помощью оригинальных сценок?

(Комната, темно, вдруг появляются двое грабителей, освещая себе путь фонариками, разговаривают шепотом)

Первый: Вроде бы, все верно. Квартира хорошая, есть чем поживиться.
Второй: Ну да, золото, посуда, вон люстра…как у меня дома. Хозяин обеспеченный явно.
Первый: Смотри-ка, плазма огромная! Всегда хотел себе такую!
Второй: Да брось ты эту плазму, они сейчас копейки стоят, а работают раз через раз, у меня такая же дома.
(Подходит, жмет на кнопки, ничего не происходит)
Вон и у него тоже не пашет. Давай сейф ищи.

Первый: Уже нашел. Замок сложный, я таких никогда не видел, долго возиться будем.
Второй: Долго…долго… Дай-ка сюда. (Уверенно набирает код, сейф открывается)
Первый: Гляди-ка, как ты ловко с ним, уже встречал такие что ли?
Второй: (Вздыхает) Свет включай, давай.
Первый: Зачем?
Второй: Это мой сейф. Включай, говорю.

Первый грабитель включает свет и разводит руками.

Как можно быстро попасть к лечащему врачу

(Жена с мужем пробираются к кабинету стоматолога. У мужа перевязана распухшая щека. Он вяло бубнит и ноет)

Муж: Ну посмотри, какая тут очередь, мы сегодня точно не попадем, давай лучше завтра сходим.
Жена: Да подожди ты, хватит уже ныть, сейчас я все сделаю.
Муж: Ну, может не надо, я могу и потерпеть. Оно уже меньше болит, правда, смотри.
Жена: Я сказала же, что сегодня – значит сегодня. Жди.

(Распихивает всех и вламывается в кабинет, оттуда слышен ее голос)

Жена: Что вы делаете? Вас кто вообще учил? Инструменты совсем тупые, не дезинфицируются, ассистент вообще спит!

(Доносятся истошные женские вопли, очередь к кабинету потихоньку редеет, муж сидит побелевший, жена выходит из кабинета и сиплым голосом обращается к мужу)

Жена: Ну вот видишь, я же сказала, что ты сегодня к врачу попадешь. Давай, заходи. А я к отоларингологу прорвусь, а то голос сорвала.

Когда гипноз может быть полезным в семейной жизни

Вариант первый:
(Женщина заходит в кабинет психолога)

Женщина: Здравствуйте. На прошлой неделе мы с моим мужем были у вас на сеансе гипноза, помните? Вы еще внушили ему, что он – собака. Так вот, это до сих пор продолжается, можете нам помочь?
Психолог: Понимаю, приводите его сюда, вернем его в образ человека.

Женщина: Нет, вы знаете, меня в целом все устраивает. В доме тихо, он ласковый, играет со мной, целует все время, не пьет, футбол не смотрит, на рыбалку даже не собирается.
Психолог: И в чем же тогда проблема?

Женщина: Сделайте так, чтобы он перестал таскать блох с улицы!

Вариант второй:
(Мужчина заходит в кабинет психолога)

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

Мужчина: Нет, вы знаете, в целом, меня все устраивает. Никаких криков, истерик, я спокойно могу пить пиво с друзьями, даже на рыбалку меня отпустила.
Психолог: И в чем же тогда проблема?

Мужчина: Сделайте так, чтобы она прекратила вылизываться! И эти комочки шерсти – просто мерзость!

Иногда бывает трудно отличить больного от психиатра

(Пациент приходит на прием к врачу-психиатру)

Пациент: Доктор, у меня раздвоение личности
Врач: И кто они?
Пациент: Один – это я, а второй – это вы.
Врач: И что же, оба существуют?
Пациент: Ну, конечно!
Врач: Ну, наверное, вы больны. И что говорит вам вторая личность?
Пациент: Что я болен, и что вас не существует.
Врач: Как я могу не существовать, если вот он – я?
Пациент: Но по вашей логике одного из нас не должно быть.
Врач: Вы меня видите?
Пациент: Да.
Врач: А я вижу вас. Да, что-то мне нездоровится…
Пациент: А дайте мне тогда справку, что я – здоров.
Врач: Да, конечно. И приходите ко мне завтра. Оба.

Идеальная девушка станет лучшей подругой

(Сцена в кабинете терапевта, входит пациент с резиновой сдувшейся куклой под мышкой)

Пациент: Здравствуйте, доктор, у нас с моей девушкой проблемы.
Врач: А где же ваша девушка?

Пациент: Ну вот же, она. Раньше все было замечательно, а теперь она какая – то грустная, поникшая, потеряла форму. Не знаю, что и делать. Сначала меня направили к психиатру. Но лечить почему-то пытались меня, а не ее. А со мной-то все в порядке. Помогите нам, пожалуйста.

Врач: Но вы понимаете, что ваша девушка – резиновая? А я лечу людей, живых людей, понимаете?

Пациент: А чем она хуже?! Красивая, ухоженная, скромная и тихая. Со всем соглашается, никогда не капает на мозги, надевает то, что я хочу, красится, как мне нравится. Не пьет, не курит, друзей у нее нет. Не изменяет. Разрешает мне пить пиво и смотреть футбол.

(Врач берет куклу, надувает ее, возвращает разнервничавшемуся пациенту)
Кукла: Спасибо вам. Милый, пойдем в кроватку!

Пациент: Спасибо вам огромное, я знал, что вы нам поможете!
Врач: Эх, везет же людям. А я дураком был, женился, дураком и остался.

Сценка на 2 человека “Последний завтрак любимых”

Сосуществование мужчины и женщины в семейной жизни, как мы хорошо знаем, связано с тем, что иногда в ней преобладают недоразумения и небольшие драмы, но все это всегда ситуации немного смешные, чем они кажутся на первый взгляд. Дело в том, что это так и есть. В этой короткой юмористической миниатюре вы можете увидеть комическую ситуацию с двумя любящими друг друга людьми. Комикс-пародия на семейную жизнь «Последний завтрак любимых вместе» показывает, как маленькие проблемы в повседневной личной жизни выглядят весело и легко решаются!

Реквизит для сцены: Последний общий завтрак мужчины и женщины

Чтобы разыграть забавную сцену «Последний завтрак любимых», нужно всего 2 человека: мужчина и женщина, чтобы сыграть влюбленную супружескую пару, стол для завтрака и большая газета, за которой мужчина-актер может спрятаться с кормы взгляд любимой жены. Оформление сцены зависит от того, на каком празднике в новом 2021 году будет показана эта короткая юмористическая миниатюра с юмористической ситуацией в супружеской паре. С небольшой доработкой сценария его можно использовать и на новогоднем корпоративе, с веселой встречей новогоднего символа Крысы, и в новогоднюю ночь на праздничном вечернем шоу для взрослых. Время игры всего 5-10 коротких минут.

Шуточная сценка Последний завтрак любимых начинается смешным появление артистов на сцене:

Семейная пара за столом для завтрака. Женщина с любовью и заботой ставит на них тарелки, мужчина сидит за столом, прячась за распечатанную газету с новостями о спектакле и читая о Филиппе Киркорове. По радио звучит новый хит или живая музыка.
F: Тебя сегодня не беспокоит радио, дорогая?
Он: Хммм.
Она: Ладно. Я просто хотел это прояснить.
Он: Хм-хм-хм.
F: Дорогой, есть ли сегодня в вашей газете что-то интересное о Филиппе Киркорове?
Он: Хм-хм-хм.
Вы: Он украл заграницу и снова перевел новую песню на русский язык?
Он: Хм-хм-хм.
Она: Как мило, дорогой. Тогда твой день кажется наполовину хорошим.
Он: Да, дорогой.
Женщина: Итак, что мы хотим делать сегодня важного и необходимого для семьи?
Мужчина: Хм-хм-хм.
Это хорошо. Я имею в виду, что для меня нужно сделать что-то особенное. (Садится и начинает завтрак)
Он: Хм-хм-хм.
Она: Вы, конечно, не возражаете, если я одолжу у вас для этого машину. Я знаю, где ключи.
Он: Хм-хм-хм.
Она: Я хотела показать девушке твой новый Porsche, если ты не против.
Он: Хм-хм-хм.
Она: Это наверняка заставит меня перемещаться по городу так быстро, что я не смогу вспомнить, где будет моя голова. Ты понимаешь дорогой?
Он: Хм-хм-хм.
Мужчина встает и идет, а забавная сцена для двоих с большим удовольствием смотрит на всех присутствующих, потому что касается повседневной жизни влюбленной супружеской пары в новом 2021 году на сцене противоположного времени они всегда будут выглядеть комично не только для праздников во время символа Крысы, но и для других.
Женщина: И если вы вернетесь домой сегодня вечером, если вы когда-нибудь приедете, вы меня не найдете. Но тебя это не беспокоит, дорогая?
это хорошо.
Она: И в этом случае я должна сказать вам кое-что еще. Потому что я потратил впустую наши счета и все деньги, которые были у меня в кармане. Конечно, тебе придется с этим столкнуться. Тебя это не беспокоит, дорогая?
Он: Хм-хм-хм.
Она: тоже хорошо. Я думал, у тебя не будет проблем. Иногда можно быть очень щедрым.
Он: Хм-хм-хм.
Вы: Конечно, я не оставлю вам номер телефона, по которому вы можете со мной связаться. Ты поймешь, дорогой?
Он: Хм-хм-хм.
Она: Нам нужны деньги для начала, потому что мы больше не хотим, чтобы нас беспокоило ваше паршивое безразличие к семейным делам и в целом ваше полное отсутствие интереса ко мне. Конечно, ты видишь это, правда, дорогая?
Он: ах. (Он прочищает горло стаканом воды и прочищает горло.)
Лей: Тогда тогда. Я всегда буду оставлять тебя и оставлять тебя, и я надеюсь, что больше никогда тебя не увижу. Добрый день! Расслабься и не работай всегда так усердно, до свидания, дорогая!
Он: Хм-хм-хм.
Женщина: Она встает, откладывает тарелки, ищет свое пальто на заднем плане сцены, хватает сумку, осторожно вытаскивает из кармана пальто ключи от машины и бросает их на стол. Женщина смотрит в зеркало и с веселой гримасой, бросив неуверенный взгляд на ее задумчивое выражение лица, целует ее в щеку. Фоновая музыка прерывается.
Он: шумно сворачивает газету, оглядывается.
Блин, а почему вдруг так тихо?
Почему женщинам всегда приходится так много говорить?
Это все в двух словах, можно сказать быстро.
(Заходит в гримерку, надевает куртку, роется в кармане.)
Где ключи от моей машины? (зовет) Дорогая! (выходит из комнаты и испытывает удачу).

Подвижные

Сценка  «Поздравляем короля!»

Персонажи: придворные (2), гости (5).
Реквизит: Королевский трон, костюмы придворных (или хотя бы атрибуты).

Придворный 1: Ваше Величество, король (имя)! Пожалуйста, сядьте на этот трон! Вы великий правитель своего государства, и от всех ваших подданных позвольте мне зачитать вам поздравления!

(Важно открыть свиток. Испуганный, он оглядывается, жестикулирует другому придворному).

Придворный 1 (шепотом): Эй, а там ничего нет! Пустой. Где поздравление?

(Кортье 2 пожимает плечами, затем поднимает палец и выбрасывает свиток).

Придворный 2: Наш король, теперь мы покажем тебе, насколько мы тебя знаем! Господа, говорю – и покажите! Как злится король (Имя)? (Показать гостей). Как король танцует на веселом диске, простите, бал? Как король выпил слишком много вина и пробрался в свой платный дом, чтобы не заметить жену? (Гости пытаются изобразить пьяного именинника).

Придворный 1: Ой! Класс! Ты доволен, наш король? И вот прибыли заморские подарки! Прими, король (Имя), поздравляю!

Придворный 1: Граф Де (фамилия гостя) из таинственного графства (улица или район, где живет гость) представляет вам секретный документ! Покажи – и любой продукт твой! (Сертификат выдают).

Придворный 2: принцесса (имя) из прекрасной страны приносит вам чарующий аромат! С ним можно все! Нейтрализуйте врагов, зарабатывайте союзников! (Дайте духи).

Придворный 1: Мы знаем, что ты, наш прекрасный король, мечтаешь поймать золотую рыбку, чтобы исполнить все твои желания! Князь (имя) из (…) дает вам возможность это сделать! (Они повреждают рыболовные принадлежности).

Придворный 2: Наш дорогой король, следующий подарок того стоит! Волшебное, опьяняющее зелье ума, приводящее к состоянию эйфории и блаженства! Разрешите со своей стороны познакомить вас с этим чудесным напитком! (Дает коньяк).

Придворный 1: И я делаю щедрый вклад в сокровищницу, Ваше Величество! Возьми этот сундук с сокровищами! (Дает конверт в виде кассы с деньгами).

Сценка  «Три веника»

Чтобы поздравить, нужны три женщины. У каждого в руках по венику. Всего понадобится три веника: дубовый, березовый, эвкалиптовый.

Первая женщина

Иметь здорового мужчину
Представляем дубовый веник.
От невзгод и от всех болей
Мы вас веником запарим.
(Женщина с дубовой метлой слегка гладит именинника).

Вторая женщина

Не расстраивайся и не страдай
Лучше брать березовым веником.
Ходим на плечах, на голове,
Чтобы вы были здоровы, как бык в корове.

Третья женщина

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

Сценка «Поздравление от восточных красавиц»

Персонажи: Девушки в костюмах восточных красавиц (роли можно разделить по количеству подарков). Девушки входят во дворец и уходят после вручения подарков под музыку востока, исполняя движения восточного танца.

Девушка 1: Сегодня ты Шейх-аль-Шейх, ты сегодня лучший! Гульзия, Рамза, Темза, приходите всех вас поздравить!

Девушка 2: Вы любительница яркой жизни, получайте подарки пораньше!

Девушка 3: Чтобы в жизни все было ровно, не шаталось, держись, рыбу даем! (Можно украсить «букетом» из разных видов соленой рыбы или просто набором закусок).

Девушка 1: Чтобы влюбить в жену, у вас есть чайный сервиз!

Девушка 2: Ну, к чаю, конечно, сладости приготовили! С коньяком!

Девушка 3: Без конфет (пожимает плечами). Держи эту бутылку! (Подает ему бутылку коньяка).

Девушка 1: Тебе, любительнице утреннего купания в жаркой речке, мы дадим, нет, без трусиков, а лодку подарим! (Или блесну, или другие рыболовные принадлежности, поэтому замените их словами «вот что!»)

(Танцуют элементы восточного танца, потом как во флешмобе, все гости постепенно повторяют эти движения, и все уже танцует. Девочки разбегаются).

Про Пушкина

Встреча двух дуэлянтов. Один из них – Пушкин.
Второе: вперед вместе!
Пушкин и его противник поднимают ружья. Подходит для шлагбаумов. Противник Пушкина делает выстрел. Пушкин ранен. Противник подходит к раненому Пушкину.
Пушкин: Для чего?
Противник Пушкина: Гад! Из-за вас они ушли от меня на второй год писем!
Копировать

Кабинет рентгенолога

Персонажи: бабушка, мальчик, рентгенолог
Кабинет рентгенолога: рентгеновский аппарат, стол, стул. За столом сидит врач.
В офис входят маленький мальчик и бабушка.
БАБУШКА (указывая на мальчика). Все перерыл, очков нигде нет. Думаю, он их проглотил. Все в твоем дедушке!
РЕНТГЕНОЛОГ (мальчику). Вы проглотили бабушкины очки?
Мальчик не отвечает.
БАБУШКА. Партизан! Все в твоем дедушке!
РАДИОЛОГ. Замолчи? Но сейчас мы вас полностью просветим и все узнаем.
БАБУШКА (радостно). Да меня поймали! Имея такую ​​вещь в доме.
РЕНТГЕНОВСКИЙ ГЕНОЛОГ (рассматривает фотографию). Ну, ну, ну… знаете… у него здесь не только очки, но и кошелек с деньгами. Точно не могу сказать, но где-то около трехсот рублей.
БАБУШКА. Это не наше, нам никто другой не нужен. Для меня главное взять очки, без них не могу смотреть телевизор.
РАДИОЛОГ. Мы возьмем это сейчас.
Радиолог подходит к мальчику, поднимает его за ноги и трясет. Очки и бумажник падают на пол.
БАБУШКА (берет очки). Большое спасибо, доктор. Я даже не знаю, как тебя благодарить. Позволь мне поцеловать тебя!
РЕНТГЕНОЛОГ (переворачивает бумажник в руках). Нет. А вот кошелек, по возможности, оставлю на память.
БАБУШКА. Это не наше, не наше, нам никто другой не нужен.
Бабушка и внучка уходят из офиса.
РЕНТГЕНОЛОГ (вслух). Следующий!
(А. Гиваргизов)

Брачный контракт

Два стула понадобятся для создания сцены, создающей у зрителей впечатление атмосферы доверия.

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

Женщина изображает человека, склонного к драматургии и не всегда умеющего держать язык за зубами.

Мужчина (М): Дорогая, я давно хотел серьезно поговорить с тобой. Мы пережили много боли и радостей, долго жили вместе и…

Женщина (F): Подожди, ты решил бросить меня? Как, как ты посмел прямо перед свадьбой? А как же гости, банкет? А как насчет моего шикарного белого платья? Это то же самое, что я не могу бросить букет Люсе-неудачнице ?! Мама была права, над тобой не стоит смеяться!

М: Подожди, подожди, я тебя не оставлю!

W: Разве ты не собираешься останавливаться? Точно? Так о чем вы хотели поговорить?

М: Что мы должны заключить брачный контракт.

С: А зачем это нужно? (с подозрением).

М: Это обычная практика, так что теперь ею занимаются все.

С: Это модно? Что-то я сомневаюсь.

М: Модно!

С: Ну, ладно, давай, что там у тебя.

М: Послушайте, вот в чем дело о Филимоновых…

С: Какие Филимоновы? Что ты поставил в договор с любовницей и хочешь, чтобы я за нее отвечал?!

М: Какая любовница?

С: Вы сами сказали: Филимоновы!

М: Милый, мы Филимоновы, после свадьбы вы будете носить мое имя.

С: Почему это так ?! Так много проблем сразу, знаете, как сложно это изменить во всех соцсетях? И что мои одноклассники не смогут меня найти и завидовать мне?

М: Милая, это обычная практика, когда жена берет фамилию мужа.

С: Ну хорошо, что дальше.

М: Итак, в случае развода…

С: Что за развод? В конце концов, вы решили бросить меня, а после свадьбы?

М: Нет, это принято записывать в документе. Так что в случае развода я заплачу вам четверть денег.

W: Что? Почему четверть? Я хочу половину!

М: Четверть – это половина моих денег.

W: Ну хорошо, а что дальше?

М: Значит, в случае моей измены я компенсирую вам моральный ущерб в размере, определенном судом.

W: Хорошо.

М: А в вашем случае?

W: Что мое?

М: Что будет, если обмануть?

С: Ну, сначала предупредите меня…

М: Внимание?!

С: Не перебивай, а потом строгое предупреждение, и в третий раз…

М: Я позволю тебе спуститься по лестнице!

W: Почему я? Спусти Ваню!

М: Что за Ваня ?! Что ж, ответьте поподробнее!

С: Ой. Что ж, считайте, что у меня уже есть первое предупреждение.

После этого актеры обращаются к молодоженам – посмотрите, что происходит, когда молодожены не доверяют друг другу.

Желаем вам любить и уважать своего партнера, потому что он этого заслуживает, а не из-за условий контракта.

Сценка про школу «Домашнее задание»

Учитель: Давайте послушаем, как вы разучивали домашнее задание. Кто ответит первым, получит дополнительный балл.

Ученик Иванов (вынимает руку и кричит): Марья Иванна, я буду первым, дай мне сразу три!

*

– Что означает словосочетание «Сизифов труд”?
– Это означает бесполезную работу. Например, я усвоил урок, но вас не спросили!

*

Воспитатель: Ваше сочинение о собаке Петрове дословно похоже на сочинение Иванова!

Ученик Петров: Мария Иванна, значит, мы с Ивановым живем в одном дворе, и там у нас на всех по собаке!

*

– Марья Иванна, можно ли наказать человека за то, что он не сделал?
-Ты не можешь, маленький Джонни.
– Мария Иванна, я еще не сделала уроки!

*

Воспитатель: У вас, Сидоров, сочинение прекрасное, но почему оно еще не закончено?

Ученик Сидоров: Потому что папу срочно вызвали на работу!

Воспитатель: Кошкин, признайся, кто тебе сочинение написал?

Ученик Кошкин: Не знаю. Я рано легла спать.

Воспитатель: А ты, Клевцов, пусть завтра ко мне дедушка придет!

Ученик Клевцов: Дедушка? Может, папа?

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

*

Воспитатель: Сидоров, а почему вы на уроке едите яблоки?

Ученик Сидоров: Жалко терять время на перемене!

Учитель: Прекрати сейчас же! Кстати, а почему тебя вчера не было в школе?

Ученик Сидоров: Мой старший брат заболел.

Учитель: При чем тут?

Ученик Сидоров: А я ездил на велосипеде!

Учитель: Сидоров! Мое терпение закончилось! Не приходи завтра в школу без папы!

Ученик Сидоров: А послезавтра?

*

Воспитатель строго смотрит на опоздавшего: Семен! Ты опять опоздал! Что на этот раз?

Семен, виноват: Мария Иванна, я проснулась, посмотрела на время и безуспешно моргнула.

*

– А в нашей школе мы объявили войну задержкам и прогулам!
– А также?
– Потерянный…

*

– Петров у нас большой любитель поспать на уроках.
– Вы меня обижаете, Марья Иванна, я профессионал.

*

– В чем разница между хорошим учеником и плохим?
– Родители бьют плохих парней, а ученики – хороших.

*

– В прошлом году школьников отправили в Париж, поэтому они учились там всего на два класса!
– Что они думали о себе?
– А думали, что на второй год их оставят…

*

В кабинете директора.
– Мария Ивановна, завтра к вам в 9 “G.
– Так здорово?
– Да, его уже исключили из трех школ.

*

– Света, позволь мне принести твое портфолио!
– Да, не тяжело.
– Да и я не силен!

*

Двое старшеклассников говорят:
– Знаете, при одной мысли о нем у меня бьется сердце, руки дрожат, ноги подкашиваются, я даже не могу говорить.
– А как его зовут?
– ЕГЭ!

*

К уроку ОБЖ.
– Переходя улицу, смотрите на машины, а не на светофоры. Светофоры еще никого не сбили.

*

Учитель:
– Половины не может быть больше или меньше. К сожалению, больше половины класса этого не понимают.

*

– Как будет выглядеть «Гоголь-Моголь» по-английски»?
– «Шекспир-Мекспир»!

*

Сцена в магазине. Мальчик и продавец

МАЛЬЧИК: Годы правления Николая II?

ПРОДАВЕЦ: не знаю

МАЛЬЧИК: Хорошо .. теорема Пифагора?

ПРОДАВЕЦ:… (пожимает плечами)

МАЛЬЧИК: Фотосинтез?

ПРОДАВЕЦ: (вздыхая) Не знаю…

МАЛЬЧИК: Ну, что ты пытаешься сделать со своим «Что я могу тебе сказать?»

*

Смешная сценка на 2 человек с другом на любой праздник

Если у вас есть единомышленники или близкие друзья с родственниками, это хорошая возможность создать веселую короткую сценку на двоих к любому празднику Нового 2021 года, когда на нем будет изображен символ Крысы.

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

Некоторые идеи для смешной сценки с пародией на 2 человека, один из которых женщина второй мужчина

Но какие бывают короткие формы пародии на двоих и когда, собственно, они подходят для юмористического показа? Конечно, отчасти это всегда личное решение, на каком празднике в Новом 2021 году Мышей, когда и в каком празднично-веселом мероприятии использовать ту или иную юмористическую миниатюру.
Идея анекдота в честь вечеринки

Сценка с участием 2 человек “Перемещенные и забытые”

Эта юмористическая миниатюра повседневной супружеской жизни пожилой пары рассказывает историю мужчины и женщины, сидящих вместе во время воскресных каникул в своей комнате дома. Она снова вяжет одну из своих шляп, а он сидит и смотрит в окно. Казалось бы, в общественное воскресенье всей семье нужно отдыхать, но так ли это на самом деле? Через некоторое время тишина заканчивается, начинается диалог, в котором жена сначала чувствует, что муж немного раздражен, а затем делает то, чего мужчина, вероятно, не ожидал. Время игры: короткое 5-10 минут.

“Перемещенные и забытые”

Она: дорогая?
Он: что? Она: что ты там делаешь?
Он: ничего.
F: Вообще ничего?
Он: Нет, ничего.
Она: Почему так?
Он: Верно.
Она: как ты можешь ничего не делать?
Он: ну ты это видишь.
Она: Я ничего не вижу.
Он: Совершенно верно. И это именно то, что я делаю. Ничего такого.
Она: ты о чем думаешь?
Не он.
F: Вообще ничего?
Он: Ничего особенного.
F: Как насчет решения выйти подышать свежим воздухом?
Он: Я не хочу выходить.
Она: Почему бы и нет?
Он: Потому что мне это не нравится. Потому что я ничего не хочу делать.
F: Но во время праздников 2021 года на улице такой хороший воздух .
Он: Но я знаю, что если сижу здесь и ничего не делаю.
Она: Если вы выйдете, машину нужно заправить заранее, иначе вы все равно будете стоять где-то и ничего не делать.
Он: Но зачем мне дозаправляться, если я не хочу выходить?
Лей: Потому что бензин сегодня особенно дешев.
Он: Откуда ты знаешь?
Она: От нашего соседа. Это проявляется у вас на лице, по крайней мере, время от времени, в отличие от вас.
Он: Иногда я тоже выхожу, но только если захочу.
Она: А когда ты снова захочешь?
Он: На ​​данный момент определенно нет.
Она: Почитайте книгу, если вы еще не на улице.
Он: Может быть, позже.
Лей: Позже будет темно.
Он: Тогда я включаю свет.
Лей: Сколько это стоит и вернется за деньги. Вы экономите на самом бензине, а потом отдаете деньги на электроэнергию.
Он: Я не экономлю на газе.
F: О, вы хотите заправиться завтра? Тогда топливо, конечно, снова станет дороже.
Он: Мне все равно. Я сегодня ничего не делаю.
Она: Как ты можешь целый день ничего не делать?
Он: Это бережет мне нервы.
Она: Но ты совсем не думаешь обо мне.
Он: Почему я не думаю о тебе?
F: Я весь день работаю на кухне, убираю в доме, а вы ничего не делаете.
Он: Но сегодня воскресенье, а в 2021 году государственный праздник (он называет праздник, в честь которого показана эта юмористическая миниатюра для двоих), а завтра мне нужно вернуться к работе.
Она: Означает ли это, что вы ничего не делаете намеренно?
Он: Совершенно верно.
Она: Что ж, тогда я знаю, что вы прекрасный джентльмен.
Он: Почему не хороший джентльмен?
Она: Ну, потому что снова все в моей голове.
Он: Хорошо, ты выиграл.
Продолжается короткая сцена для двоих с забавными действиями: мужчина встает, берет книгу и выходит из комнаты подальше от женщины.
Она: куда ты сейчас идешь?
Он: Я еду на машине, выхожу и читаю книгу. А чтобы подышать свежим воздухом, я всегда держу окно открытым.
Она: Тогда сделай это.
Он: Я сделаю это.
Лей: Увидимся позже.
Он: Увидимся позже.
Женщина из юмористического миниатюрного мультфильма для двоих о семейных отношениях берет мобильный телефон и набирает номер.
Она: Зульфия! Вы можете прийти ко мне со своими друзьями. Я дома одна.
Ну и конечно же среди множества юмористических пародий на семейные отношения двух человек есть старая добрая классика, а также более современные формы миниатюр. Таким образом, выбор более чем богат и предлагает идеи на любой случай новогодних праздников 2021 года и для любого развлекательного мероприятия, и даже в новогоднюю ночь дома с семьей!

Примеры шуточных пародий

Самые известные примеры пародий на двоих сейчас можно встретить на телевидении, а также в крупных телевизионных форматах прошлых лет, где много пародий на популярную звезду российского шоу Филиппа Киркорова, и мы смотрим новости об этом. Короткие сцены из телешоу «Вокруг смеха» стали классикой индустрии развлечений и шоу-бизнеса. Рождение дома, секретарь, письмо, темы, которые следует раскрыть в юмористической форме во время праздника или новогодней вечеринки в 2021 году, когда вы встретите символ Крысы, их много.

Примеры современных тем для веселой сцены на 2 человека.

Но даже современные форматы предлагают отличные шаблоны для той или иной забавной сцены одного из праздников нового 2021 года. Если вы хотите чего-то из настоящего времени, вы найдете множество тем для короткой юмористической миниатюры с мужчиной и девушкой женщина. Можно встретить забавные ситуации в офисе и в семье; разговор между мужчиной и его любовницей или разговор между продавцом и покупателем всегда будет хорошей темой.

Как видите, существует множество краткосрочных вариантов веселых сцен для двоих для взрослых с участием мужчины и женщины, и ситуаций, которые можно использовать для двоих, достаточно, чтобы использовать их практически повсеместно для любого праздничного мероприятия, корпоративная вечеринка или новогодняя ночь дома… Ведь на официальном сайте «Анонадо» все возможно, поэтому мы просто хотим показать несколько возможных и одновременно самых популярных тем для юмористических миниатюр:

Ситуации для короткой пародии в шуточной форме:

  • Продажи: разговор между продавцом и покупателем.
  • Обсуждение: женщина и мужчина в постели, в машине, за столом, за завтраком, перед телевизором.
  • Вопрос – ответ: ребенок – взрослый или учитель – ученик.
  • Разговор: врач – пациент.
  • Ситуация чисто признанная, но в последнее время приходится очень осторожно относиться к этой теме.
  • На работе: начальник – сотрудник.
  • За забором: два соседа в деревне.
  • Судья – обвиняемый.

Сценка из школьной жизни «Урок окружающего мира»

Учитель: Кто может назвать пять диких животных?

Ученик Петров вынимает руку.

Учитель: Отвечай, Петров.

Ученик Петров: Тигр, тигр и .. три тигрята.

*

Учитель: Что такое густые леса? Ответь, Косичкина!

Ученица Косичкина: Это леса, где .. хорошо подремать.

Воспитатель: Симакова, назовите, пожалуйста, части цветка.

Ученик Симаков: Лепестки, стебель, ваза.

Воспитатель: Иванов, расскажите, пожалуйста, какую пользу птицы и животные приносят человеку?

Ученик Иванов: Птицы клюют комаров, а кошки ловят ему мышей.

*

Воспитатель: Петров, какую книгу вы читали об известных путешественниках?

Ученик Петухов: «Странствующая лягушка»

*

Учитель: Кто ответит, в чем разница между морем и рекой? Пожалуйста, Мишкин.

Ученик Мишкин: У реки два берега, а у моря один.

*

Воспитатель: Козявин, ответьте, пожалуйста, какова продолжительность жизни мыши?

Ученик Козявин: Ну, Марья Иванна, все зависит от кота.

*

Воспитатель: Он подойдет к доске… Мешков и расскажет про крокодила.

Ученик Мешков (подходит к доске): Длина крокодила от головы до хвоста пять метров, от хвоста до головы семь метров.

Учитель: Подумайте о том, что вы говорите! Возможно?

Ученик Мешков: Бывает! Например, с понедельника по среду это два дня, а со среды по понедельник – пять!

*

Воспитатель: Хомяков, скажите, а зачем людям нервная система?

Ученик Хомяков: Нервничать.

*

Воспитатель: Почему ты, Синичкин, каждую минуту смотришь на часы?

Ученик Синичкин: Потому что меня ужасно беспокоит, что звонок прервет необычайно интересный урок.

*

Воспитатель: Ребята, а кто ответит, куда летит птица с соломинкой в ​​клюве?

Ученик Белков ставит руку выше всех.

Учитель: Попробуй, Белков.

Ученик Белков: В коктейль-баре, Мария Иванна.

*

Воспитатель: Что за слово «яйцо», Синичкин?

Ученик Синичкин: Нет.

Учитель: Почему ?

Ученик Синичкин: Потому что мы не знаем, кто из него выйдет: петух или курица.

*

Воспитатель: Теплякова, какие зубы появляются у человека последними?

Теплякова ученица: Плагин, Мария Иванна.

Учитель: Сейчас я задам вам очень сложный вопрос, за правильный ответ сразу поставлю пятёрку с плюсом. Возникает вопрос: «Почему европейское время опережает американское?»

Ученик Клюшкин вынимает руку.

Воспитатель: Отвечай, Клюшкин.

Ученик Клюшкин: Потому что Америку открыли позже!

*

Ученица спрашивает учителя: Иван Иванович, а у вас в детстве был планшет?

Воспитатель: Нет, что ты, тогда не было компьютеров!

Ученик: Что вы играли?

Учитель: На улице!

Веселая сценка для двух детей про школу

Актриса сидит за столом с телефоном в руке. Играйте в роли школьной медсестры. Девушка набирает номер и звонит подруге.

Медсестра: Здравствуйте, Катя? Привет, дорогой. Как дела? Как поживает твой муж? Я слышал, что получил вторую работу. Можно ли зарабатывать деньги?

Входит студент. Он резко кашляет и подходит к медсестре. Она не замечает его и продолжает разговор.

Медсестра: Ой, какой у вас хороший парень! Он все делает для семьи. Но муж Тани стал совершенно эгоистичным, думает только о себе. Я сказал ей…

Студент громко кашляет, пытаясь привлечь внимание.

Медсестра: Ой, Катя, подожди, сюда кто-то пришел. (кладет телефон на стол) Чего ты хотел?

Ученик: Здравствуйте, я, кажется, заболел. Могу я пойти домой?

Медсестра расстроена: о чем ты! Ты умеешь прыгать?

Ученик: Могу.

Медсестра: Тогда прыгай.

Студент прыгает.

Медсестра: Вот! Итак, присаживайтесь и на урок!

Студент уходит. Медсестра снова берет сотовый телефон.

Медсестра: Так о чем я? Да, точно! Как я говорю Тане, тебе не нужно с этим мириться. Выкиньте его за дверь! Позвольте мне вам кое-что сказать, я…

Студент с диким кашлем летит обратно в кабинет и падает на колени у стола медсестры.

Медсестра: Ладно, подожди, сюда тоже кто-то заходил. (кладет трубку) Что ты хотел?

Хриплый ученик: Пожалуйста, отпусти меня домой!

Медсестра: У вас нет совести!

Хриплый голос ученика: А там бронхит!

Медсестра: В классе, живи!

Студент с трудом встает и уходит.

Медсестра по телефону: Вот и все. Нам с тобой надо поправить ее мозг, иначе она совсем исчезнет с таким мужем! Вам нужно уйти? Ну ничего. Вечером разговариваем, Катя. Поцелуи, пощечины, пощечины!

Медсестра вешает трубку и приступает к работе. Под музыку похорон студент пробирается в кабинет, пытается что-то сказать, но теряет сознание.

Медсестра сдаётся: Хорошо! Да будет так. Ты можешь идти домой.

Под веселую песню «Мне хорошо» ученик вскакивает на ноги, радостно танцует и убегает.

Конец представления, публика смеется!

Сценарий домашнего спектакля на 2 человека на день рождения

На сцене два стула, актеры изображают мать и сына. Первой появляется актриса, она держит в руке маленький старый телефон и грустно смотрит на него. Из нее выходит молодой человек с коробкой в ​​руках, но интригующе прячет вещь за спиной.

Сын: Ой, мама, привет. Я не знал, что ты уже дома.

Мама: Ну, я рано сделала перерыв. Ведь это же день рождения!

Сын: Я просто хотел тебя поздравить! С праздником, мама!
Он встает и целует себя в щеку. Мама благодарно обнимает.

Сын: У меня для тебя подарок!

Мама: Сынок, спасибо, но теперь мне нужна твоя помощь. Помните, я сказал, что мой телефон заблокирован?

Сын: Да, но он не сказал что.

Мама: Ну вот я и села на него, вот и прикрылась! С того дня он плохо работал и теперь даже не включается.

Сын берет телефон в руку и рассматривает его.

Сын: Мама, это же прошлый век! И мой подарок избавит вас от необходимости ремонтировать эту затонувшую машину. (Кладет телефон в карман и протягивает коробку со смартфоном)

Удивленная, мать принимает подарок, открывает коробку, достает телефон и передает его сыну.

Мама: Ого, какая красивая коробка! Буду там выращивать рассаду! Спасибо, дорогая!

Сын: Постой, это не подарок. Вот. Это смартфон, теперь он есть у всех.

Мама: Что еще такое смартфон? Был бы телефон новый.

Сын: Итак, смартфон – это телефон. Но непросто! Они называют это смартфоном.

Мама: А что такого особенного?

Сын: С него можно не только звонить и писать, но и заходить в интернет, оставлять заметки, смотреть фильм, фотографировать. Здесь есть социальные сети и игры. Если хочешь.

Мама: Покажи как включается?

Сын: Давайте сначала снимем это.

Напуганная мама: Нет! Разве ты не помнишь, что случилось, когда мы снимали кассету с пульта? На следующий день он рухнул!

Сын: Ну что ты? Он был стар!

Мама: Нет. Просто включи. А если не загорится, постучите пару раз по столу. Моя всегда начинала работать после!

Сын показывает ей правую кнопку и включает сотовый телефон.

Сын: Вот, смотри. Это Facebook, это Instagram, это Twitter. Звонить можно через whatsapp и телеграм, если есть wi-fi.

Мама в шоке: Притормози, из ваших слов я понял только «звонок»! А что это за человечек?

Сын: Ой, мама, это андроид.

Мама качает телефон: очень мило, Андроид. Я Екатерина Андреевна, мама Славика!

Сын: Мама, Android – это операционная система. То есть проверьте свой смартфон.

Мама: Так что мне не нужно ничего делать? Здесь есть андроид.

Сын: Нет, нужно управлять андроидом.

Мама: Как это сложно! Хорошо, я выясню. Покажи мне, как звонить отсюда.

Сын: подойди сюда и выбери номер. (Показать) Я уже все для тебя написал.

Мама: Мне нужно кнопку обвести маркером, чтобы не забыть!

Сын: Мне маркеры не нужны! Вы и сами скоро к этому привыкнете.

Мама: Хорошо, хорошо. И вы что-то сказали о заметках. Дайте-ка подумать.

Сын: Все просто. Вам нужно что-то написать?

Мама: Да, напишите так: «По вторникам платишь за воду, покупаешь макароны и приносишь телефон в ремонт»!

Публика смеется, сын качает головой, а мать недоверчиво. Конец шоу.

Молодежный театр в школе

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

Где найти репертуар такого театра? Материал для спектаклей с успехом можно найти на уроках, переменах, родительских собраниях, педагогических советах, экзаменах… А как же, школьная жизнь в целом – это театр!

Сценка «Урок русского языка в школе»

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

Студент подходит к доске и готовится писать.

Воспитатель (диктант): «Папа и мама ругали Вову за плохое поведение. Вова виноватым промолчал, а потом пообещал поправить».

Студент пишет на доске диктант.

Учитель: Отлично! Подчеркните все имена в своем рассказе.

Студент подчеркивает слова: «папа», «мама», «Вова», «поведение», «Вова», «обещание».

Учитель: Здравствуйте? Определите, в каких случаях встречаются эти имена. Понял?

Ученик: Да!

Учитель: Старт!

Ученик: «Папа и мама». Кто? Какие? Родители. Следовательно, падеж – родительный.

Выговорили кому, что? Вова. «Вова» – это имя. Следовательно, падеж является именительным.

За что выговорили? За плохое поведение. Видимо он что-то сделал. Это означает, что «поведение» имеет инструментальное значение.

Вова виновато промолчал. Значит, здесь у «Вовы» винительный падеж.

Ну, а «обещание», конечно, в дательном падеже, раз уж Вова его дал !

это все!

Учитель: Да, анализ оказался оригинальным! Возьми дневник, Петров. Интересно, какую оценку вы бы посоветовали поставить себе?

Ученик: Какой? Очевидно пятерка!

Учитель: Значит, пять? Кстати, а в каком случае вы назвали это слово – «пятерка”?

Ученик: Предложно!

Учитель: Предложно? Потому что?

Ученик: Ну, я сам это предложил!

*

Воспитатель: Петушков, определите род слов: «стул», «стол», «носок», «носок».

Ученик Петушкова: «Стол», «стул» и «носок» – мужское, а «носок» – женское.

Учитель: Почему?

Ученик Петушков: Потому что чулки носят только женщины!

*

Учитель: Смирнов, подойдите к доске, напишите и решите предложение.

Ученик Смирнов подходит к доске.

Учитель диктует, а ученик пишет: «Папа ушел в гараж».

Учитель: Здравствуйте? Мы вас слушаем.

Ученик Смирнов: Папа это субъект, он оставил сказуемое, в гараже… отговорка.

*

Учитель: Кто из детей может сделать предложение с однородными членами?

Ученица Тюлькиной протягивает руку.

Воспитатель: Пожалуйста, Тюлькина.

Тюлькина Студент: В лесу не было ни деревьев, ни кустов, ни травы.

*

Учитель: Собакин, придумайте предложение с цифрой «три».

Ученик Собакин: Моя мама работает на трикотажной фабрике.

*

Воспитатель: Рубашкин, подойди к доске, напиши фразу.

Ученик Рубашкин подходит к доске.

Учитель сказал: «Дети ловили бабочек сетями.

Ученик Рубашкин пишет: Мальчики ловили бабочек очками.

Воспитатель: Рубашкин, что ты такой безрассудный?

Ученик Рубашкин: Почему?

Учитель: Где вы видели бабочек в очках?

*

Воспитатель: Мешков, в какой части речи идет слово «сухой»?

Ученик Мешков, вставая, долго молчит.

Учитель: Ну подумай, Мешков, на какой вопрос отвечает это слово?

Ученик Мешков: Что это? Сухой!

*

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

Ученик Петушков: Кошка есть собака.

Воспитатель: При чем тут «собака-кошка»?

Ученик Петушков: Ну как? Они противоположны и часто борются друг с другом.

*

Учитель: Петров: «Я учусь, ты учишься, он учится» – сколько времени?

Петров со вздохом: Пропала, Марья Иванна!

*

Учитель: Петя, спрягайте глагол «идти»

Петя, медленно: Я иду, ты идешь…

Учитель: Живее!

Петя: Он бежит, мы бежим, ты бежишь!

*

Воспитатель: Сушкина, подавайте предложение с обращением.

Сушкин студент: Мария Иванна, звоночек!

Идеи для школьного КВН

К счастью, школа – это не только бесконечные уроки, ответы на доске, оценки и смены классов. Еще это творчество, юмор, дружба, искрометное общение… Одним словом – КВН!

В каждой школе есть веселые и находчивые ученики. Возможно, это точно такой же Маленький Джонни, герой анекдотов. Что, если бы вы направили его энергию в творческое и позитивное русло?

Для сцен из школы КВН подойдут красочные изображения учителей, например, инструктора физкультуры, слишком активно пропагандирующего здоровый образ жизни, математика, который не может сделать шаг, не считая, просчитывая траекторию перемещения из офиса на другой, учитель-экстрасенс, который читает мысли учеников.

Старшеклассники, играющие в КВН, могут использовать форматы, предлагаемые центральным телевидением: ток-шоу, пресс-релизы, интервью.

Вот несколько идей коротких анекдотов из школьной жизни, которые можно использовать в КВН:

  1. В нашей школе прошел Кубок обладателей кубков в клетку. В финал вышли два участника: спортивный тренер и рабочий. Трудовик победил в тяжелой схватке: им удалось вырезать пару королев сопровождения.
  2. Мама не такая страшная, как ее рисуют первые ученицы.
  3. В прошлом учебном году группу учеников нашей школы отправили по программе обмена учиться в Париж, поэтому они получили самые низкие оценки! – Какая жалость, а на что они надеялись? – И надеялись, что на второй год их оставят…
  4. – Петров, а почему вы всегда грызете перо? – Это привычка. Я ничего не могу с собой поделать. – Вы привыкли, но в школе есть расходы! Давай, оставь дверь в покое и садись!
  5. Петя принес из дома цветок. Маша взяла занавески из столовой, чтобы их постирать. Вася купил в школу пластиковое ведро. Как ты выбрался из школьного летнего заключения?

Александр БАЛАШОВ

ВРЕМЯ «Ч» ПОСЁЛКА ЧУМИЛОВО

Рассказ

Преподаватель курсов гражданской обороны Сергей Иванович к своим сорока восьми годам при нездоровом холостяцком образе жизни сумел каким-то чудом сохранить мужское здоровье, оптимизм и даже некоторую привлекательность. Хотя его жизнь била… Ох, как часто била. И иногда даже по голове и другим чувствительным местам.

Он был коренным курянином, детство и отрочество провел на Мурыновке, водя дружбу с местной задиристой шпаной, и не мечтал стать ни моряком, ни летчиком, ни космонавтом. Ну, как-то не мечталось об этом Серёге…

 Его мама, врач противотуберкулезного диспансера, женщина твердых правил советского интеллигента, настояла, чтобы сын, получив аттестат зрелости, поступил в какой-нибудь институт. Не важно в какой. Важно, чтобы в институт. В те далекие уже от нас годы это не грозило никакими материальными расходами, и Серега подал документы в политех. На инженера он учился легко, прогуливал лекции и сдавал экзамены, пользуясь чужими конспектами и шпаргалками, но инженером так и не стал. Ни плохим, ни хорошим. Судьба, видно, такая.

Армии, после военной кафедры, Сергей не боялся. Служил «двухгодичником» – значит, не солдатом, не настоящим командиром. Короче, отбыл номер, как говорится. Демобилизовавшись, бурно отгуляв положенный месячишко, каким-то неожиданным для себя способом все же стал офицером. И не простым, армейским, а офицером ВВ – внутренних войск, которые он в шутку расшифровывал так: «войска вертухаев». Это те самые части, которые охраняют виноватых перед законом от законопослушной части общества. В колониях страны, строгого и не очень режимов, дослужился до майора и вышел на пенсию, имея лишний вес, высокое давление и вконец расстроенные зэками нервы, которые лечил традиционным для русского человека методом.

Затянувшееся лечение и нехватка денег на «достойную семейную жизнь» в трудные девяностые годы странным привели Сергея Ивановича на тихую и, как он полагал, спокойную и не пыльную, преподавательскую работу – на курсы ГО. (Вот уж поистине: нет худа без добра.) Человеку с высшим образованием, бывшему майору внутренних войск, объяснили, что ему доверяется ответственный участок по ликвидации неграмотности населения «по линии гражданской обороны» и, в свою очередь, направили на свои внутренние курсы подготовки (или переподготовки) кадров, обучающих жителей городов и весей азам гражданской обороны.

Знания Серега, как всегда, хватал на лету. Курсы, уже находящиеся внутри новой системы МЧС страны, он закончил с устной благодарностью начальника и с легкой душой был выпущен для просвещения неграмотного (по линии ГО) населения.

Вся последующая работа новоиспеченного преподавателя Константинова, как он и предполагал, была не слишком пыльной. Но – нервной. А нервы, как он познал еще во внутренних войсках, лучше всего лечит дружеская компания и чарка водки. Иначе, какая же это «дружеская компания» – без чарки?

Больные с расстроенной нервной системой по своему опыту знают, что лечение нервов в стране, где на дню по пять-шесть стрессов, дело трудное и, можно сказать, безнадежное. Затянувшееся лечение привело к разводу с когда-то любимой супругой, которая при разделе имущества умудрилась подчистую выписать Сергея Ивановича с общей жилплощади, сделав его таким образом профессиональным бомжем, то есть обычным для нашего общества «человеком без определенного места жительства». Кроме двухкомнатной квартиры, его «вторая половина» отсудила всю мебель, бытовую технику и дочь-отличницу, лишив Сергея Ивановича родительских прав.

Для любого человека, а уж для преподавателя курсов ГО тем более, удар был ниже пояса. Но время, как известно, всё лечит. Сергей Иванович с одной спортивной сумкой переехал к престарелой маме в однокомнатную квартиру своего детства на Мурыновке, где безобидная шпана давно уступила место крутым мальчикам, готовым за банальную «мобилку» заодно отобрать у человека самое дорогое – жизнь.

От длительного и необратимого запоя его спасла преподавательская работа и оптимизм, привитый еще доцентами и профессорами политеха, когда жизнь была и лучше, и веселей. Работа преподавателя курсов ГО перед самой верхней «точкой невозврата» дала ему верный шанс на спасение души и тела.

Выполняя директивы самого молодого министра правительства, руководство МЧС решило «охватить всеобучем ГО» дополнительно к уже запланированному охвату еще пятьдесят тысяч сто сорок пять человек жителей отдаленного Обрыдовского района. Район этот в МЧС славился тремя вещами: пожарами, высокой смертностью населения, в шесть раз превышавшей рождаемость, и полным отсутствием проходимых дорог, что, разумеется, способствовало «естественному отходу» жителей района, нисколько не способствуя его «приходу» в отдаленный от центра район.

* * *

С утра его вызвал начальник курсов.

– Поедете в Чумилово на неделю, – сказал он, – с лекциями по ГО. Население района совершенно не охвачено нашей сетью. Последний раз там был лектор штаба гражданской обороны в сорок седьмом году. И ничего с того времени по нашей линии там не изменилось.

Сергей Иванович от неожиданности даже пошутил:

– В тамошних лесах, наверное, еще партизаны прячутся…

Начальник шутки не принял:

– Чем дальше в лес, тем жирнее партизаны, как говорится… Читали в газетах, какой там свинокомплекс строить начинают? С компьютерным откормом свиней! В рамках нацпроекта стратегически важный гражданский объект. На тысячу свиней один оператор и три компьютера.

– Одному мне не охватить, – вяло возразил Сергей Иванович. – Никто не охватит необъятную…

– Лука Мудищев? – ткнул пальцем в небо начитанный начальник.

– Козьма Прутков.

– Охватите и необъятную, ежели захотите, – отмахнулся руководитель. – Поезжайте с утра один, подыщите съемную квартирку, договоритесь с тамошним начальством. А потом с наглядными пособиями Шмакин подъедет. Пусть только свою «копейку» отремонтирует.

– А как я в Чумилово добираться буду? – грустно спросил Константинов.

– На электричке до Грошевки, а оттуда пять верст до райцентра… Сущие пустяки для такого крепкого мужчины, как вы… Только от станции идите не через болото – вы партизанских троп не знаете, – а по указателям на дороге. Дальше, но вернее, что не утопнете. Главе района уже факс направлен. Так что он вас ждет. Поезжайте.

* * *

Глава района, затюканный областной администрацией чумиловский мужичок с ноготок, но с внушительным пивным животом, кого-кого, а уж преподавателя гражданской обороны никак не ждал. Незваный же гость на Руси всегда хуже татарина.

– Никакого факса я не получал, – сказал пузатый. – Да у нас второй год этот факс не работает. По «мобилке» связь держу, как командующий фронтом, по рации. Да и кого вы, – он заглянул в командировочное удостоверение Константинова, – Сергей Иванович, учить у нас, в Обрыдовке, будете? Трех девяностолетних бабок из дома престарелых?

– А компьютерный свинокомплекс кто строит? Не бабки же?

– Не бабки, – согласился глава. – Но пришлые строители за большие бабки работают. И на ваш ликбез их не отвлечешь – приоритетный проект, сами понимаете… Президент по головке за срыв строительства никого не погладит. Понимаете?

– Понимаю, – кивнул Сергей Иванович. – Только и вы меня, уважаемый Иван Петрович, поймите. Работа у меня такая – людей гражданской обороне учить… Пусть человек двадцать правильно противогаз надевать обучим и от разлитой ртути или хлора спасаться – все равно польза. А в справке вы мне нужную цифру проставите.

– От ртути? Да у населения столько и градусников нет, чтобы ртуть ту разлить…

– А террористы всякие? Враг, Иван Петрович, не дремлет…

Сергей Иванович, глядя на мелко дрожавшие пальцы главы, похожие на дешевые сардельки с богатым содержанием красителя, свистящим шепотом таинственно спросил:

– Скажите, вас кошмары не мучают?

– Нас, честно скажу, по весне пожары замучили. Жгут сухую траву, сволочи! Нашли себе безработные пьяницы забаву. Две деревни близ райцентра на корню подчистую сгорели. Хорошо, что пустые были. Никто не пострадал. Пожарных машины три, но две, как всегда, – на профилактике. То есть не на колесах. Да и с водой в районе проблема. Болот много, а воды – нет.

– При пожаре нужно лечь на пол и дышать через мокрую тряпочку, – вставил Сергей Иванович.

– У нас все больше молчат в тряпочку, а не дышат, – возразил глава.

– Это же хорошо, что молчат… Организуем несколько занятий по ГО, слух разойдется о массовом охвате. Нужная цифра в годовой отчет попадет. И вам почет, и мне хорошо…

Иван Петрович задумался, тяжко дыша грузным животом.

– Понимаю… – протянул он. – Офицер? Вижу по блеску в глазах, что бывший офицер…

– Майор, – ответил Константинов.

– Старший лейтенант запаса Тяпочкин, – не вставая на коротенькие ножки, протянул над столом пухлую ручонку глава района. – Для начала определю я вас на постой к нашей Раисе. Гостиницы-то у нас пока нет, дом колхозника еще при Ельцине приватизирован под игровой клуб. А Раиса, как никак – заслуженная вдова района, проживает в кирпичном особнячке. Детей нет. Мужа нет. Однодворка, так сказать. Хозяйство крепкое, да и вдовушка еще подходящая для… гражданской обороны. А материнский капитал на двоих поделите. Ведь и вам тоже основательно придется поработать.

Иван Петрович заколыхал животом, смеясь своей шутке в одиночку.

Константинов даже не улыбнулся. Он не любил подсмеиваться над своей работой, которую считал если не героической, то вполне серьезной.

– А чего это вы эту Раису называете «заслуженной вдовой района»? Это что, ввели такое звание для, простите, усугубления демографического взрыва?

Тяпорчкин, не переставая смеяться, только смахивал маленьким женским платочком слезы с глаз.

– Да нет, звание, так сказать, неофициальное. Но присвоено самим народом. И вполне заслуженно.

– Как это? – не понял Сергей Иванович.

– Да к своим сорока пяти годкам наша Рая трех законных мужей похоронила, – не расставаясь с веселыми нотками в голосе, стал рассказывать глава страшную историю про три загадочных смерти Райкиных суженых-ряженых. – Первый, Иван Мухин, еще до свадьбы хиловат был. Всё кашлял да хворал еще при колхозной власти. Помер прямо на брачном одре. Утром гости опохмеляться пришли, Райка его – толк в бок. А он уж холодный. Видать, еще ночью копыта отбросил.

– А второй?.. – унимая дрожь в голосе, спросил Константинов.

– Кешка-то? Иннокентий? Этот год в мужьях отходил. Не пил, не курил, на стороне с доярками не баловался. Да только построил летнюю кухню, стал печь опробовать – как она, не дымит ли? – и помер, наш Кеша, угорел, наверное… Этого жалко было.

Константинов придвинулся к Тпочкину поближе.

– Ну, а третий?

– Третий? – переспросил глава района. – Это Игорь Скачков… Мужик крупный был, как и вы, но с щербинкой. Не просто выпивающий, а много, очень много пьющий. Заслуженные алкаши района сказывали, литровую кружку самогонки без закуски за раз на спор мог выпить.

– А с закуской? – поинтересовался Сергей Иванович.

– А с закуской, стало быть, цельное ведро. Но это к слову, так сказать… Этот Игорь, как только пристройку к дому закончил, дверь на петли нацепил – так и под новой дверью преставился… Инфаркт. Хлоп – и нет Скачка. Раиса в слезы – это ведь снова и ка-а-кие расходы: гроб, венки, место на кладбище, опять же поминки для всей улицы… Не везет бабе – и все тут. Прогневила, видать, небеса… Вот и не стала рисковать в четвертый раз. При такой демографической политике на одних похоронах разориться можно и по миру пойти. Щас это быстро.

Тяпочкин вздохнул, достал из кармана жменю семечек и с сосредоточенным видом руководящего лица стал лузгать семена подсолнечника, сплевывая шелуху и всякий мусор прямо на пол «отделанного евроремонтом» своего шикарного кабинета.

– Бог троицу любит, – тоже вздохнул Константинов. – Четвертого покойника можно не ждать… С такой рекламой кто теперь женится?

Глава покачал головой:

– У нас на болотах по ночам огоньки какие-то скачут, уфологии из Москвы приезжали, сказали, что аномальная зона у нас, в Чумилове – все их рамки в кулаках поскручивало, будто нечистая сила узлом морским завязала проволоку. Может, и не в Райке тут дело. Но береженого, как говорится, и сам бог бережет.

Сергей Иванович, отличавшийся умом и сообразительностью, задумчиво протянул:

– Тут одна закономерность имеется… Не думали над ней?

– Нет, – честно признался Тяпочкин.

– У всех ее мужей имена начинались на букву «И» – Иван, Иннокентий и Игорь. Так?

– Так точно! – обрадовался этому открытию Иван Петрович, вспомнив, что и его имя начинается на роковую букву «И».

– И все, кроме, первого что-то строили, а построив, тут же умирали… Так?

– Ещё теплее… И первый строил! Вспомнил! – хлопнул себя по лбу Тяпочкин. – Он еще когда женихался, Райке беседку летнюю во дворе соорудил. Чтобы в ней с молодой женой культурно отдыхать, так сказать.

Константинов встал. Встал и Тяпочкин, доставая из широких штанин сотовой телефон для вызова персонального УАЗика.

– Её мужей давно нет на белом свете, заслуженная вдова района осталась. Товар пропадает. И какой товар!.. Высший сорт, я вам доложу.

– И не надейтесь! Во-первых, мое имя начинается не с буквы «И». Во-вторых, я ничего строить не собираюсь… Гвоздя с детства забить не умею!

Глава, бегая по кнопочкам телефона – будто на гармошке пиликал – пухлыми пальцами, буркнул:

– Ну, это мы еще посмотрим…

Не дозвонившись до шофера, он открыл окно и крикнул водителю:

– Гришка, гад, гони гребенку – гниды голову грызут! Да подгоняй машину под меня!.. К нашей заслуженной вдове, к Райке, поедем с преподавателем ГО… Да пошевеливайся, тяжеловоз!

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

– А какая у Раисы, однако, фамилия? – спросил Сергей Иванович.

– Зачем ей фамилия, когда столько раз её меняла? Просто – заслуженная вдова, наша, так сказать, достопримечательность.

Шофер, глядя не на дорогу, а в зеркало заднего вида, резко тронул машину с места. Константинов больно ударился лбом о могучий затылок главы района.

– Она у нас и предпринимательница!.. Чего только не предпринимает с мужиками, эх!..

* * *

Дом Райки-предпринимательницы Константинов узнал без подсказки главы. На улице неизвестного преподавателю курсов какого-то Семена Пичугина вызывающей роскошью среди убогой чумиловской нищеты белел коттедж, обвитый виноградной лозой. На лавочке у ажурного забора, покрашенного ядовито-зеленой автомобильной эмалью, как гипсовый монумент сидела рослая женщина с белым пуховым платком на борцовских плечах. На коленях у монумента возлежал откормленный кот – редкий для такого захолустья «перс» или, на худой конец, «полуперс». Кот громко храпел, выражая свое великое удовольствие от теплого солнышка, почета и уважения со стороны ласковой хозяйки.

Пахло пригретой солнцем парной землей и свежим навозом. От надворных построек вместе с поросячьим похрюкиванием ветерок доносил резковатый запах аммиака.

Константинов профессионально раздул ноздри, поводил носом.

– Аммиак, – угрожающе проговорил он.

– Свинарники нужно чистить, – ответил шофер, ударил по взвизгнувшим, как от боли, тормозам и кивнул хозяйке коттеджа: – Доброго здоровьица вам, Раечка! Гостей принимаете?

 – Добрых принимаю, злых – гоню! – растягивая слова, томно ответила Раиса, сбрасывая с белых коленок кота-тяжеловеса.

– Здрасьте, уважаемая Раиса Борисовна! – поклонился Тяпочкин.

Открыл заднюю дверцу машины и Константинов, не решаясь выйти из своего укрытия.

– Кого на постой привезли? Стоящего или так себе? – поправляя платок на плечах, поинтересовалась заслуженная вдова.

– Я преподаватель гражданской обороны, фамилия моя Константинов. На постой возьмете? На время моей недельной командировки? – почему-то волнуясь, затараторил Сергей Иванович.

Раиса сощурила глаза.

– Тяпочкин платить за вас будет или сами, из своего бюджета? – поинтересовалась она. – Ежели Тяпочкин, то я не согласная. Райадминистрация со мной еще за постой эколога и трех уфологов из столицы не расплатилась… Бюджет, видите ли, у нее плохой… А мне начхать – плохой он или хороший. Мы капитализьм строим али хрен собачий? Коль капитализьм, то извольте платить по полной… Тем более, постояльцы эти мне фикус своим постоянным ссаньём загубили. По ночам писали прямо в кадку с дорогим моему сердцу растением. Это была память о Ванечке, засохла память на корню…

Она театрально всхлипнула и перевела черные пытливые глаза на грузно вылезавшего из машины Сергея Ивановича, оценивая его молодецкую стать и мощные хваткие руки бывшего профессионального вертухая.

– Я вам из своих квартирных заплачу, – твердым голосом карточного шулера пообещал Константинов. – Вы, Раиса Борисовна, останетесь весьма нами довольные…

Почему он сказал «нами», а не «мной», для Сергея Ивановича так и осталось загадкой. Может, вспомнил классиков русской литературы, каких «проходил» еще в школе. А может, это было провидение. Но этот старорежимный оборот хозяйке неожиданно понравился.

Она кокетливо улыбнулась и потупила глазки.

– Ловлю на слове. Только не называйте меня по отчеству. Молода ишшо…

– Как же вас называть? – наконец спрыгнул в дорожную пыль Сергей Иванович и тут же вляпался в гусиные экскременты.

– А вы сами придумайте, господин постоялец… – томно прошелестела Раиса. – У вас голова большая. Как у моего Васьки…

– Васьки? – не понял преподаватель ГО.

– Кота моего, перса-шалуна… – пояснила хозяйка белокаменного особняка. – Он, паразит, представляете, привык со мной спать. Я его на пол сшибаю, а он на грудь лезет… Боюсь, изнасилует ненароком.

«На такой груди многим место находилось», – подумал Константинов. А вслух сказал, вежливо улыбаясь собеседнице:

– Кот пусть Васькой останется, а вы для меня будете Василисой… Прекрасной. Или премудрой… Хорошо?

– Прекрасно-Премудрой, гражданин постоялец… Вещичек что-то у вас, гляжу, не густо. Одна сумка?

– Остальное вот тут, – на то место, где была прорезь кармана, Константинов. – Всё свое ношу с собой!

– В штанах, што ли?..

Перс Васька лениво обошел хозяйку, потерся о ее голые ноги и зло стрельнул дурным глазом в гостя. Этот сексуальный кот, когда начинался гон, орал таким страшным голосом, что постоянные обитатели дома престарелых, который располагался по соседству, в помещении бывшей земской больницы, крестились, будто встретились с нечистой силою. Дом престарелых был построен еще в начале 19 века каким-то купцом Мушкиным, и, если верить черной чугунной табличке, то дом этот до сих пор охранялся законом, как единственный чумиловский памятник архитектуры.

Еще при покойном Ельцине половину этого памятника отдали под СДК (сельский дом культуры), а в другой половине государственного памятника жили ничейные старики и старухи, собранные сюда со всего ближнего и дальнего света.

– В клубе и устроим вашу лекцию по гражданской обороне, – пожимая руку Константинову на прощанье и подмигивая сразу двумя глазами, сказал Тяпочкин. – Будет тебе, майор, благодарная тихая аудитория. И справка райадминистрации о проделанной курсами ГО работе тоже будет.

– С указанием массового охвата, – вставил Сергей Иванович.

– Ну, охват нарисуем, – все не отпускал руку преподавателя глава. – За одну душу не больше Чичикова берем…

– Про долги свои тяжкие не забудь! – вдогонку крикнула, как оказалось, голосистая Раиса-Василиса. – Не то администрацию на свой счетчик поставлю!

* * *

– Меня ты Василисой окрестил, а как звать-величать тебя, мужчина? – по-хозяйски занося сумку в дом, спросила Премудрая.

– Сергеем Ивановичем, – представился Константинов.

– Серегой, значит… – улыбнулась она и кивком пригласила постояльца в дом. – У меня Сереги еще не было. Всё на «И» попадались…

Сергей Иванович вздрогнул, как от пистолетного выстрела.

– За неделю проживания сколько с меня? – нервно суетясь, спросил Константинов, доставая бумажник со всей своей наличностью.

– Не спеши, Серега, – сказала она, приземляясь в кресло за журнальным столиком. – Слыхал рекламу такую – «не спеши!». Нам, бабам, от мужской спешки даже крохи счастья не перепадает. Щас разберемся…

Хозяйка, ввинтившись задним местом поудобнее, достала из кармана нарядного фартука калькулятор, набрала кнопочками одну цифру, другую… Что-то приплюсовала или умножила.

– Так, неделя проживания началась сегодня, с 12 часов ноль-ноль минут. Это будет стоить…

– Сколько? – нетерпеливо спросил Константинов, чувствуя позывы сходить «по-маленькому» в стоявшую рядом с ним кадку с пожелтевшим фикусом.

– Окончательная цифра после одного щекотливого интимного вопроса, – сказала Василиса Премудрая. – Спасть, Серега, где будешь?

– Где положите… Только, пожалуйста, не в пристройке. Ужасно не люблю спать в пристройках с мышами и крысами, знаете ли…

– Я не о том. Со мной, на двуспальной кровати, или вот на том диванчике, что за шкафом? – она смерила взглядом Сергея, потом диван и заключила: – На новой тахте только сидеть разрешается. И то в нерабочих чистых штанах.

Константинов напряженно молчал.

– А чё стесняться? Мы ж не маленькие дети. И при рынке за всё платить требуется. Так шо лучше сразу, шобы потом без осложнений и выяснений… Без суда, так сказать, и следствия.

Хозяйка, поняв, что сморозила лишнее, исправилась, добавив:

– Те уфологии, как все инопланетяне, были маленькие, коротенькие и обходились без женской ласки. Втроем на диванчике, полягавши поперек, запросто умещались. Спят, как мертвые. А зачем им баба? Всё равно пьяные… Вы – другое дело. Гражданская оборона – дело сурьёзное…

Она, взглянув на габариты Сереги, снова перешла на ты:

– Диван тебе, пожалуй, маловат будет. Ты – большой.

– Большой, – машинально кивнул Константинов. – Такой большой, что даже трусы на базаре купить – целая проблема. Не влезаю в шестидесятый… Резинка лопается.

Она зажала рот ладошкой и прыснула, как школьница:

– Мы проснемся в шесть часов – нет резинки от трусов?

– Вот она, вот она – на… карандаше намотана! – закончил за хозяйку преподаватель ГО.

– Это хорошо, – похвалила Василиса-Раиса. – Я люблю, когда большой… У человека всё должно быть большое. Чтобы душа радовалась.

Константинов, разглядывая дырку на своем правом носке, которая виднелась из сандалия, сказал тихо:

– Придется, наверное, с вами, Василисушка, раз диван за шкафом для меня маловат будет…

Она машинально кивнула и набрала еще одну цифру:

– Значит, плюс еще 200 рублей за каждую ночь…

– Сколько, сколько?..

– Двести. Это в пять раз меньше, чем в самом дешевом борделе. Я по телеку передачу о борделях смотрела.

Сергей Иванович прикинул всю сумму командировочного пособия, приплюсовав сюда еще и накопления на отпуск в Кисловодске, частично прихваченные в Чумилово на «скупые мужские радости».

– А если я буду просто спать рядом с вами? – покачивая головой от суммы непредвиденных расходов, спросил Сергей Иванович. – Без, так сказать, прямого сексуального контакта? – уточнил он, стараясь не смотреть в ее горящие глаза, в которых, как ему показалось, отражались цифры с экрана калькулятора.

– Никакой разницы. Все равно двести. Ведь не утерпите же!.. А потом доказывай, что это вам не приснилось…

– Тогда «просто так» с вами спать не выгодно, – заключил Константинов.

– Просто так ничего не выгодно.

– Да вы прирожденная капиталистка…

– Не перехвалите, Сергей Иванович! Что двести с услугами, что двести без услуг. Уверена, что такой рассудительный человек, как вы, деньги на ветер швырять не станет…

– Уж постараюсь, будьте уверены, – подтвердил ее догадки Константинов. – И дураку ясно, что при таком раскладе выгодней со всем набором услуг.

Он замолчал, подсчитывая окончательную сумму в уме и думая еще поторговаться с чумиловской «акулой капитализма».

– Капиатализьм научит всех копейку считать… – с каким-то злорадством проговорила заслуженная вдова района. – Это вам не на субботники с бревном на горбе ходить.

Все социально-экономические формации она произносила с мягким знаком после буквы «З». И потому даже неприятное, с заморским акцентом слово «капитализм» в ее сахарных устах звучал по-особому ласково.

– А вы, Василиса Премудрая, подкованы в экономических вопросах…

– А как же! Я ведь, Сережа, раньше бухгалтером у Тяпочкина была. За плечами – заочный техникум. Высшего-то не было. Потом постарела. Потом Тяпочкин помоложе бухгалтера нашел… Я не в обиде – жизнь.

– Безработная, значит, Василиса ты моя Перемудрая?.. – с сочувствием в голосе спросил Сергей.

– Зачем – безработная? В дом престарелых устроилась…

– Заведующей?

– Ну и мастер ты на комплименты, Сережа…

Она подарила ему ласковый взгляд.

– Следующий, сказал заведующий… За три года двоих заведующих посадили за воровство… У старушек хоть и грешнее воровать, но значительно проще. У них памяти нет. Да и жаловаться в Чумилове некому.

Она встала с кресла и подсела к Сергею Ивановочу на скрипнувшую тахту, скромно оправив на коленях величиной с астраханский арбуз, модную юбку.

– Нянькой пошла. Зарплата воробьиная. Но условия я им поставила жесткие: все отходы с кухни – мои! Слежу теперь, чтобы выкладка продуктов была строго по калькуляции. Иначе старушки в мисках своих шиш мне, а не отходы оставят…

– А зачем тебе, Премудрая, старушечьи отходы? – пожал плечами Константинов.

Она всплеснула руками:

– Ну, нашел чего спросить! Ну, ты прямо, как Задорнов говорит, тупее американцев!.. Я ведь свиней выкармливаю! Свиноматок породистых, красных… Евриками за такого поросеночка область платит в дальнем зарубежье! А я ей – за рублики. Патриотизьм – налицо! И государству навар, и мне, бедной вдове, ненакладно… Поросяткам на молочишко. Они ведь у меня – молочные.

Сергей Иванович почесал лысину. Да, подумал он, чужая душа потёмки, а уж душа чумиловской миллионерши – темная ночь. Пора было возвращать разговор в старицу, в прежнее русло.

* * *

– Так на какой сумме мы остановились, Василиса Прижимистая? – неудачно пошутил Константинов и тут же пожалел об этом.

– Так вот же она, гляди, пережиток халявы! – поднесла она к глазам Константинова калькулятор. – Задаток, плату за четыре дня проживания, – вперед.

Сергей Иванович глубоко задумался.

– Если считаете, что сумма велика, – вкрадчиво произнесла вдова, – можете отработать ее на моей домашней стройке… Я сейчас как раз помещение для откорма расширяю. Заплатите натурой, так сказать…

– Нет, нет! – поспешил откреститься от рокового предложения Константинов. – Я строить не умею. Какой из меня строитель? Со мной и жена развелась, что я гвоздя в неё, то есть в её стенку, не забил! Нет-нет, ничего и никогда строить не буду!

– Наколете кубометр дровишек для баньки – сброшу сотенку…

– Я вам не дровосек! Я – преподаватель. Обучаю население гражданской обороне. А это, уважаемая Василиса, вам не хухры-мухры! Это вопрос нашего выживания в самое тяжкое время испытаний. Настанет Страшный суд – и вы вспомните обо мне!.. Ох, как вспомните…

– Ладно! – махнула рукой Раиса Борисовна. – Вы только Страшным судом не угрожайте. Не вы судия, не вы… Не хотите строить и пилить, как хотите… Питаться у меня будете или у шашлычника Казбека?

– Я шашлыки люблю…

– Сто грамм шашлыка – сто рублей. В сущности платить придется за пережженные в мангале кости.

– Лучше бы меня послали в столицу. Там, думаю, дешевле…

– У кого, спрашиваю, питаться будешь, Сережа?

– Буду питаться у вас. Стол номер три, диетический.

– А стул?

– Причем тут стул?

– Ладно. Кашки сварю. Геркулесовой… Только чур ночью в спальне воздух не портить, и не ржать по-лошадиному от овса.

– Кашку не чаще, чем раз в три дня.

– Три раза?

– Что – три раза?

– Питаетесь, спрашиваю, три раза в день или предпочитаете кефирную диету?

– Диету без кефира.

– Кефир, уверена, уже нужен на ночь, чтобы обеспечить нормальный стул. Кстати, за дезодорант в туалете плата отдельная. Спички не жечь, на унитазе не курить!

– Согласен.

Она сделала еще одну арифметическую операцию, и в окошке загорелась новая цифра.

– Однако… – покачал головой Константинов. – А чаем кефир заменить можно?

– Без сахара, разумеется? – язвительно спросила она.

– С сахаром и лимоном! Вот!

– Пожалуйста. Вот вам ваш чаёк…

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

– А я вот, заметьте, госпожа предпринимательница, буду читать лекции и проводить практические занятия с населением по гражданской обороне совершенно бесплатно.

Она пожала плечами.

– Бесплатным бывает только дохлая мышь в мышеловке…

– Сыр!

– Сыр бесплатным не бывает. Это всё придумки таких халявщиков, как вы.

– А вы, вы – вы великая чумиловская скупердяйка!

– От скупердяя слышу.

– Мои лекции для населения – бесплатны.

– Если напишите в афише, что «бесплатно», вообще никто с поселка не придет. Тяпочкин, конечно, дом престарелых организует – благо до клуба им три шага. Но ходячих мало. Лежачих везти не на чем. Да и какая им, брошенным инвалидам, теперь гражданская оборона нужна? Парализованная бабка не натянет ваш противогаз.

– Старость не радость.

– Ну, и не гражданская оборона, господин преподаватель. Будете упорствовать, вообще никого на вашу лекцию не приведу!

* * *

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

Константинов, устав лаяться, решил лечь спать немедленно. Без «обеспечения проходимого стула». Черт с ними, со всеми стульями мира, когда женщина в собственном соку засыхает над скучными цифрами калькулятора.

– Вы уже на ночь, так сказать, отходите?

– Отхожу!

– Тогда чур! – разбирая кровать в спальне, предупредила Василиса Прекрасная. – Перед возложением в мою постель, пахнущую лавандой, спиртное не пить. Терпеть не могу над собой перегара. У меня после Игорька условный рефлекс выработался, как у собаки Павлова: без предупреждения бью в сопатку кулаком, если запах учую.

«Ничего, – подумал Константинов, – лаврушечкой зажуем, ни одна собака, не то что трижды вдова, не учует». Выпить он решил обязательно. Иначе зачем припас чекушку?

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

– Сережа, почитай мне стихи. Если знаешь – Есенина…

Константинов, запутавшись в правой штанине, которая не хотела сдаваться на милость победителя, прыгал на одной ноге еще в зале.

– Я не поэт, – декламировал он. – Но я скажу стихами. Иду к тебе я мелкими шагами…

И он заскрипел зубами от необузданной страсти, глотнув для смелости из небольшой походной фляжки.

«Теперь дело пойдет, – решил он, глядя на свое отражение в зеркале. – Пойдет дело как по маслу!».

Но дело почему-то «не пошло». Его желание таяло с каждым шагом, который он делал по направлению к спальне. Когда взялся за золотую ручку и, наконец-то, открыл дверь, уверенность в себе окончательно его оставила. В голове медленно поплыла реклама чудодейственного африканского средства «Вуко-вуко», которым чернокожие туземцы поднимали свое мужское достоинство. Этим рекламным стимулятором Сергей Иванович никогда в жизни не пользовался, а боевые сто граммов всегда срабатывала.

«Нужно выпить еще, успокоиться», – решил он.

– Еще не вечер, – сказал Константинов. – Я вспомнил, что мой напарник должен подъехать. Пойду встречу, а то заблудится в ваших тупиках.

– Так ждать? – равнодушно спросила хозяйка. – Предупреждаю, ежели засну, то не буди. Я злая спросонья!

Константинов неожиданно обрадовался такой перспективе.

– Хорошо, хорошо, голубушка… – пролепетал он, радостно отступая от заветной двери. – Как скажешь…

«Черт с ними, этими двуустами рублями, – подумал он. – В жизни не все измеряется деньгами, в конце концов!». И вспомнив про трех безвременно почивших мужей этой капиталистической бестии, вслух сказал самому себе:

– Жизнь, Сережа, дороже пятиминутной слабости…

* * *

Он вышел в сад. Тихий летний вечер ласково лег ему на плечи. В доме престарелых и в клубе одновременно зажгли электричество. Три старушки с солдатскими мисками наизготовку ожидали на лавочке, когда позовут на ужин работники столовой чумиловской богадельни. Во второй части покосившегося здания, где располагался РДК, слышался девичий визг, и басовито бухал тяжелый рок. Бабушки поеживались от вечерней прохлады и собственной обреченности.

 Мощная аудиосистема заокеанской музыкой сотрясала вечернюю идиллию. Да так ритмично и назойливо, что старушки в одинаковых серых халатах в такт этой металлической музыки помимо своей воли и физических сил подпрыгивали на лавке, тихо позванивая алюминиевыми ложками о миски, как игроки на бубнах.

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

Он знал, что Шмакин обязательно приедет сегодня. Не имел права не приехать.

И оказался прав.

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

– Не проходите мимо, – сказал Константинов Шмакину.

Тот резко остановился, и бутылки в сумке тут же издали знакомый слуху вечерний звон.

– Константинов! – обрадовался Семен. – А я тебя по всей округе ищу! Гостиницы, ядрена вошь, и той в этом захолустье нету. Сказали, что с какой-то вдовой уже живешь. В белокаменных хоромах. А хоромы – вот они. И ты, блин, сидишь в трусах, как дома на диване.

– Занимай, Шмакин, гражданскую оборону.

Константинов несказанно был рад своему напарнику по ГО, но виду не подавал. Он был старшим преподавателем, а Шмакин (он был и на год помоложе) числился «просто преподавателем». Без – «ст».

– А мне у твоей вдовы можно остановиться? – спросил Шмакин, перевешивая тяжелую сумку на другое плечо. – Я тут кое-что поужинать в местном гастрономе взял. Как думаешь, водка не паленая? Не отравят эти чумовые чумиловцы тех, кто их труду и обороне учить будет?

– Уфологии, говорят, месяц от этого горючего не просыхали, пока тарелки свои по болоту искали, – ответил Сергей. – Значит, и мы живы будем.

– Болота у них, верно, замечательные, – сказал Семен Васильевич, прикуривая сигаретку. – Мой драндулет по уши сел в грязь сразу же за переездом. И ведь дождей недели две не было. Чудеса…

– Машину бросил на дороге?

– Нет, – покачал головой Шмакин. – Я ее в противогазной сумке с собой принес. Чего там воровать-то? Металлолом ржавый. А наглядное пособие для практических занятий, противогаз, почти новый, образца 1953 года, с собой прихватил. Плакаты в машине бросил. На кой черт нам эти плакаты? Их в сорок восьмом рисовали.

Семен плюхнулся на лавочку, блаженно вытянув журавлиные ноги. (Когда-то Шмакин работал участковым милиционером, исходил по «нехорошим квартирам» столько верст, что ими можно было трижды опоясать земной шар. Поэтому больше всего на свете теперь не любил пеших походов.)

 – Сколько верст по бездорожью пер!.. Ежели срочно не выпью – умру.

Сергей Иванович бережно принял от напарника тяжелую сумку.

– Я рад, Семен! – похлопал по плечу Шмакина Константинов. – Ты даже не представляешь, как я рад твоему появлению к урочному часу…

Шмакин огляделся, остановил профессиональный взгляд дворового сыщика на беседке и, улыбаясь, сказал:

– А давай тут, в беседочке, и пристроимся. Время «Ч» в Чумилове… Что может быть лучше?

И не дожидаясь согласия старшего группы, стал выкладывать хлеб, сыр, колбасу, селедку и прочую снедь. Бутылки с напитками он предусмотрительно поставил под стол – подальше от жадных взглядов любопытных старушек из дома напротив.

– Там что за наблюдательный пункт, Сергей?

– Дом престарелых. Памятник 19 века.

– Так долго никакие престарелые не живут, брат…

Шмакин открыл первую бутылку.

– А стаканы?.. – предвкушая счастливый вечер в беседке, воскликнул Константинов.

– Вот, два одноразовых…

Он деловито порезал колбасу, сыр и селедку, разлил по пластмассовым стаканчикам водку.

– За гражданскую оборону! – поднял тост Семен. – За тех, кто сейчас на вахте и на гауптвахте!

– И в забытой начальством и Богом поселке Чумилово! – поддержал Сергей.

Выпили, закусили. Еще выпили. Опять закусили. И все делали молча, сосредоточенно, ожидая предсказуемого эффекта. Пока не поймали первый кайф.

 Тогда сразу же заговорили, конечно, о женщинах. Потому что были в командировке. То есть – как бы на работе.

– Я после того, как меня Зойка бросила, – разливая вторую бутылку, сказал Шмакин, – ни одной женщины больше не имел…

– Не получалось? – поинтересовался Константинов.

– Да нет, желание есть и очень хорошее. Да вот возможность не подворачивалась. То одно, то – другое… Некогда.

– А сейчас – хочешь?..

– Тыщу бы дал. Край, как хочу…

Он глубоко вздохнул, глядя, как по звонку старушки исчезли в столовой своего казенного дома.

Они еще выпили. Закурили.

– А зачем же доводить себя до крайности, – подмигивая напарнику по обороне, сказал Константинов. – Давай триста рублей – и дуй в спальню. Там хозяйка дожидается в теплой постели с запахом лаванды.

– Вдова? – спросил Шмакин, ставя на место бутылку.

– Заслуженная вдова района. Сорок пять, баба ягодка опять… Блондинка, кровь с молоком. Грудь, как у Памелы…

– Какой Памелы?

– Ты ударение правильно ставь, деревня. Будешь доволен. И всего-то три сотни…

Сергей в этот вечер был готов снять для друга последнюю рубаху.

– Короче, деньги – на бочку! – сказал старший преподаватель. – Ты, Сеня, не из породы великих русских халявщиков? Есть такое сословие в нашем царстве-государстве. При народном капитализме за всё платить нужно… Народу.

– А народ – это ты?

– И я, и ты, и она…

– В общем, целая страна…

Константинов энергично потушил сигарету прямо о стол беседки.

– Короче, или – или… Третьего не дано. Сервис как в пятизвездочном отеле. Женщина порядочная, со средним специальным образованием. Можно сказать, первая бизнес-леди в Чумилове…

– Вы у неё, часом, Сергей Иванович, не сутенёром работаете?

– Не жмись, при нынешних ценах три сотни – тьфу!.. – сплюнул себе на ботинки Константинов.

Семён молча отсчитал три сотни. Сказал, бледня лицом:

– Проводи в апартаменты, друг! Что-то меня знобит, как перед последним и решительным боем… Да и диспозиция мне не знакома…

– Только тс!.. – приложил палец к губам Константинов. – Шлепай за мной на цыпочках! Не разбуди зверя…

– Такая страшная, что ли?

– Спящая красавица, дурак! Ты только ее своими поцелуями не лезь. Молча и аккуратненько сделай свое дело – и приходи опохмеляться. Я тебя здесь, в беседке, буду ждать. Понял?

Шмакин перекрестился дрожащей рукой.

– Что-то мне не по себе от такого сервиса, – сказал он.

– Ни пуха, ни пера! – подтолкнул его к двери спальни Сергей Иванович. И Семён взялся за медную ручку двери, из-за которой слышался переливчатый храп заслуженной вдовы Чумиловского района.

– Что там хрюкает?… – испуганно спросил Шмакин.

– Дурак, она, кроме гостиничного сервиса, еще и молочных поросят выращивает на продажу…

– А-а…

– Давай! Ты ж в десантуре служил, коль не соврал… Пошел, Сеня!..

– За родину! – сдавленным голосом сказал Шмакин, сжимая зубы. – За Сталина!

* * *

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

«И это друг называется… – сокрушенно покачал головой Константинов. – На мое законное, уже оплаченное по таксе место залез! С моей вдовой спать будет, зараза!..».

Он почувствовал, как предательски заныло сердце. Успокаивали только триста рублей, полученные от Шмакина. Все-таки друг другом, а бизнес бизнесом…. Табачок, как говорится, врозь…

 Сергей полез в карман за сигаретами – и в следующий момент раздался страшный крик Шмакина.

«Что она там с ним делает, извращенка чертова?» – с интересом подумал Константинов. Он прислушался к стонам, которые никак не подходили под определение «сладострастные». А потом хрип друга:

– Помогите, убивают!..

Дверь спальни театрально распахнулась, и оттуда, пошатываясь, медленно вышел – нет, выплыл – младший преподаватель ГО Сеня Шмакин. Обеими руками он держался за окровавленный нос.

– Я – что? Я – ничего, Сергей Иванович… – с французским прононсом прогнусавил он. – Я только снял штаны, лег рядом. Она мне: «Читай Есенина!». Ну, я начал… читать – «Не жалею, не зову, не плачу…». А она: «Я же говорила, чтобы не пил! Говорила, что у меня после покойных мужей аллергия на спиртное?»… Я честно отвечаю: «Нет, вы этого мне не говорили». И целоваться полез. Тут она и укусила меня за нос, стерва! Да больно так… И так сильно. Кровь даже пошла… Я закричал, она свет зажгла. «Ты – кто?» – спрашивает. Говорю, что, мол, второй преподаватель гражданской обороны. Прибыл на постой за неимением в Чумилове гостиницы. А она: «Я вам с Серёгой завтра устрою гражданскую оборону!.. Вы меня долго вспоминать будете»… Вот и всё, Сергей Иванович… Страшно мне. И нос болит, не откусила ли вовсе его эта корова?

Константинов посветил спичками.

– Нос на месте, – успокоил друга и соратника по постельной борьбе Константинов. – Припух малость… Так у меня пластырь в кармане, и мазь от мозолей…

– Так там же – рана, а не мозоль, – отстранился Семён. – Кабы заражения не была. У этой бабы, должно быть, и слюна ядовитая. Как у змеи…

Константинов достал пластырь, повернул за нос голову своего коллеги (чтобы удобнее было проводить операцию) и ловко сделал нашлепку на распухший орган обоняния.

Шмакин, со страхом оглядываясь на дверь, за которой, по всему, опять мирно заснула хозяйка дома, сказал:

– Наливай давай, а то умру от шока!

Константинов вздохнул, возвращая напарнику деньги.

– Деньги можешь себе оставить, – покачал головой Шмакин. – У нас теперь и вся медицина платная. А мне, чую, еще долго лечиться придется… – Он мизинцем потрогал травмированный нос. – Я в дом, Серега, больше не пойду ни за какие коврижки… Ты иди, если приспичило, конечно… Ты – человек разведенный, мужчина свободный от предрассудков. А я – старый халявщик, как ты выражаешься. Мы уж тут как-нибудь… В беседке. На свежем воздухе…

Он всхлипнул и добавил, глядя на противогазную сумку:

 – Под голову противогаз – и баиньки. Нам, халявщикам, как и татарам, всё равно, уважаемый Сергей Иванович…

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

* * *

Утром обоих преподавателей ГО, спавших в беседке Раисы Борисовны, разбудили какие-то истошные крики. Первым вскочил Шмакин.

– Никак кого-то режут? – округлив глаза, прошептал десантник. – Господи, ну и дом с привидениями…

– Да тихо ты!.. – дрожа от утренней прохлады, в ответ прошипел Константинов. – Она, друг мой Сеня, троих мужиков на тот свет спровадила… Одного за другим. Это я вчера утаил – тебя пожалел…

– Пожалел волк овцу…

– Тс-с! – приложил палец к губам Сергей Иванович. – Визжат в сарае… Чуешь, какой оттуда запашок идет?

Шмакин загадочно поводил огромным носом, которому бы позавидовал любой армянин с чумиловского рынка.

– Не чую… У меня обоняние травмировано до конца жизни, наверное…

Константинов шмякнул себя по лбу ладонью, догадавшись о первоисточнике звука.

– Да это, Сеня, голодные поросята Райкины требуют завтрака!.. Живые все-таки души. Братья наши меньшие… А вон и хозяйка с ведрами идет. Всех нас сейчас и накормит…

Шмакин сжался маленькой стальной пружинкой, надеясь, что не заметят.

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

Константинов осмотрел ширинку – застегнута ли? – и сделал шаг навстречу Раисе Борисовне.

– Здравствуй, Василисушка наша! – как плохой актер провинциального театра, картинно расставив руки, воскликнул Сергей. – Ты сегодня еще прекрасней, чем вчера… А мы тут с твоими поросятками от голода пухнем.

– Так это твой помощник приехал?.. – глядя на носатого Шмакина, спросила вдова, кивнув вместо «здрасте». – А почему не прописался у меня? Почему оба в беседке спали? Ночи холодные. Простудитесь, а мне перед вашим и нашим начальством отвечать…

– Не волнуйся, Премилосердная Василиса, – закатил глаза к небу Константинов. – Мы, преподаватели гражданской обороны, люди закаленные… Огонь, воду и медные трубы уже прошли. Осталось еще чуток – и чумиловское время «Ч» преодолеем. Ваш Тряпочкин нам грамоты и премиальные к ним выпишет. И пойдем мы на станцию, ветром гонимые…

– Ах, как трогательно, господа офицера!… Прямо уписаюсь от сентиментальности. Почище любого сериала будет.

Она поставила ведра у беседки, лукаво поглядывая на травмированного Семена.

Шмакин, постоянно трогавший свой выдающийся нос, сказал, отъезжая на лавке подальше от обидчицы:

– Я хотел познакомиться сразу же по приезду, так сказать, прописаться, но вы не поняли…

– Всё я поняла… – засмеялась Раиса. – Извиняйте уж вы меня, господин гэошник, простую чумиловскую бабу… Тебя, молодой, красивый, как звать-то?

– Сеня… Семён, значит.

– Значит, Семён… Это хорошо.

– Чего ж хорошего? – возразил Константинов. – Не на букву «И», как все ваши мужья-покойники…

Она сняла улыбку с губ и тут же сделалась серьёзной и деловой «бизнес-леди».

 – Ладно, господа постояльцы, кто старое помянет, тому кулаком в нос. Вы, Сергей Иваныч, правила проживания в доме своему помощнику объяснили?

– Довел до сведения, Раиса Борисовна.

– И тариф коммунальных услуг – тоже, надеюсь?

– Это первым делом. Сейчас вам его задаток отдам.

– Успеется. Сперва поросят накормлю, а потом прошу, господа офицера, вас на завтрак.

– Спасибо, Раиса Борисовна, – в два голоса поблагодарили Шмакин и Константинов, ужасно подхалимничая интонацией и угодливыми жестами голодных людей.

Позавтракали плотно, но не привычными для специалистов по гражданской обороне продуктами: ели теплую овсянку, запивая её парным молоком. Про чай с лимоном и сахаром как-то не вспоминали. Шмакин было заикнулся насчет «поправки головы», но вдова сказала, как отрубила:

– У меня аллергия на запах спиртного… Я тебе, Сеня, кажется, уже напоминала об этом.

– Так точно! Ни-ни! – вытянулся в струнку Семен. – Это я, хозяюшка, пошутил неудачно. По-солдатски пошутил…

Потом наклонился к уху Константинова и прошептал, думая о холодном пиве:

– И за что меня бог наказал? Мы так, Сергей Иванович, долго не протянем… А умирать вроде бы рановато. Есть у нас еще дома дела.

– Пейте молоко, а не шепчитесь, как кумушки!.. Мне его в семь утра уже бабка Настюха принесла, – постреливала глазами в постояльцев Раиса. – У неё одной на всей улице корова на подворье осталась… А раньше что ни двор, то корова. Или коза, на худой конец.

– Коза – тоже домашнее животное, – неопределенно поддакнул Шмакин.

Райка взглянула на заклеенный пластырем нос постояльца и брызнула заливистым смехом:

– Ты, дружок мой Сеня, не обижайся, коль чего не так… Я тебе за нос цену на проживание скину.

Шмакин обрадовался:

– Вот это справедливо! Вот это хорошо… Триста рублей лишними не бывают.

– А мне? – спросил Константинов.

– Так ты не ранен, Сергей Иваныч. Пока еще…

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

– Вроде бы… – протянул он.

– Доедайте скоренько, а то по нашу душу вон Тяпочкин уже топает. Мне команда уже в семь утра поступила организовать всех ходячих старичков и старушек на гражданскую оборону вашу…

К дому от Чумиловского ДК колобком катился толстопузый Тяпочкин. Был он светлом пиджаке, но без галстука и без машины.

— Здастье вам! – крикнул он, открывая калитку. – А я раньше вас готов к труду и гражданской обороне… В клубе полный кворум! Даже двух лежачих принесли на носилках. А киномеханику еще вчера наказал фильм про войну в своих коробках найти. Нашел-таки, паразит!.. Молодчина!

– И что за фильм? – унылым голосом спросил Константинов.

–  «Действия населения после ядерной бомбардировки», вот! Центральная студия Минобороны, пятьдесят восьмой год прошлого столетия…

– А поновей ничего не привезли? – убирая посуду, спросила Раиса.

– Поновей для семинара ничего нет, – ответил Тяпочкин. – Не выпускают больше учебных фильмов на эту тематику. Видать, не спасешься…

– А вы думали! – улыбнулся Шмакин, скашивая глаза на ночную травму.

– Что с носом? – не меняя интонации, спросил глава.

– Бандитская пуля, – ответил Сеня.

– Вы, товарищ преподаватель, поосторожнее у нас… В Чумилове животноводство падает, а бандитизм растет.

– Это точно, – согласился Шмакин.

* * *

– Это бабушкам, – сказала Раиса, заворачивая в рушник пирожки с капустой. – А то неизвестно, сколько им, стареньким, сидеть на вашей лекции в клубе. Как бы не окочурились.

– Заботливые вы, Рая, – сказал Шмакин. – А нам по пирожку?

– Штрафникам не положено.

– Не задерживайте лекцию! – подгонял всех Тяпочкин. – У меня и так времени в обрез!

Рая положила гостинцы в сумочку и пошла через дорогу, наказав закрыть калитку на ключ.

– До встречи, гражданская оборона! – обернулась Раиса у клубного крыльца.

– До скорого свидания, хозяюшка! – отозвался Шмакин, выплескивая недопитое молоко на ощерившегося перса-кота.

…Через пять минут Константинов, Шмакин и Тяпочкин уже занимали на сцене свои законные места.

– Я только открою семинар и поеду на комплекс, вы уж тут сами… – наклонился к уху Константинова глава района.

– Хорошо, хорошо…

Когда глаза привыкли к полумраку, Сергей Иванович увидел в зале трех знакомых старушек, дожидавшихся с мисками ужина. Шмакин посчитал обучающихся обороне по головам. Вышло восемь голов. Семь женских, считая и Раису Борисовну, и одна мужская.

– Начинаем, дорогие товарищи престарелые! – махнул рукой Тяпочкин.

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

Слово взял Константинов.

– Товарищи, – начал он, – глобальное потепление климата ведет к экологической катастрофе, которая способна и без ядерной войны уничтожить почти все человечество…

Дед, усевшийся на первом ряду, внимательно слушал, подставив к уху ладонь для лучшего усвоения трудного материала. Не успел Сергей Иванович закончить первую фразу, как он тут же поднял руку.

– Меня интерисуить, где вы, уважаемый, получили ранение? – спросил старичок.

– Это к семинару не касается, – ответил Семен. – Производственная травма.

Семен шепнул Константинову, чтобы тот «был покороче и переходил к практической части, не мешкая». Бабушки, давно отвыкшие от таких собраний, уже засыпали в полутемном зале.

Сергей Иванович понимающе кивнул.

– Есть желающие самостоятельно надеть противогаз?

Он сделал паузу и обвел курсантов насмешливым взглядом.

– Может быть, вы, уважаемая Раиса Борисовна, желаете?

Хозяйка частной гостиницы коротенько хохотнула:

– Ну уж нет… Сами свой презерватив натягивайте.

Константинов обратился к спящему залу:

– Кто самый смелый?

– Я! – крикнул дедушка.

– Фамилия? – деловито поинтересовался Константинов.

– Сержант Дронов! – выпалил старик, как и полагалось по уставу.

– Иди сюда, солдатик, – подозвал к сцене деда Шмакин. – Делай, как я.

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

– Ой, бляха-муха, нос! Но-о-ос!..

– Дай деду примерить.

Дронов, к вящему удивлению Константинова и Шмакина, в два приема надел противогаз на свою лохматую голову. Теперь клочки седой растительности живописно торчали из-под резиновых краев резиновой маски.

– Молодец, солдатик! – искренне похвалил Шмакин ветерана. – Есть, значит, еще порох… Снимай давай. Вижу, что понравилось. Но имущество казенное, подарить не могу. Снимай, снимай давай!

Но сержант Дронов в запасе, кажется, и не думал расставаться с наглядным пособием. Подвиг старого солдата видели далеко не все – три бабушки спали беспробудным сном.

Старик, отчаянно жестикулируя, будто он обороняется от коварного врага, резво поскакал к ряду, на котором похрапывали мирно спящие подружки.

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

– Ой, страшно мне, страшно!..

– У-у-у!.. – завыл дед. Вид дьявола во плоти тут же парализовал проснувшихся бабушек.

– Ну, что, девки, испугались? – засмеялся старичок, стаскивая с головы противогаз. – То-то, глядите у меня!

– Прекратить балаган! – подняв руку, крикнул Константинов, пугая старушек еще больше.

И в это время в зале едко завоняло паленым. Из кинобудки густо повалил сизый дым. Свет в зале погас.

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

– Спасайся, кто может! – крикнул Колька, застряв в амбразуре кинобудки. – Горим, бабки! Горим!..

– Сержант Дронов! – закричал деду Константинов. – Надевай противогаз и выводи людей из очага возгорания!

 Дронов ловко водворил противогаз на место и, не обращая внимания на крики своих престарелых подружек, первой подхватил маленькую бабушку, только что проснувшуюся от шума. К остальным старушкам с криком «мама!» подлетела Раиса Борисовна.

Наконец Шмакин, нащупав в дыму ручку двери, распахнул её, ведущую из зрительного зала на вольный воздух. По глазам больно ударил белый свет, но все уже были у спасительного выхода.

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

…Когда приехали пожарные, Шмакин с Константиновым уже потушили огонь при помощи огнетушителей. На траве, в которой густо пестрели окурки и обрывки ярких заморских этикеток, в счастливом изнеможении сидели все спасенные женщины. Раиса Борисовна успокаивала разволновавшихся бабушек. Сержант запаса Дронов, сняв противогаз, распекал пожарных за опоздание.

На своем вездеходе прикатил перепуганный ЧП Тяпочкин.

– Жертвы есть? – первым делом поинтересовался он.

– Жертв, товарищ командующий, нет, – вяло пошутил Константинов. – Отличившихся представим к награждению…

Из УАЗика главы района вылез перемазанный сажей Колька, виновато шмыгая носом.

– Короткое замыкание… – сказал он. – Фильмы уже лет десять не крутили. Всё и захирело.

– Захирело, понимаешь ли! – передразнил Кольку Тяпочкин. – Не с кем работать… Кадры еще десять лет назад разбежались. А кадры, они всё решают, всё…

Глава вздохнул, оглядывая спасителей и спасенных каким-то радостным, просветленным взглядом.

 – Иди, Николай, в свою будку. Считай убытки…Мы с тобой потом разберемся.

Дед подошел к Шмакину, попросил подарить ему противогаз.

– Не могу, отец, – вздохнул Семён. – Имущество – казенное.

– Да ладно, – сказал Константинов. – Подари в качестве поощрения это наглядное пособие гражданской обороны… Пусть своих престарелых девок по ночам пугает. Всё при деле будет.

– Кто – дед? – смешливо скосила глаза на героя Раиса.

– И дед, и наглядное пособие.

Старик Дронов закашлялся, вытер слезившиеся глаза кулаком и, лукаво улыбнувшись Константинову, кивнул:

– Солдат службы не выбирает.

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

– За проявленное мужество при спасении людей награждается сержант Дронов!

Дед, откашлявшись, неожиданно бодро отчеканил:

– Служу Советскому Союзу!

– России!.. – поправил Константинов.

– Чего-сь? – приложив ладонь к уху, спросил Дронов.

– Я говорю, что теперь, сержант Дронов, нужно отвечать – служу России!

Дед смерил Сергея ироничным взглядом и кивнул, соглашаясь:

– А кому ж ещё и служить-то?.. Ей, матушке, ей… России нашенской!

г.Курчатов, Курская обл.

Мужское Женское. Выпуск от 29.12.2021. Письма Деду Морозу.

мужское женское 29 12 2021

Время новогодних чудес приближается, миллионы мальчишек и девчонок с трепетом ждут подарков от Деда Мороза. Но маленькие герои сегодняшнего выпуска программы «Мужское Женское» готовы потратить новогодний подарок вовсе не на себя. Таня Лозовая из Волгоградской области просит исполнить мечту любимого брата. Никита Коньшин из города Калач больше всего на свете хочет помочь папе. У Артема …

Смотреть онлайн

Мужское Женское. Выпуск от 28.12.2021. Новогоднее чудо.

мужское женское 28 12 2021

В Новый год мы загадываем желания и втайне мечтаем о чудесах. И если сильно верить, то они обязательно сбываются. Так случилось и с 10-летней Риной. Ее маленькой сестре поставили страшный диагноз — рак. Прогнозы врачей были скептическими. Но Рина потратила свое новогоднее желание на то, чтобы спасти сестру и 1-го января Регина начала выздоравливать. За …

Смотреть онлайн

Мужское Женское. Выпуск от 27.12.2021. Что год тигра нам готовит?

Мужское женское 27 12 2021

Новый год наступит уже через несколько дней. Уже совсем скоро вся страна отметит наступление года черного водяного тигра. В сегодняшнем выпуске программы «Мужское Женское» приглашенные гости будут рассказывать как правильно встретить этот год, что должно быть на праздничном столе, чтобы тигр остался доволен, каким нарядам в новогоднюю ночь нужно отдать предпочтение, чтобы весь 2022 год …

Смотреть онлайн

Мужское Женское. Выпуск от 24.12.2021. В гостях у Сосо Павлиашвили.

мужское женское 24 12 2021

У программы «Мужское Женское» есть старая добрая традиция, в канн Нового года ее ведущие отправляются в гости к известным артистам. Сегодня двери своего гостеприимного дома для Юлии Барановской распахнул певец Сосо Павлиашвили. Зрители увидят как живет знаменитость, познакомятся с его семьей и узнают немного больше о любимом артисте.

Смотреть онлайн

Мужское Женское. Выпуск от 22.12.2021. Итоги 2021.

мужское женское 22 12 2021

На протяжении многих лет в редакцию программы «Мужское Женское» поступает огромное количество обращений с просьбами о помощи. Каждый день коллектив программы старается помочь людям, для которых эти письма являются последней надеждой на спасение. Помощь с жильем, поиск родных, незаконное осуждение — это лишь малая часть того, о чем просят на протяжении всего времени существования программы. …

Смотреть онлайн

Мужское Женское. Выпуск от 21.12.2021. Как говорит Ксюша.

мужское женское 21 12 2021

Со слов Ксении Герасимовой из Ленобласти несколько недель назад органы опеки забрали у нее двухлетнего сына, а причиной для изъятия стал всего лишь пост в интернете. Сообщение это написала Ирина Максимова, которая является подругой бывшего мужа Ксении и живет за несколько сотен километров от Ксении. История довольно запутанная и в сегодняшнем выпуске программы «Мужское Женское» …

Смотреть онлайн

Мужское Женское. Выпуск от 20.12.2021. Большая маленькая ложь.

мужское женское 20 12 2021

15-летнему Даниилу из Ростовской области грозит длительный тюремный срок за домогательства к соседской девочке Яне, которой всего 6 лет. Не только близкие, но и друзья подростка уверены, что Даниил ни в чем не виноват, а маленькая девочка из неблагополучной семьи попросту оговорила его. Но вот мать Яны верит каждому слову своей дочери и настаивает на …

Смотреть онлайн

Мужское Женское. Выпуск от 17.12.2021. Богатая невеста.

мужское женское 17 12 2021

В сегодняшнем выпуске программы «Мужское Женское» история молодой женщины Надежды Петраш из Ставропольского края. Период своей жизни в семье мужа она называет настоящим кошмаром. В чужой семье она пребывала в статусе рабыни, ее заставляли работать, ужасно относились, избивали, а в итоге все закончилось тем, что Надежду попросту выгнали на улицу. Беды Надежды не закончились даже …

Смотреть онлайн

Мужское Женское. Выпуск от 16.12.2021. Ищите женщину.

мужское женское 16 12 2021

Ильнар в шоке из-за того, что за попытку оказать первую помощь избитому, ее муж может угодить за решетку на долгие годы. Ильнар внимательно изучила материалы дела и уверена, что следствие идет не по тому пути. Программа «Мужское Женское» провела собственное расследование и нашла свидетелей, которые собственными глазами видели того, кто на самом деле зверски избил …

Смотреть онлайн

Мужское Женское. Выпуск от 15.12.2021. Кива на камень.

мужское женское 15 12 2021

Бывшая супруга Николая Каменского очень хотела чтобы дети после развода остались у нее, и вместо того чтобы сделать все по закону, просто наняла молодых людей, чтобы они избили Николая и детей отобрали силой. Николай утверждает, что Елена является запойной пьяницей и наркоманкой, и поэтому еще будучи в больнице начал действовать, чтобы вернуть детей. Однако сама …

Смотреть онлайн

Мужское Женское. Выпуск от 14.12.2021. Бабушка строгого режима.

мужское женское 14 12 2021

В редакцию программы «Мужское Женское» обратилась Ольга Малых из Свердловской области. Пенсионерка даже представить себе не могла во что превратится ее жизнь на старости лет. Женщина вынуждена бороться за жизнь и здоровье единственного внука. Ольга рассказывает, что много лет была для внука словно мать и воспитание молодого человека ее заслуга. А сейчас, по ее мнению, …

Смотреть онлайн

Мужское Женское. Выпуск от 13.12.2021. Женщина-огонь.

мужское женское 13 12 2021

В сегодняшнем выпуске программы «Мужское Женское» история 35-летней Олеси Бегуновой. Около года назад ее родная мать Галина Андреевна покушалась на ее жизнь после того как застала в бане с любовником. Мать взяла канистру с бензином, облила деревянную баню и подожгла. К счастью все закончилось хорошо. Олесе удалось спастись, но поступок матери прощать она не стала …

Смотреть онлайн

Мужское Женское. Выпуск от 10.12.2021. Новая жизнь. Часть 8.

мужское женское 10 12 2021

Неделю назад в студии программы «Мужское Женское» прозвучали истории бывших бездомных, которым удалось начать свою жизнь сначала. В сегодняшнем выпуске программы продолжение истории Артема Белоусова, которому удалось сбежать из рабства и начать успешную карьеру в строительном бизнесе. Также откровенный рассказ бывшего миллионера, в жизни которого были перелеты бизнес-класом и личный водитель, но после определенного поворота …

Смотреть онлайн

Мужское Женское. Выпуск от 09.12.2021. Души мертвых тараканов.

мужское женское 09 12 2021

В сегодняшнем выпуске программы «Мужское Женское» история 67-летней пенсионерки Ларисы Деминой. Соседи зачастую не пускают пожилую женщину к себе же домой и доходит до того, что пенсионерка по несколько дней вынуждена ночевать на улице. Лариса подвергается травле не только со стороны соседей, но и ее сына Максима, который регулярно избивает ее, отнимает все деньги. В …

Смотреть онлайн

Мужское Женское. Выпуск от 08.12.2021. Жулик и партнеры.

мужское женское 08 12 2021

Врачи перед тем, как начать свою трудовую деятельность дают клятву Гиппократа, и было бы совсем неплохо, если бы юристы, придумали какую-то свою клятву, чтобы у них не было соблазна, в какой-то момент применить все свои знания против людей. Сегодняшний выпуск программы «Мужское Женское» посвящен разоблачению юристов-мошенников. В этом поможет собственное расследование программы. Зрителям расскажут о …

Смотреть онлайн

Мужское Женское. Выпуск от 07.12.2021. Бабки рулят. Часть 2.

мужское женское 07 12 2021

Около месяца назад в студии программы Аминад Абдусаидова боролась за абсолютно чужих детей. После выхода программы в эфир на связь с редакцией вышла родная сестра этой женщины.  Она уверяет, что Аминад является настоящей мошенницей и ее давным-давно изгнали из родного поселения. Она обманом оформила опеку над детьми и настроила малышей против семьи. При этом сама …

Смотреть онлайн

Мужское Женское. Выпуск от 06.12.2021. Харе теща, Харе Рама.

мужское женское 06 12 2021

Житель Ростова Александр Гужвин жил не тужил со своей семьей и можно сказать разрушил все своими руками. Роковым для него стало решение, что теща может жить в одном доме с его семьей. Александр рассказывает, что Галина Николаевна является активным членом секты и пока его не было дома, активно навязывает семье новые правила быта. Сегодня дети …

Смотреть онлайн

Мужское Женское. Выпуск от 03.12.2021. Новая жизнь. Часть 7.

мужское женское 03 12 2021

Народная мудрость гласит. что для того чтобы подняться со дна нужно сначала от него оттолкнуться и герои сегодняшнего выпуска программы «Мужское Женское» доказывают это своей жизнью. Когда-то эти люди питались из мусорных баков, спали на теплотрассе и просили милостыню. Но сегодня. они успешные и даже популярные. До того как стать знаменитым блогером Сергей Мингалев спал …

Смотреть онлайн

Мужское Женское. Выпуск от 02.12.2021. Пенкин на тропе войны.

мужское женское 02 12 2021

В сегодняшнем выпуске программы «Мужское Женское» история Ивана Пенкина, который горит жаждой мести по отношению к своей экс-супруге. Ведь после полутора десятков лет брака та попросту выгнала его на улицу и запретила видеться с детьми. Но Ольга считает, что брак распался именно из-за Ивана, который заставлял ее сделать аборт на шестого ребенка. Сам же Иван …

Смотреть онлайн

Мужское Женское. Выпуск от 01.12.2021. Обмани меня. Часть 2.

мужское женское 01 12 2021

Инновационная диагностика по капле крови. Мошенники расскажут вам, что жить вам осталось всего ничего, а за лечение попросят всего 100 тысяч рублей. Интернет-магазин, который требует полную предоплату за товар, но после ее получения даже не думает его отправлять. Уникальное предложение по замене металлопластикового окна все за 100 тысяч. Дымоуловитель за фантастическую сумму. В сегодняшнем выпуске …

Смотреть онлайн

Часть 1. Вступление

Часть 6. Специфика Google
Часть 7. Ещё возможности C++
Часть 8. Именование


Это последняя переведённая часть руководства Google по стилю в C++.
Спасибо за замечания и комментарии к переводу.
Надеюсь это руководство будет полезным подспорьем для программистов на C++.
Исходная статья (fork на github), обновляемый перевод.
И ещё здесь много букв.

Ещё возможности C++

Rvalue-ссылки

Используйте rvalue-ссылки:

  • Для объявления конструкторов перемещения и операторов перемещения.
  • Для объявления перегружаемых функций с const& и && аргументами если это обеспечит значительное улучшение производительности против передачи по значению или если пишется код с небольшими накладными расходами или поддержкой произвольных типов. Избегайте увеличения количества перегружаемых функций (обычно бывает, когда комбинируются типы для несколько параметров).
  • Для поддержки ‘perfect forwarding’ в ‘универсальном’ коде.

Определение
Rvalue-ссылка является ссылочным типом, привязанным к временному объекту. По синтаксису похожа на обычную ссылку. Например, void f(std::string&& s); объявляет функцию с аргументом rvalue-ссылка на std::string.

Когда суффикс ‘&&’ (без дополнительных квалификаторов) используется с шаблонным аргументом функции, то применяются специальные правила определения типа аргумента. И такая ссылка имеет название forwarding reference.

За

  • Определение конструктора перемещения (принимающего rvalue-ссылку на тип класса) даёт возможность переместить (move) класс вместо его копирования. Например, если v1 это std::vector<std::string>, то код auto v2(std::move(v1)) скорее всего выполнит несколько операций с указателями вместо копирования большого объёма данных. И в большинстве случаев это приведёт к существенному увеличению производительности кода.
  • Rvalue-ссылки позволяют реализовать типы, которые можно перемещать, а не копировать. Это полезно для типов, которые нельзя копировать, но которые хочется передавать в функцию как аргумент, хранить в контейнере и т.д.
  • Функция std::move необходима для эффективного использования некоторых типов стандартной библиотеки, таких как std::unique_ptr.
  • Forwarding references, использующие объявление rvalue-ссылки, позволяют написать единую обёртку, перемещающую аргумент в другую функцию. И это одинаково работает вне зависимости от того, временный объект или нет, константный он или не очень. Это и называется ‘perfect forwarding’.

Против

  • Rvalue-ссылки не все хорошо понимают. Особенности, наподобие схлопывания ссылок или специальных правил определения типа, всё сильно усложняют.
  • Rvalue-ссылки часто используют неправильно, т.к. они интуитивно нелогичны: обычно ожидается, что аргумент будет иметь валидное состояние после вызова функции (и операции перемещения выполняться не будут).

Вердикт
Вы можете использовать rvalue-ссылки чтобы объявить конструктор перемещения и перемещающий оператор присваивания (как описано в Копируемые и перемещаемые типы). См. также C++ Primer для более подробной информации о семантике перемещения и, также, std::move.

Вы можете использовать rvalue-ссылки чтобы объявить пары перегружаемых функций, одна с Foo&&, другая с const Foo&. Обычно программисты предпочитают передавать аргументы по значению. Однако использование пары функций может дать лучшую производительность, или позволит в обобщённом коде поддержать большое количество типов. И не забывайте: если ради производительности пишется более сложный код, проверьте и убедитесь, что это действительно помогает.

Вы можете использовать ‘forwarding references’ вместе с std::forward
, чтобы реализовать ‘perfect forwarding’.

Дружественные сущности

В ряде случаев допустимо использовать классы и функции как friend.

Дружественные типы обычно определяются в том же файле, поэтому нет необходимости открывать другой файл, чтобы разобраться с использованием закрытых членов класса. Обычное использование friend: когда класс FooBuilder объявляется дружественным (friend) классу Foo, так что FooBuilder может корректно настроить внутреннее состояние Foo без необходимости открывать это состояние всем остальным. В ряде случаев удобно сделать класс unit-тестов дружественным исходному классу.

Дружественность расширяет (но не ломает) инкапсуляцию класса. В ряде случаев, когда требуется дать доступ к внутреннему состоянию только одному классу, лучше объявить его как friend, чем делать дополнительные открытые члены класса. Однако, в остальном классы должны взаимодействовать только через открытые функции.

Исключения (программные)

Мы НЕ используем исключения C++.
За

  • Исключения позволяют обрабатывать ситуации типа «это невозможно» не в месте возникновения ошибки, а на более верхнем уровне, позже. И всё это без копания в исходниках и составления таблиц с кодами ошибок.
  • Исключения используются в большинстве современных языков программирования и их использование в C++ позволяет писать код, концептуально схожий с Python, Java и др.
  • Некоторые библиотеки C++ используют исключения в своей работе и отказ от них может существенно усложнить интеграцию с этими библиотеками.
  • Исключения являются единственным способом проинформировать о проблемах в конструкторе класса. Конечно, это можно обойти, используя фабричные методы или метод Init(), однако это потребует либо дополнительного выделения памяти или, соответственно, обработку специального «невалидного» состояния.
  • Исключения очень удобны при использовании в тестировании (в тестовых фреймворках).

Против

  • Если используется throw в функции, то вы должны проверить всех, кто эту функцию вызывает. Должна быть базовая гарантия безопасности при исключениях. Или же код никогда не ловит исключения и тогда программа может внезапно завершиться. Например есть код, где f() вызывает g(), который вызывает h(). Если h выбрасывает исключение, которое отлавливает f, то g нужно писать аккуратно, иначе могут быть утечки ресурсов и т.д.
  • Обычно использование исключений усложняет отслеживание последовательности выполнения кода. Например, функции могут завершаться в неожиданных местах. Это затрудняет поддержку кода и его отладку. Вы можете улучшить ситуацию, следуя (своим) правилам когда и где можно использовать исключения. Однако, очень желательно, чтобы и другие разработчики знали об этих правилах.
  • Безопасное использование исключений требует использования дополнительных принципов кодирования, например, RAII. И их количество (принципов кодирования) может быть значительным. Например, чтобы разработчик не разбирался в тонкостях всей цепочки вызовов неизвестного ему кода, желательно выделить код сохранения данных в хранилище в отдельную фазу-фиксацию. Такое выделение может нести как плюсы, так и минусы (э-э-э, корпоративная политика смешивания кода в одну кучу для удобства обсфуркации?). В любом случае, использование исключений уменьшает количество доступных вариантов.
  • Использование исключений ведёт к распуханию бинарного файла программы, увеличивает время компиляции (иногда только чуть-чуть) и вообще может привести к проблемам с адресным пространством.
  • Само наличие исключений может провоцировать разработчиков выбрасывать их по поводу и без повода, даже когда это не нужно или может привести к сложностям в обработке. Например, если пользователь вводит неподходящий текст, это не должно приводить к выбрасыванию исключения. И вообще, если всё это расписывать, то никакого документа не хватит!

Вердикт
Для новых проектов преимуществ от использования исключений обычнобольше, чем недостатков. Однако, для уже существующего кодавведение исключений может повлиять на весь код. Также могут возникнутьпроблемы стыка нового кода и старого (без исключений) кода.

Т.к. большинство C++ кода в Google не использует исключений, то очень проблематично будет внедрять новый код, который будетгенерировать исключения. Существующий код в Google не может корректно работать с исключениями, поэтому цена внедрения исключений намного выше, чем реализация любого нового проекта. Переписывание существующего кодапод обработку исключений — это будет очень медленный процесс, с большим количеством ошибок. Поэтому лучше использовать альтернативу в виде возврата кода ошибки и assert-ов: это не так сложно.

Этот запрет также распространяется на добавленные в C++11 возможности, такие как std::exception_ptr и std::nested_exception.

Однако, для кода под Windows есть послабления.

noexcept

Указывайте noexcept, если это корректно и будет полезно.
Определение
Спецификатор noexcept используется для указания, что функция не будет выбрасывать исключения. Если же функция с таким спецификаторомвсё же выбросит исключение, то произойдёт крэш программы через std::terminate.

Также есть оператор noexcept. Он выполняет проверку: объявлено ли выражениекак «не выбрасывающее исключений». Проверка проводится на этапе компиляции.
За

  • Спецификация конструктора перемещения как noexcept может улучшить производительность в ряде случаев, например std::vector<T>::resize() скорее переместит объект нежели скопирует его, если конструктор перемещения для типа T заявлен как noexcept.
  • Указание noexcept для функций может разрешить дополнительную оптимизацию, например компилятор может не генерировать код по раскрутке стека. Конечно, это имеет смысл, если в целом исключения разрешены.

Против

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

Вердикт
Используйте noexcept, когда это может улучшить производительность и точно отражает семантику функции (если из функции вылетело исключение, то это явная, фатальная ошибка).Считается, что noexcept на конструкторе перемещения может существенно улучшить производительность, учитывайте это.Если вы рассчитывайте на значительный прирост производительностиот применения noexcept для других функций, пожалуйста, сначала проконсультируйтесь с руководителем проекта.

Используйте безусловный noexcept, если исключения полностью запрещены (т.е. в типовом проекте C++ в Google).В ином случае, используйте спецификатор noexcept сусловиями (желательно простыми), которые становятся false в тех редких случаях, когда функция может всё-таки выбросить исключение.Эти тесты могут пользоваться проверками на характеристики типов(например, std::is_nothrow_move_constructible дляобъектов создаваемых через конструктор перемещения) или аллокаторов(например, absl::default_allocator_is_nothrow). Отметим, что наиболее частая причина исключений — невозможностьвыделения памяти (и да, мы верим, что это не относится к конструкторамперемещения — они не должны выбрасывать исключений из-за ошибок выделения памяти) и есть много приложений, для которых эта ситуацияозначает фатальную ошибку, которую даже не имеет смысла обрабатывать.И даже в других, потенциально ошибочных, ситуациях рекомендуетсяделать упор на простоту интерфейса, нежели на поддержку всех сценариевобработки ошибок: например, вместо написания накрученного noexceptс зависимостью от внешней хэш-функции (выбрасывает она исключения или нет), можно просто задокументировать, что разрабатываемый компонент не поддерживает хэш-функции, которые выбрасывают исключения. И, после этого, использовать noexcept без всяких дополнительных условий.

Информация о типе во время выполнения (RTTI)

Не используйте информацию о типе во время выполнения (RTTI).
Определение
RTTI позволяет запросить информацию о C++ классе объектаво время выполнения. Делается через typeid илиdynamic_cast.
За
Типовые альтернативы вместо RTTI (описано ниже)требуют модификации или редизайна иерархии классов, участвующих в запросах. Иногда такую модификацию очень тяжело сделать, или она нежелательна, особенно в коде, который уже используется в других проектах.

RTTI может быть полезен для юнит-тестов. Например, можнотестировать классы-фабрики на правильность сгенерированного типа.Также это полезно в выстраивании связей между объектами и ихмакетами (mock).

RTTI бывает полезно при работе с абстрактными объектами. Например:

bool Base::Equal(Base* other) = 0;
bool Derived::Equal(Base* other) {
  Derived* that = dynamic_cast<Derived*>(other);
  if (that == nullptr)
    return false;
  ...
}

Против
Часто сам запрос типа объекта в процессе выполнения означает проблемы с дизайном приложения, показывает наличие изъянов виерархии классов.

Бесконтрольное использование RTTI усложняет поддержку кода.Это может привести в развесистым условиям, которые зависят от типа объекта, которые рассыпаны по всему коду. И которые придётся досконально изучать если будет необходимость что-то изменить в этом коде.

Вердикт
Использование RTTI может легко привести к злоупотреблениям, поэтому будьте аккуратны. Старайтесь ограничить использование RTTI только юнит-тестами. Рекомендуется отказаться от RTTIв новом коде. Если же требуется написать код, которыйведёт себя по разному в зависимости от типа объекта, возможно следующие альтернативы будут более подходящими:

  • Виртуальные методы. Это предпочтительный способ для выполнения различного кода в зависимости от типа объекта. И вся работа (код) делается в самом объекте.
  • Если код должен находится вне объектов, то можно использовать подходы, аналогичные двойной диспетчеризации, например шаблон проектирования Посетитель/Visitor. Это позволит внешнему коду самому определять тип объектов (используя систему типов).

Когда логика программы гарантирует, чтополученный указатель на базовый класс фактически есть указательна определённый производный класс, тогда можно свободно использоватьdynamic_cast. Правда, в этом случае лучше использоватьstatic_cast.

Большое количество условий, основанных на типе объекта, естьпоказатель явных проблем в коде.

if (typeid(*data) == typeid(D1)) {
  ...
} else if (typeid(*data) == typeid(D2)) {
  ...
} else if (typeid(*data) == typeid(D3)) {
...

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

И пожалуйста, не изобретайте собственный велосипед на замену RTTI. Аргументы против собственного решения будут такие же (см. выше), да и разбираться в чужих велосипедах обычно сложнее.

Приведение типов / Casting

Рекомендуется использовать приведение типов в C++-стиле: static_cast<float>(double_value). Также можно использовать инициализацию значением в скобках для преобразования арифметических типов: int64 y = int64{1} << 42. Избегайте конструкций вида int y = (int)x или int y = int(x) (хотя последний вариант допустим при вызове конструктора класса).

Определение
В C++ приведение типов расширяется по сравнению с чистым C путём добавления операций приведения.

За
Основная проблема с приведением типов в чистом C — неоднозначность операции. Например, одинаково записанная операция: (int)3.5 и (int)«hello» сильно отличается по смыслу. Инициализация в скобках и операции в стиле C++ часто помогают избежать такой неоднозначности. Дополнительная плюшка: операции приведения в стиле С++ легче искать по коду.

Против
C++-стиль довольно громоздкий.

Вердикт
Избегайте использования приведения типов в стиле чистого C. Вместо этого используйте стиль C++ когда требуется явное преобразование типов.

  • Используйте инициализацию в скобках для преобразования арифметических типов (int64{x}). Это самый безопасный способ, т.к. в других случаях (при потере информации при конвертации) код может не скомпилироваться. Плюс лаконичный синтаксис.
  • Используйте static_cast как эквивалент преобразований в C-стиле или когда необходимо преобразовать указатель на дочерний класс в указатель на базовый и обратно (указатель на базовый класс преобразовать в указатель на дочерний (и желательно, чтобы сам объект был экземпляром дочернего класса)).
  • Используйте const_cast чтобы убрать квалификатор const (см. const).
  • Используйте reinterpret_cast чтобы небезопасно преобразовать указатели к целым числам или указателям другого типа. Используйте эту операцию только если вы знаете, что делаете и понимаете проблемы с выравниванием. Также, можете использовать в таких случаях absl::bit_cast.
  • Используйте absl::bit_cast для приведения «сырых» битов в другой тип такого же размера (например, если требуется интерпретировать double как int64).

Также может быть полезным раздел RTTI с описанием dynamic_cast.

Потоки / Streams

Используйте потоки в подходящих случаях, особенно если их использование упрощает код. Перегружайте операцию << только для типов-значений и выводите в поток собственно данные (доступные пользователю). Не выводите в поток внутренние переменные (инварианты и т.д.) и другие детали реализации.

Определение
Потоки являются стандартной абстракцией для ввода/вывода в C++, (см. стандартный заголовочный файл <iostream>). Они часто используются в коде в Google, особенно для отладочного логирования и диагностики.

За
Операторы << и >> реализуют форматированный ввод/вывод, они просты в понимании, портабельны, расширяемы и повторно используемы. Противоположность к ним — printf, который даже не поддерживает работу с std::string. Кроме того не работает с пользовательскими типа и с портабельностью там проблемы. Кроме того, printf вынуждает выбирать среди похожих версий одной функции и ориентироваться в десятках форматных символах.

Потоки обеспечивают хорошую поддержку консольного ввода/вывода через std::cin, std::cout, std::cerr и std::clog. Функции из C API тоже хорошо работают, однако могут требовать вручную буферизировать ввод.

Против

  • Форматирование потоков можно настроить через манипуляторы, изменяющие состояние потока. Учтите, применение манипуляторов сохраняется во времени и, как результат, поведение кода зависит от истории использования потока (или необходимо будет всё восстанавливать в известное состояние после каждого случая возможного применения манипуляторов). Кроме того, пользовательский код может (помимо модификации встроенных параметров) создавать собственные манипуляторы, добавлять переменные состояния и изменять поведение через функционал register_callback.
  • Проблематично полностью контролировать вывод потока: смена настроек (см. выше), вывод мешанины из параметров и собственно данных, использование перегрузки операторов (и компилятор может выбрать не ту перегрузку, которая предполагалась) — всё это не добавляет управляемости.
  • Формирование вывода посредством вызова цепочки операторов << затрудняет локализацию, т.к. при этом жёстко, прямо в коде, фиксируется порядок слов. И средства поддержки локализации лишаются ценности.
  • Потоковый API может быть сложным, с тонкостями. И программисты должны уметь с ним работать, чтобы код был эффективным.
  • Выбор правильной версии оператора << из большого количества аналогичных является для компилятора затратным. При частом их использовании в большой кодовой базе, время парсинга и анализа может отъедать до 20% времени.

Вердикт
Используйте потоки только если они являются наилучшим решением. Обычно это варианты ввода/вывода в человекочитаемый формат, предназначенный для разработчиков, а не для конечного пользователя. Также не забывайте, что в проекте уже могут быть устоявшиеся методы ввода/вывода — старайтесь использовать их. В частности, библиотеки для логирования и диагностического вывода обычно предпочтительнее нежели std::cerr или std::clog. И вместо std::stringstream лучше использовать absl/strings или их эквивалент.

Не рекомендуется использовать потоки для ввода/вывода в случае обмена данными с конечными пользователями или где возможно нарушение формата или валидности данных. В таких случаях используйте подходящие (шаблонные) библиотеки, которые корректно обрабатывают интернационализацию, локализацию, проверяют корректность данных и формата.

Если потоки всё же используются, старайтесь избегать API работы с состояниями, кроме состояния ошибки. Т.е. не используйте imbue(), xalloc() и register_callback(). Рекомендуется использовать явные функции форматирования (см. absl/strings) вместо манипуляторов или флагов форматирования для таких вещей как смена основания системы счисления, точности или набивка нулями до нужного размера чисел.

Перегружайте оператор << только для типа-значения с тем, чтобы оператор выводил человеко-читаемое представление. Не выводите в поток детали реализации или внутренние переменные. Если же требуется отладочная печать внутреннего состояния, то используйте обычные функции-методы (например, метод класса DebugString() — подходящий вариант).

Преинкремент и предекремент

Используйте префиксные формы (++i) инкремента и декремента над итераторами и другими шаблонными объектами.

Определение
Когда переменная инкрементируется (++i, i++) или декрементируется (—i, i—), а возвращаемое значение не используется, то необходимо чётко понимать: использовать префиксную форму (++i, —i) или постфиксную (i++, i—).

За
Когда возвращаемое значение игнорируется, то префиксная форма не менее эффективна постфиксной (чаще префиксная более эффективна). Связано это с тем, что постфиксная реализация должна сделать копию переменной с исходным значением для возврата результата. Если переменная является итератором или другим сложным типом, то копирование её может быть затратным по ресурсам. Поэтому, если обе формы ведут себя одинаково (возвращаемое значение игнорируется), почему бы не использовать всегда префиксную форму?

Против
Традиционно раньше в разработке (особенно на языке C) использовалась постфиксная форма, особенно для циклов for. Иногда программистам легче читать код с постинкрементом, т.к. «субъект» (i) стоит перед «действием» (++), как в английском предложении.

Вердикт
Для простых скалярных (не-объектов) типов нет особой разницы в использовании префиксной или постфиксной формы. Для итераторов и других шаблонных типов используйте префиксную форму.

Использование const

В API используйте const когда это имеет смысл. В ряде случаев constexpr будет лучшей альтернативой const.

Определение
При объявлении переменных или параметров вначале может быть указано const, чтобы показать что переменные не изменяются (например, const int foo). Функции класса могут быть с квалификатором const, чтобы показать, что эта функция не изменяет состояние членов класса (например, class Foo { int Bar(char c) const; };).

За
Позволяет легко понять, как использовать переменные. Компиляторам даёт возможность полнее контролировать типы и, теоретически, генерировать лучший код. Использование констант даёт дополнительную защиту (уверенность) в корректности кода: функции не могут модифицировать переменные, изменять состояние класса и, как результат, можно безопасно работать без локов в многопоточном окружении.

Против
Использование const оно «заразное»: если передаётся const переменная в функцию, то она должна в прототипе иметь указание на const (или придётся делать const_cast). И это может быть проблемой при вызове библиотечных функций.

Вердикт
Настоятельно рекомендуется использовать const в API (параметры функций, методы, не-локальные переменные), где это имеет смысл. Такой подход даёт понятное (и верифицируемое компилятором) описание как можно модифицировать объекты. Чёткое разделение на модифицирующие (запись) и не-модифицирующие (только чтение) операции очень полезно, особенно для написания потокобезопасного кода. В частности:

  • Если функция не меняет аргумент, переданный по ссылке или указателю, то он должен быть ссылкой на константу (const T&), либо указателем на константу (const T*).
  • Если параметр передаётся по значению, то использование const не даёт никакого эффекта. Поэтому не рекомендуется объявлять константный параметр. См. также TotW #109.
  • Старайтесь объявлять члены класса константными (const) если они не изменяют логическое состояние объекта (и не дают возможности другим что-то менять, например через возврат не-константной ссылки). В противном случае эти методы могут быть небезопасными в многопоточном окружении.

Использование const для локальных переменных отдаётся на усмотрение программиста: можно использовать, можно — нет.

Все const операции класса должны работать корректно при одновременном вызове нескольких функций. Если это не выполняется, то класс должен быть явно описан как «потоко-не-безопасный».

Местоположение const

Иногда используется форма int const *foo вместо const int* foo. Обосновывается это тем, что первая форма более логична: const следует за описываемым объектом. Однако, такая «логичность» имеет мало смысла (и обычно не применяется в коде с несколькими вложенными маркерами «указатель»), т.к. чаще всего есть только один const для базового значения. В таком случае нет необходимости специально заботиться о логичности. Размещение же const вначале делает код более читабельным и согласованным с английским языком: прилагательное (const) стоит перед существительным (int).

Так что расположение const вначале является предпочтительным. Однако, это не жёсткое условие и если остальной код в проекте использует другой порядок — следуйте за кодом!

Использование constexpr

Используйте constexpr для определения констант или чтобы сделать константную инициализацию.

Определение
Переменные можно объявлять как constexpr для указания на константу, значение которой определяется во время компиляции или линковки. Также можно объявлять функции и конструкторы как constexpr, чтобы их можно было использовать для определения переменной с constexpr.

За

constexpr позволяет определять выражения с плавающей запятой (помимо литералов), использовать константы для пользовательских типов и вызовов функций.

Против
Использование constexpr может вызвать проблемы с поддержкой кода (или миграцией), если константность нужно будет позже убрать. Текущие ограничения для константных функций или конструкторов могут потребовать реализации дополнительных обходных путей в коде.

Вердикт

constexpr позволяет определить неизменяемые части интерфейса. Используйте constexpr чтобы определить константы и функции для задания им значений. Не используйте constexpr, если это потребует усложнения кода. Не используйте constexpr, чтобы сделать код «встраиваемым» (inlining).

Целочисленные типы

Среди встроенных целочисленных типов C++ необходимо использовать int. Если в программе требуется переменная другого размера, то используйте целочисленные типы фиксированной длины из <stdint.h>, такие как int16_t. Если переменной нужно хранить значения, равные или превышающие 2^31 (2GiB), используйте 64-битный тип int64_t. При оценке размера не забудьте, что в int должен укладываться не только результат, но и промежуточные значения при вычислениях. И, если сомневаетесь, используйте тип подлиннее.

Определение
C++ не уточняет размер целочисленных типов, таких как int. Обычно считается, что short содержит 16 битов, int — 32, long — 32 и long long содержит 64 бита.

За
Унификация в коде.

Против
Размеры целочисленных типов в C++ могут изменяться в зависимости от компилятора и архитектуры.

Вердикт
В <cstdint> определяются различные типы: int16_t, uint32_t, int64_t и т.д. Если требуются типы фиксированного размера, то не используйте short, unsigned long long и им подобные. Из целочисленных типов языка C можно использовать только int. Также, в соответствующих случаях, используйте size_t и ptrdiff_t.

Тип int используется очень часто, особенно для небольших значений, например как счётчики в циклах. Можете считать, что int содержит минимум 32 бита (но не больше). Если требуется 64 битный целочисленный тип, то используйте int64_t или uint64_t.

Для типа который может хранить «большие значения» используйте int64_t.

Старайтесь не использовать беззнаковые числа (например, uint32_t). Допустимое применение беззнаковых чисел это использование битовых представлений или использование переполнения (по модулю 2^N) в расчётах. Отметим, что также не рекомендуется использовать беззнаковый тип чтобы указать на отсутствие отрицательных значений: в этом случае используйте assert-ы.

Если код возвращает размер контейнера, то убедитесь, что его тип (размера) является достаточным для любого возможного использования. И если сомневаетесь, используйте тип подлиннее.

Будьте внимательны при конвертировании целочисленных типов. Может появится неопределённое поведение (UB), ведущее к багам безопасности и другим проблемам.

Беззнаковые целые числа

Беззнаковые целые числа отлично подходят для работы с битовыми полями и модульной арифметики. Так сложилось, что стандарт C++ использует беззнаковые числа и для возврата размера контейнеров (хотя многие члены организации по стандартизации и считают это ошибкой; в любом случае, сейчас это уже не изменить). Ситуация, что беззнаковая арифметика по поведению является модульной (заворачивание значений при переполнении) и отличается от обычной (знаковой), не позволяет компилятору диагностировать большое количество ошибок. Фактически, такое поведение затрудняет оптимизацию.

С другой стороны, совместное использование беззнаковых и знаковых целых чисел создаёт ещё больше проблем. Лучшее решение: старайтесь использовать итераторы вместо указателей и явных размеров; не мешайте беззнаковые числа вместе со знаковыми; избегайте беззнаковых чисел (кроме работы с битовыми полями и для модульной арифметики); не используйте беззнаковые числа только чтобы показать, что переменная неотрицательная.

Совместимость с 64-бит

Написанный код должен быть совместим как с 64-битной, так и с 32-битной архитектурой. Особое внимание обращайте на печать в консоль, операции сравнения и выравнивание структур.

  • Форматные символы printf() для некоторых целочисленных типов основываются на макроопределениях (например, PRI из <cinttypes>). И такой подход является непрактичным, нежелательным и т.д. Поэтому очень желательно не использовать функцию printf (и подобные) в своём коде, или даже переписать существующий код. Вместо неё можно использовать библиотеки, поддерживающие безопасное форматирование числовых значений, такие как StrCat
    или Substitute
    для простых преобразований, или std::ostream
    .

    К сожалению, макросы PRI являются единственным переносимым способом указать формат для типов данных с задаваемым размером (int64_t, uint64_t, int32_t, uint32_t и т.д.). По возможности не передавайте аргументы таких типов в функции, основанные на printf. Исключение составляют типы, для которых есть свой выделенный модификатор длины, например size_t (z), ptrdiff_t (t) и maxint_t (j).

  • Помните, что sizeof(void*) != sizeof(int). Используйте intptr_t в случае, если требуется целочисленный тип размером, равным размеру указателя.
  • Будьте аккуратны с выравниванием структур, особенно тех что записываются на диск. Обычно классы и структуры, в которых есть член типа int64_t или uint64_t, по умолчанию выравниваются на границу 8 байт в 64-битных системах. Если в коде есть подобные структуры, они сохраняются на диске и используются 32-битным и 64-битным кодом, то обязательно проверьте, что структуры упаковываются одинаково на обеих архитектурах. Большинство компиляторов позволяют задать выравнивание структур. В gcc можно использовать __attribute__((packed)). В MSVC — #pragma pack() и __declspec(align()).
  • Используйте инициализацию в фигурных скобках если требуется создать 64-битную константу. Например:

    int64_t my_value{0x123456789};
    uint64_t my_mask{3ULL << 48};
    

Макросы препроцессора

Избегайте определения макросов, особенно в заголовочных файлах. Вместо этого используйте встраиваемые функции, перечисления или переменные-константы. Если используете макросы, то в имени используйте префикс — название проекта. Не используйте макросы, чтобы переопределить или дополнить C++ API.

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

Ситуация может усугубиться, когда макросы используются для переопределения С++ или другого публичного API. При любых ошибках в использовании API потребуется разбираться в логике макросов; увеличивается время разбора кода инструментами рефакторинга или анализаторами. Как результат, использование макросов в таких случаях запрещено. Например, откажитесь от подобного кода:

class WOMBAT_TYPE(Foo) {
  // ...
 public:
  EXPAND_PUBLIC_WOMBAT_API(Foo)
  EXPAND_WOMBAT_COMPARISONS(Foo, ==, <)
};

К счастью, в C++ зависимость от макросов поменьше, чем в C. Вместо макросов для высокопроизводительного кода можно использовать встраиваемые функции. Для хранения констант есть const переменные. Чтобы для удобства «укоротить» длинное имя переменной используйте ссылки. Вместо применения макросов для условной компиляции кода используйте… лучше не используйте условную компиляцию (конечно же это не касается защиты от повторного включения заголовочных файлов через #define). Тем более условная компиляция затрудняет тестирование кода.

С другой стороны, есть приёмы кодирования, которые делаются только через макросы. Обычно это можно увидеть в низко-уровневых библиотеках. Также есть приёмы (преобразование в строку, объединение строк и т.д.), которые нельзя сделать средствами самого языка напрямую. В любом случае, перед использованием макросов попробуйте найти способ реализации без макросов. Если же необходимо использовать макросы для определения интерфейса то предварительно обязательно проконсультируйтесь с руководством.

Следующие правила позволят избежать ряда проблем с макросами. По возможности следуйте им:

  • Не определяйте макросы в заголовочных (.h) файлах.
  • Определяйте (#define) макросы по возможности ближе к месту первого использования. И когда макросы уже не используются, то делайте #undef.
  • Не делайте #undef существующих макросов с последующим их переопределением своей версией. Вместо этого лучше придумайте для своих макросов уникальное имя и используйте его.
  • Постарайтесь не использовать макросы, которые раскрываются в большие и неустойчивые конструкции C++. По крайней мере, документируйте такое поведение.
  • Старайтесь не использовать ## для генерации имени функции/класса/переменной.

Настоятельно не рекомендуется экспортировать макросы из заголовочных файлов (т.е. определять макрос и не делать #undef его в конце заголовочного файла). Если макрос экспортируется из заголовочного файла, то он должен иметь глобальное уникальное имя. Как вариант, добавьте префикс с именем пространства имён проекта (заглавными буквами).

0 и nullptr/NULL

Используйте nullptr для указателей и ‘’ для char-ов (не используйте 0 для этих целей).

Для указателей (адресов) используйте nullptr, это улучшает безопасность типов.

Для проектов C++03 лучше используйте NULL, а не 0. Хотя оба варианта эквивалентны, NULL обычно ассоциируется с указателями. Также некоторые C++ компиляторы могут определять NULL специальным образом и выдавать более адекватные предупреждения компиляции. Никогда не используйте NULL как числовое значение (целочисленное или с плавающей запятой).

Используйте ‘’ в качестве символа конца строки (пустого символа). Это улучшает читабельность кода.

sizeof

Рекомендуется использовать sizeof(переменная) вместоsizeof(тип).

Используйте sizeof(переменная) если необходим размер определённой переменной. sizeof(переменная) будет возвращать корректное значение даже если в дальнейшем изменится тип переменной. sizeof(тип) можно использовать, когда код не работает с конкретной переменной, например в случае форматирования/разбора данных, где соответствующий тип C++ не подходит.

struct data;
memset(&data, 0, sizeof(data));
memset(&data, 0, sizeof(Struct)); // Плохо
if (raw_size < sizeof(int)) {
  LOG(ERROR) << "compressed record not big enough for count: " << raw_size;
  return false;
}

Вывод типов

Используйте вывод типов только если это сделает код более читабельным или более безопасным. Не используйте его только из-за неудобства написания полного типа.

Определение
Есть ряд ситуаций, когда типы в C++ коде могут (или даже необходимо) быть выведены компилятором и это более предпочтительно, чем явно их прописывать:

  • вывод типов аргументов шаблонной функции
    • Шаблонная функция может вызываться без указания явных шаблонных типов. Компилятор выводит эти типы из аргументов функции:
      template <typename T>
      void f(T t);
      f(0);  // Вызывается f<int>(0)

  • переменная с auto типом
    • Декларация переменной может использовать auto вместо типа. Компилятор выводит тип из выражения инициализации, следуя правилам, аналогичным для шаблонной функции (во всяком случае, пока не используются фигурные скобки вместо круглых).
      auto a = 42;  // a типа int
      auto& b = a;  // b типа int&
      auto c = b;   // c типа int
      auto d{42};   // d типа int, а не std::initializer_list<int>
      

      auto может использоваться совместно с const, или в составе указателя или ссылки. Однако, auto не может использоваться как аргумент шаблона. Изредка можно увидеть использование decltype(auto) вместо auto и в этом случае выводимый тип является результатом применения decltype
      к переданному выражению инициализации (прим.: и, например, сохранить квалификаторы ссылки).

  • вывод типа возвращаемого значения функции
    • autodecltype(auto)) можно использовать для указания возвращаемого значения функции. Компилятор выводит тип возвращаемого значения из выражения return в теле функции, следуя тем же правилам, что и при объявлении переменной:
      auto f() { return 0; }  // Возвращаемый f тип - int

      Возвращаемый тип лямбды может быть выведен аналогичным способом (хотя это делается при отсутствии возвращаемого типа, а не в случае использования auto). Синтаксис указания возвращаемого типа в конце для функций также использует auto, но это не вывод типа, скорее альтернативный синтаксис для явно указанного возвращаемого типа.

  • общие (generic) лямбды
    • В описании лямбды можно использовать auto в качестве одного или нескольких типов параметров. Как результат, оператор вызова лямбды будет шаблонной функцией вместо обычной, с отдельными параметрами шаблона по одному на каждый auto:
      // Сортируем `vec` по возрастанию
      std::sort(vec.begin(), vec.end(), [](auto lhs, auto rhs) { return lhs > rhs; });

  • инициализация захватываемых переменных лямбды
    • В лямбде в секции захвата можно явно прописать новые переменные, инициализированные значением:
      [x = 42, y = "foo"] { ... }  // тип x - int, y - const char*

      Синтаксис не позволяет указать тип новой переменной, он выводится аналогично auto переменным.

  • вывод аргументов шаблонного класса
    • См. соответствующий раздел.

  • структурная привязка
    • При объявлении кортежей, структур или массивов с использованием auto можно указать имена отдельных элементов вместо имени полного объекта. Эти имена называются «структурная привязка», а декларация — соответственно «декларация структурной привязки». Синтаксис не позволяет задать тип ни полного объекта, ни отдельных имён:
      auto [iter, success] = my_map.insert({key, value});
      if (!success) {
        iter->second = value;
      }

      auto можно использовать с квалификаторами const, & и &&. Отметим, что эти квалификаторы формально применяются к анонимному кортежу/структуре/массиву, а не к отдельным привязкам. Правила определения конечного типа привязок довольно запутанные, однако в большинстве случаев всё довольно логично. Можно только отметить, что тип привязки обычно не может быть ссылочным, даже если в декларации указана ссылка (хотя поведение всё равно может быть как у ссылки).

В приведённом выше описании не указаны многие детали, для дополнительной информации используйте приведённые ссылки.

За

  • Название типов в C++ может быть длинным и громоздким, особенно при использовании шаблонов и пространств имён.
  • Когда название типа C++ повторяется несколько раз внутри небольшого куска кода или декларации, это повторение не улучшает читабельность.
  • В ряде случаев вывод типов безопаснее, т.к. позволяет избежать случайных копирований или преобразований типов.

Против
При явном указании типов код C++ становится более ясным и понятным, особенно если вывод типов опирается на информацию из совершенно другой части кода. В выражении наподобие:

auto foo = x.add_foo(); // Плохо. Что есть foo?
auto i = y.Find(key);

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

Необходимо разбираться, выдаётся ли ссылка при выводе типа, производится ли копирование (особенно если оно не предполагалось).

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

Вердикт
Основное правило: используйте вывод типов только если это сделает код более ясным и безопасным. Не используйте вывод типов только чтобы облегчить написание кода. Не забывайте, что читатели кода могут быть в другой команде и не знакомы с этим проектом. Поэтому, хотя явные типы могут считаться понятным, очевидным и избыточными для одних, они могут содержать полезную информацию для других. Например, можно полагать, что возвращаемый тип make_unique<Foo>() очевиден. Однако, в случае MyWidgetFactory() лучше считать по-другому.

Эти принципы применяются для всех видов вывода типов. Однако, существуют тонкости, описанные ниже.

Вывод аргументов шаблонной функции

Вывод аргументов шаблонной функции это практически всегда хорошо. Это стандартный и ожидаемый способ работы с шаблонными функциями, т.к. вызов такой функции напоминает работу с обычной (но перегруженной для различных аргументов) функцией. И шаблонные функции желательно проектировать так, чтобы вывод аргументов был корректный и безопасный, или функция не должна компилироваться.

Вывод типов локальных переменных

В случае локальных переменных можно использовать вывод типов, чтобы сделать код более простым, убрав очевидную или нежелательную информацию о типах, и читатель может сконцентрироваться на важных частях кода. Сравните примеры кода:

std::unique_ptr<WidgetWithBellsAndWhistles> widget_ptr =
    absl::make_unique<WidgetWithBellsAndWhistles>(arg1, arg2);
absl::flat_hash_map<std::string,
                    std::unique_ptr<WidgetWithBellsAndWhistles>>::const_iterator
    it = my_map_.find(key);
std::array<int, 0> numbers = {4, 8, 15, 16, 23, 42};
auto widget_ptr = absl::make_unique<WidgetWithBellsAndWhistles>(arg1, arg2);
auto it = my_map_.find(key);
std::array numbers = {4, 8, 15, 16, 23, 42};

Типы иногда содержат смесь как полезной, так и формальной информации. Например в примере выше очевидно, что it это итератор. Вообще в большинстве аналогичных случаев информация о контейнере и даже типе ключа не особо полезна, однако тип значения обычно важен. В этом случае можно определить локальную переменную с явно указанным (полезным для читателя) типом:

auto it = my_map_.find(key);
if (it != my_map_.end()) {
  WidgetWithBellsAndWhistles& widget = *it->second;
  // Do stuff with `widget`
}

Если тип является шаблонным, у которого параметры неинформативны, но тип самого шаблона является важным, то можно использовать вывод аргументов шаблонного класса чтобы избавиться от формального (ненужного) кода. Отметим что случаи, когда это является полезным, довольно редки. Также учтите, что при использовании вывода аргументов шаблонного класса желательно следовать специальным рекомендациям.

Не используйте decltype(auto) при наличии более простых альтернатив, т.к. результат использования не всегда легко предсказуем.

Вывод типа возвращаемого значения

Используйте вывод типа возвращаемого значения (как для функция, так и для лямбд), только если тело функции содержит небольшое количество return и сам код небольшой. В противном случае читатель не сможет понять возвращаемый тип без его исследования. Также применяйте такой вывод типов только для функций или лямбд с очень маленькой областью видимости, т.к. функции не могут установить границы абстракции: сама реализация формирует интерфейс. В частности, публичные функции в заголовочных файлах никогда не должны использовать вывод типа возвращаемого значения.

Вывод типов параметров

Параметры с auto в ламбдах должны использовать с осторожностью, т.к. реальный тип определяется кодом лямбды, а не её объявлением. И, конечно, явное указание типа обычно более понятно, за исключением случаев, когда лямбда определяется рядом с местом её использования (можно одновременно видеть и определение лямбды и её вызов) или лямбда передаётся в настолько известный интерфейс, что используемые аргументы очевидны (например, см. вызов std::sort выше).

Инициализация переменных захвата ламбды

При инициализации переменных захвата предпочтительны специальные рекомендации, которые в целом подменяют общие правила для использования вывода типов.

Структурные привязки

В отличие от других форм вывода типов, структурные привязки могут дать дополнительную информацию за счёт правильного именования элементов полного объекта. Т.е. декларация структурной привязки может улучшить читабельность кода по сравнению с использованием явного типа (даже если auto не рекомендуется). Структурные привязки хорошо подходят при работе с парами или кортежами (см. пример использования insert выше), потому что в последних нет «говорящих» названий полей. С другой стороны, в целом не рекомендуется использовать пары и кортежи, пока внешний API, наподобие insert, явно этого не потребует.

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

auto [/*field_name1=*/ bound_name1, /*field_name2=*/ bound_name2] = ...

Также, как и с параметрами функций, комментарии могут помочь внешним инструментам определить ошибки в порядке указания полей.

Вывод аргументов шаблонного класса

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

Определение

Вывод аргументов шаблонного класса (CTAD) проявляется, когда переменная декларируется с типом шаблона, но без указания аргументов (даже без угловых скобок):

std::array a = {1, 2, 3};  // Тип `a`: std::array<int, 3>

Компилятор выводит аргументы из выражения инициализации, используя «гайд» для шаблонов, который может быть явный и неявный.

Явный гайд походит на декларацию функции с возвращаемым типом в конце, только без auto вначале, и имя функции есть имя шаблона. Например, ранее приведённый пример опирается на следующий гайд для std::array:

namespace std {
template <class T, class... U>
array(T, U...) -> std::array<T, 1 + sizeof...(U)>;
}

Конструкторы в основном определении шаблона (т.е. не в специализации) также неявно определяют «гайд».

Когда объявляется переменная, использующая CTAD, компилятор выбирает «гайд» на основе правил выбора (разрешения) перегруженного конструктора, и возвращаемый гайдом тип становится типом переменной.

За
CTAD иногда может уменьшить количество формального кода.

Против
Неявные «гайды», получаемые из конструкторов, могут реализовывать нежелательное или даже неправильное поведение. Эта проблема может часто проявляться для конструкторов, написанных до появления CTAD в C++17, т.к. авторы кода просто не знали о тех проблемах, которые вызовет CTAD. И далее, добавление явных «гайдов» для исправления проблемы может поломать любой существующий код, который использует неявные гайды.

У CTAD есть много недостатков, аналогичных недостаткам auto, т.к. оба механизма выводят (полный или частичный) тип переменной на основе инициализации. CTAD выдаёт больше информации, чем auto, однако всё равно не содержит явного указания, если информация была пропущена.

Вердикт
Не используйте CTAD на шаблонных классах, пока не будет поддержки механизма и обеспечен хотя бы один явный «гайд» (предполагается, что в пространстве имён std всё поддерживается). Желательно, чтобы недопустимое использование CTAD приводило к предупреждениями компилятора.

В любом случае, использование CTAD должно следовать общим правилам при выводе типов.

Лямбды

Используйте лямбды в подходящих случаях. Желательно использовать явный захват переменных, если лямбда будет выполнена вне текущей области видимости.

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

std::sort(v.begin(), v.end(), [](int x, int y) {
  return Weight(x) < Weight(y);
});

Лямбды также позволяют захватывать переменный из текущей области видимости либо (явно) по имени, либо (неявно) через захват по-умолчанию. Явный захват предписывает перечислить все требуемые переменные: либо как значения, либо как ссылки:

int weight = 3;
int sum = 0;
// Захват `weight` по значению и `sum` по ссылке.
std::for_each(v.begin(), v.end(), [weight, &sum](int x) {
  sum += weight * x;
});

Захват по-умолчанию применяется ко всем переменным, используемым в теле лямбды, в том числе и к this (если используются члены класса):

const std::vector<int> lookup_table = ...;
std::vector<int> indices = ...;
// Захват `lookup_table` по ссылке, сортировка `indices` по значению
// ассоциированных элементов из `lookup_table`.
std::sort(indices.begin(), indices.end(), [&](int a, int b) {
  return lookup_table[a] < lookup_table[b];
});

Захват переменной может быть также с инициализатором, что можно использовать для перемещения (move) переменных по значению или для других случаев, не подпадающих под обычный захват по значению или ссылке:

std::unique_ptr<Foo> foo = ...;
[foo = std::move(foo)] () {
  ...
}

Такой тип захвата (часто называемый init или generalized) нужен скорее не для собственно «захвата» переменных (или даже имён) из текущей области видимости. Этот синтаксис нужен для определения членов объекта лямбды:

[foo = std::vector<int>({1, 2, 3})] () {
  ...
}

И тип такой переменной с инициализатором выводится согласно правилам, аналогичным использованию auto.

За

  • Лямбды это очень удобный и лаконичный способ определения объектов-функций (например, для передачи в алгоритмы STL), что может улучшить читабельность.
  • Правильное использование захвата по-умолчанию может устранить избыточность и выявить важные исключения при захвате.
  • Лямбды, std::function и std::bind можно использовать совместно как механизм обратного вызова общего назначения. Упрощается написание кода, принимающего/использующего функции как аргументы.

Против

  • Захват переменных может быть источником ошибок с недействительными указателями, особенно если лямбда выходит за текущую область видимости.
  • Захват по умолчанию может вводить в заблуждение, т.к. он не защищает от ошибок недействительных указателей. Захват указателя на объект по значению не приводит к созданию копии самого объекта. При этом часто возникают те же особенности жизненного цикла, что и при захвате по ссылке. Учтите, что ‘this’ также захватывается по значению и это может привести к проблемам, т.к. он часто используется неявно.
  • Захват фактически объявляет новые переменные (вне зависимости от наличия инициализатора), хотя это отличается от обычного синтаксиса C++. В частности, нет указания типа переменной, даже в виде auto (хотя захват с инициализацией может сделать это неявно через приведение типов), и это отличается от типовой декларации.
  • Захват с инициализацией использует вывод типов, и подвержен тем же проблемам, что и auto, плюс сам синтаксис не содержит указания, что происходит вывод типов.
  • В ряде случаев использование лямбд может сильно затруднить понимание кода (очень длинные функции) или потребовать дополнительного контроля.

Вердикт

  • Используйте лямбды в подходящих случаях. Применяйте форматирование, описанное ниже.
  • Рекомендуется явно указывать захват переменных, если лямбда может выйти за текущую область видимости. Например, вместо:
    {
      Foo foo;
      ...
      executor->Schedule([&] { Frobnicate(foo); })
      ...
    }
    // ПЛОХО! При беглом просмотре можно упустить, что лямбда использует
    // ссылку на foo и this (если Frobnicate является членом класса).
    // Если лямбда вызывается после возврата из текущей функции, то
    // это приведёт к проблемам, т.к. foo и другие объекты могут быть
    // уже разрушены.  
    

    лучше написать:

    {
      Foo foo;
      ...
      executor->Schedule([&foo] { Frobnicate(foo); })
      ...
    }
    // ЛУЧШЕ - Компилятор выдаст ошибку, если Frobnicate является методом класса.
    // Также явно указано, что foo захватывается по ссылке.
    

  • Используйте захват по-умолчанию по ссылке ([&]), только если жизненный цикл лямбды явно короче чем у любой переменной.
  • Используйте захват по-умолчанию по значению ([=]), только как средство привязки нескольких переменных для короткой лямбды. Не рекомендуется писать лямбды с объёмным и сложным кодом вместе с захватом по-умолчанию по значению.
  • Используйте захват только существующих переменных из текущей области видимости. Не используйте захват с инициализаторами, чтобы ввести новые имена или подменить существующие. Вместо этого можно объявить обычную новую переменную и передать её в лямбду, или вместо лямбды определить отдельную полноценную функцию.
  • Вопросы по указанию параметров и возвращаемому типу рассмотрены в разделе Вывод типов.

Метапрограммирование на шаблонах

Не используйте сложные/запутанные шаблоны в коде.

Определение
Метапрограммирование на шаблонах это семейство техник, использующих возможности по инстанцированию шаблона в C++, которое Тьюринг-полное, для выполнения вычислений на этапе компиляции.

За
Метапрограммирование позволяет создавать очень гибкие интерфейсы, у которых высокая производительность и отличная типобезопасность. Например, Google Test, std::tuple, std::function и Boost.Spirit были бы невозможны без таких средств.

Против
Техники метапрограммирования часто непонятны всем, кроме экспертов языка. Код, использующий шаблоны запутанными/сложными способами, часто нечитабелен, его сложно отлаживать и поддерживать.

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

Метапрограммирование усложняет проведение рефакторинга, затрудняя работу инструментов. Во-первых, код шаблона раскрывается в различных контекстах и трудно проверить, что в каждом из них код остаётся корректным. Во-вторых, ряд инструментов работает уже с AST (прим.: абстрактное синтаксическое дерево), которое описывает структуру кода только после раскрытия шаблонов. И в этом случае может быть тяжело обнаруженные проблемы отобразить на исходные конструкции в коде и определить, что требуется переписать.

Вердикт
Метапрограммирование в ряде случаев позволяет создать понятные и простые в использовании интерфейсы (которые были бы сложнее в ином случае), однако есть соблазн всё сделать чересчур заумным. Поэтому его лучше использовать в небольшом количестве низкоуровневых компонентов, чтобы сложность поддержки компенсировалась полезностью и широтой применения.

Дважды подумайте перед тем, как использовать метапрограммирование или другие сложные техники на шаблонах: может ли средний программист в команде понять и поддерживать такой код (особенно после переключения с другого проекта); сможет ли не-C++ программист (или другой случайный читатель) понять сообщения об ошибках или отладить выполнение функции, которую он вызывает. Если используются рекурсивное инстанцирование шаблонов, список типов, метафункции, шаблоны выражений или используется SFINAE или трюк с sizeof для разрешения перегрузки функции — скорее всего вы зашли слишком далеко.

Если используется метапрограммирование, то готовьтесь приложить усилия для минимизации сложности, а также её изоляции. По возможности скрывайте код с метапрограммированием внутри реализации, чтобы сделать пользовательские заголовочные файлы более читабельными. Код с метапрограммированием должен быть очень хорошо откомментирован: следует подробно задокументировать, как использовать код и на что будет похож «сгенерированный» результат. Обратите особое внимание на сообщения об ошибках, которые выдаёт компилятор, когда делается что-то ошибочное. Учтите, что сообщения об ошибках являются частью вашего пользовательского интерфейса и код следует доработать так, чтобы сообщения об ошибках были понятными для пользователя и объясняли, что нужно делать для их исправления.

Boost

Используйте только одобренные библиотеки из коллекции Boost.

Определение

Boost это популярная коллекция проверенных, бесплатных и открытых библиотек C++.

За
В целом код Boost является высококачественным, портируемым и во многом дополняется стандартную библиотеку C++, например, в таких областях как свойства типов или улучшенные связыватели (binder).

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

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

  • Call Traits из boost/call_traits.hpp
  • Compressed Pair из boost/compressed_pair.hpp
  • Boost Graph Library (BGL) из boost/graph, за исключением сериализации (adj_list_serialize.hpp) и параллельных/распределённых алгоритмов и структур данных (boost/graph/parallel/* и boost/graph/distributed/*).
  • Property Map из boost/property_map, за исключением параллельных/распределённых (boost/property_map/parallel/*).
  • Iterator из boost/iterator
  • Часть Polygon, которая работает с построением диаграмм Вороного и не зависит от остальной части Polygon: boost/polygon/voronoi_builder.hpp, boost/polygon/voronoi_diagram.hpp, and boost/polygon/voronoi_geometry_type.hpp
  • Bimap из boost/bimap
  • Statistical Distributions and Functions из boost/math/distributions
  • Special Functions из boost/math/special_functions
  • Root Finding Functions из boost/math/tools
  • Multi-index из boost/multi_index
  • Heap из boost/heap
  • flat-контейнеры библиотеки Container: boost/container/flat_map и boost/container/flat_set
  • Intrusive из boost/intrusive
  • Библиотека boost/sort
  • Preprocessor из boost/preprocessor

В настоящее время прорабатывается вопрос о добавлении других библиотек Boost в этот список, так что он может в будущем дополняться.

std::hash

Не определяйте специализации std::hash.

Определение

std::hash<T> это объект-функция, который hash контейнеры C++11 используют для получения хэш-ключа от типа T, если явно не указана другая хэш-функция. Например, std::unordered_map<int, std::string> это hash map, используюущая std::hash<int> для расчёта хэша ключа, тогда как std::unordered_map<int, std::string, MyIntHash> использует для расчёта MyIntHash.

std::hash определена для всех целочисленных чисел и с плавающей запятой, указателей, enum-ов, некоторых типов стандартной библиотеки (например, string и unique_ptr). Также допустимо определить специализацию для своих собственных типов.

За

std::hash легко использовать, она упрощает код, т.к. нет необходимости вводить свои именования. Специализация std::hash это стандартный способ определения хэша, удобный и понятный и новичкам и внешним командам.

Против
Хорошую специализацию std::hash может быть сложно написать: она может содержать большое количество формального и одинакового кода. Также это может потребовать усилий и по идентификации входных данных и по созданию самого алгоритма. Автор типа данных обычно ответственен за первое, а со вторым чаще всего возникают проблемы, т.к. это требует определённой экспертизы, которой у автора обычно нет (да она и не нужна). При этом плохая реализация алгоритма может внести уязвимости в безопасность кода, например от атак hash flooding.

Даже для экспертов создание хорошей специализации std::hash может представлять сложность, особенно для составных типов, т.к. хорошая реализация не может просто рекурсивно вызывать std::hash на всех членах данных. Высококачественные хэш-алгоритмы содержат большое количество внутренних состояний, и упаковка их в размер size_t (что функция std::hash и возвращает) обычно является самой медленной частью в вычислениях, так что это должно выполняться не более одного раза.

Именно из-за этого std::hash не работает с std::pair и std::tuple, и в язык не добавлена их поддержка.

Вердикт
Можно использовать std::hash с типами, которые поддерживаются «из коробки», но не добавляйте специализации для своих типов. Если требуется хэш-таблица с ключом, который не поддерживается std::hash, то возможно следует воспользоваться другими (ранними) хэш-контейнерами (например, hash_map); в них используется другой хэш-алгоритм, на который этот запрет не влияет.

Если всё равно требуется стандартный контейнер, то задаёте собственную хэш-функцию для ключа, например:

std::unordered_map<MyKeyType, Value, MyKeyTypeHasher> my_map;

Прежде всего узнайте у автора типа данных о наличии готовой хэш-функции (а вдруг?). В противном случае создавайте свою, в сотрудничестве с автором, или без него.

Возможно, скоро появится хэш-функция, которая сможет работать с любым типом и использовать новый механизм подстройки, при этом у неё не будет недостатков std::hash.

Остальные возможности C++

Некоторые расширения современного C++, также как и Boost, содержат код с плохой читабельностью, с удалённой добавочной информацией о типах, с использованием метапрограммирования. Другие же расширения дублируют существующий функционал, что может привести к путанице и дополнительной конвертации кода.

Вердикт
Настоятельно не рекомендуется использовать следующие возможности C++:

  • Рациональные числа (относящиеся к времени компиляции) (<ratio>), т.к. за интерфейсом может стоять сложный шаблон.
  • Заголовочные файлы <cfenv> и <fenv.h>, т.к. многие компиляторы не поддерживают корректную работу этого функционала.
  • Заголовочный файл <filesystem>, который недостаточно протестирован, и подвержен уязвимостям в безопасности.

Нестандартные расширения

Нестандартные расширения C++ не рекомендуется использовать, пока явно не указано обратное.

Определение
Компиляторы поддерживают различные расширения, не являющиеся частью стандартного C++. Например, __attribute__, внутренние (intrinsic) функции (__builtin_prefetch), назначенные инициализаторы (Foo f = {.field = 3}), ассемблерные вставки, __COUNTER__, __PRETTY_FUNCTION__, составные выражения (foo = ({ int x; Bar(&x); x }), массивы переменной длины, alloca() и «оператор Элвис» a?:b.

За

  • Нестандартные расширения могут предоставить полезные возможности, которых нет в стандартном C++. Например, многим назначенные инициализаторы нравятся больше, чем типовые конструкции C++ (конструкторы).
  • Сделать указания компилятору по оптимизации производительности кода можно только используя расширения.

Против

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

Вердикт
Не используйте нестандартные расширения. Можно использовать портируемые обёртки кода, которые реализованы с использованием нестандартных расширений и и (желательно) содержатся в одном заголовочном файле (portability header).

Псевдонимы/Alias

Публичные псевдонимы предназначены для использования с API и должны быть хорошо документированы.

Определение
Есть несколько способов для создания имён, являющихся псевдонимами для других сущностей:

typedef Foo Bar;
using Bar = Foo;
using other_namespace::Foo;

При написании нового кода рекомендуется использовать using, а не typedef. Это обеспечивает более согласованный синтаксис с остальным C++ кодом и поддерживает работу с шаблонами.

Аналогично другим декларациям, псевдонимы, введённые в заголовочном файле, обычно являются частью публичного API этого файла. Исключения касаются случаев, когда псевдонимы объявлены внутри определения функции, private секции класса или явно отмеченном внутреннем пространстве имён. Такие псевдонимы, а также введённые в .cc файлах являются «деталями реализации» (т.к. клиентский код к ним не обращается) и не подпадают под действие этих правил.

За

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

Против

  • Псевдонимы, размещённые в заголовочном файле (где клиентский код может обращаться к ним), увеличивают количество сущностей в этом файле API и его сложность.
  • Клиентский код может полагаться на особенности публичных псевдонимов, и это усложняет внесение изменений.
  • Есть соблазн создавать публичные псевдонимы, которые будут использоваться только во внутренней реализации. Такой подход может влиять на сам API и усложнит его поддержку.
  • Псевдонимы увеличивают риск создания дубликата для другого имени.
  • Псевдонимы могут ухудшить читабельность кода, если хорошо известным сущностям будут давать незнакомые имена.
  • Псевдонимы типов могут создать «ненадёжное» соглашение по API: то ли псевдоним всегда будет идентичным указанному типу (API не изменится, тип можно использовать любым способом); то ли тип у псевдонима может поменяться (тогда рекомендуется использовать только небольшую часть возможностей).

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

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

Не объявляйте публичные псевдонимы на пространства имён в своём API. (См. также Пространство имён).

Например, следующие псевдонимы описывают способ их использования в клиентском коде:

namespace mynamespace {
// Используется для хранения измерений. DataPoint может меняться с Bar* на другой
// внутренний тип, его следует трактовать как абстрактный указатель.
using DataPoint = foo::Bar*;
// Набор измерений. Добавлен для удобства пользователя.
using TimeSeries = std::unordered_set<DataPoint, std::hash<DataPoint>, DataPointComparator>;
}  // namespace mynamespace

Приведённые ниже псевдонимы не документируют способы использования и часть из нихвообще не предназначения для использования в клиентском коде:

namespace mynamespace {
// Плохо: непонятно, как это использовать.
using DataPoint = foo::Bar*;
using std::unordered_set;  // Плохо: это для внутреннего удобства
using std::hash;           // Плохо: это для внутреннего удобства
typedef unordered_set<DataPoint, hash<DataPoint>, DataPointComparator> TimeSeries;
}  // namespace mynamespace

Однако, локальные псевдонимы очень удобны внутри определения функций, private секций классов, внутренних пространств имён и в .cc файлах:

// В .cc файле
using foo::Bar;

Примечания:
Изображение взято из открытого источника.

  • Придуманные сказки для детского сада
  • Придумать маленький рассказ на тему остаться у разбитого корыта
  • Придумать 5 вопросов к сказке царевна лягушка
  • Придуманные детьми докучные сказки 3 класс
  • Придумать конец сказки про кошку и мышку