Опубликован web-фреймворк Pusa с реализацией концепции, переносящей логику фронтэнда, выполняемую в браузере при помощи JavaScript, на сторону бэкенда — управление браузером и DOM элементами, а также бизнеслогика выполняются на бэкенде. Выполняемый на стороне браузера JavaScript код заменяется на универсальную прослойку, вызывающую обработчики, находящиеся на стороне бэкенда. Необходимость разработки с использованием JavaScript для фронтэнда отсутствует. Эталонная реализация Pusa написана на языке PHP и распространяется под лицензией GPLv3. Кроме PHP технология может быть реализована на любому другом языке, включая JavaScript/Node.js, Java, Python, Go и Ruby.
Pusа определяет протокол обмена на базе минималистичного набора команд. При загрузке страницы браузер загружает базовое содержимое DOM и JavaScript-ядро Pusa-Front. Pusa-Front посредством Ajax-запросов направляет события браузера (такие как click, blur, focus и keypress) и параметры запроса (элемент вызвавший событие, его атрибуты, URL и т.п.) в серверный обработчик Pusa-Back. На основании полученных данных Pusa-Back определяет контроллер, выполняет полезную нагрузку и формирует ответный набор команд. Получив ответ запроса Pusa-Front выполняет команды, изменяя содержимое DOM и окружение браузера.
Состояние фронтэнда формируется но не контролируется бэкендом, что делает разработку для Pusa схожей с кодом для видеокарты или Canvas, где результат исполнения не контролируется разработчиком. Для создания
интерактивных приложений на базе Canvas и onmousemove предусмотрена возможность загрузки и использования дополнительных скриптов JavaScript на стороне клиента. Из недостатков метода также отмечается перенос части нагрузки с фронтэнда на бэкенд и увеличение частоты обмена данными с сервером.
Среди достоинств выделяются: исключение необходимости участия JavaScript-разработчиков фронтэнда, стабильный и компактный клиентский код (11кб), недоступность основного кода со стороны фронтэнда, отсутствие необходимости в сериализации REST и в средствах типа gRPC, исключение проблем согласования маршрутизации запросов между фронтэндом и бэкендом.
- Главная ссылка к новости (https://gitlab.com/catlair/pus…)
- OpenNews: Выпуск серверной JavaScript-платформы Node.js 17.0
- OpenNews: Новая атака на системы фронтэнд-бэкенд, позволяющая вклиниться в запросы
- OpenNews: RangeAmp — серия атак на CDN, манипулирующая HTTP-заголовком Range
- OpenNews: Атака на системы фронтэнд-бэкенд, позволяющая вклиниться в сторонние запросы
- OpenNews: Выпуск системы управления контентом Joomla 4.0
| –5 +/– |
>Pusa-Front посредством Ajax-запросов направляет события браузера (такие как click, blur, focus и keypress) и параметры запроса (элемент вызвавший событие, его атрибуты, URL и т.п.) в серверный обработчик Pusa-Back. Интересно, насколько всё это требовательно к сети? Допустим, на десктопах и на мобильниках в городе проблем не будет, ок, а что на счёт того, когда качество сети плохое? >Среди достоинств выделяются А среди недостатков? Сказали а, говорите и б! | |
|
| +11 +/– |
идея интересная, но современный веб так откормил своих клиентов, что заднюю просто так не включит, хотя для локальных решений очень даже годно | |
|
| +10 +/– |
> Pusa-Front посредством Ajax-запросов направляет события браузера (такие как click, blur, focus и keypress) и параметры запроса (элемент вызвавший событие, его атрибуты, URL и т.п.) в серверный обработчик Pusa-Back. Гайд, как самому DDoSнуть свой сервер. Как только сайтом начнёт пользоваться достаточно большое количество человек, сервер просто упадёт из-за того что пользователи *кликают на веб страницу*. А если кто-нибудь подрубит автокликер, так вообще классно будет. | |
|
|
| +21 +/– |
В начале был простой HTML, и интернет был хорош. Потом решили, что нужно добавить свистоперделок. Потом поняли, что серверы не справляются с нагрузкой, и переложили часть работы на клиентов. Потом ещё. Потом поняли, что у клиентов всё тормозит, жрёт в три горла и срёт в две жопы, и начали переносить всё обратно. Глядишь, когда-нибудь вернёмся к чистому HTML. И всё снова станет хорошо | |
|
|
| +4 +/– |
Следующий этап — компилировать полученный PHP код на JS и перенос его обратно на сторону клиента. Все что требуется — простенький транспортный протокол для работы с БД. | |
|
| +1 +/– |
Я смотрю любят программисты JavaScript велосипеды изобретать — JSF/GWT/Vaadin/ZKoss не слышали, надо обязательной свой забабахать. | |
|
| +5 +/– |
| |
|
| +3 +/– |
Откуда эту настойчивая потребность избавления от JS? В устойчивой неспособности на нем программировать? Зря, хороший язык. Поведение интерфейса и представление данных в любом случае пишется на фронтенде. И это не только формы. В реальной работе очень быстро окажется, что возможностей не хватает и нужно писать JS. | |
|
| –2 +/– |
>недоступность основного кода со стороны фронтэнда Сразу на *** такие сайты. | |
|
| +/– |
Яваскрипт придумали именно для того, чтобы разгрузить сервер и канал, здесь же — наоборот, нагрузка переносится с клиента на сервер. Это то, что касается нагрузки. Но есть и другая сторона — безопасность. Перенос исполнения кода на сторону сервера приведёт к тому, что на сервер придётся передавать информацию о клиенте, такую, как разрешение экрана и тому подобное, которую яваскрипт может обработать локально, ничего на сервер не передавая. Что же касается сокрытия бесценных авторских прав авторов скриптов, то с этим неплохо справляется и обфускация. | |
|
| +/– |
Мдаааа, у них с головой все в порядке ? Кричали что php/python крутящийся на сервере это типа плохо а давайте часть логике в js на клиента перетащим. Мда …. | |
|
|
| +1 +/– |
Т.е. ты такой сидишь в своей конторке и думаешь: «О! А давайте сэкономим на зажравшихся фронтах и будем эту логику на бекэнде выполнять!» Выносишь все обработчики и состояние на бэк и вдруг понимаешь, что у тебя не одно соединение, а тысячи-миллионы и что теперь тебе нужен новый тарифный план в этих ваших облаках. | |
|
| –2 +/– |
Хорошая технология для каких-нибудь дашбордов Я видел как такое работает на Phoenix LiveView, очень круто, только там вебсокет а не ajax | |
| +1 +/– |
Все просто, это нужно для того, чтоб на мелких проектах, PHP-макака могла запилить проект в одно рыло, без JS-макаки | |
|
| –1 +/– |
Во блин. А я давно уже думал, что это на самом деле бред писать вэб приложения на двух языках — один для бэкэнда, а другой для фронтэнда. Раньше был смысл, когда странички считались чем-то вроде текста. Но сейчас то, блин, это уже полноценные приложения и в браузере мы видим по сути только морду. Так зачем вот эта огромная куча костылей? Все эти html, css, js и еще куча всякой другой ереси? | |
|
|
| +/– |
А вообще стоило бы смотреть в сторону TwinSpark, HTMx. Они тоже занимают 11кБ размера (золотой стандарт я погляжу) и при этом всё декларативно. А взглянув на ужасный протокол Pusa чуть плохо не стало, пусть дорабатывают. | |
|
|
| +/– |
Интересно, можно ли таким образом ддосить ресурсы, — просто эмулировать перемещение курсором по страничке? | |
|
| +/– |
> Состояние фронтэнда формируется но не контролируется бэкендом, что делает разработку для Pusa схожей с кодом для видеокарты или Canvas, где результат исполнения не контролируется разработчиком Кто объяснит, что здесь написано? Что значит «схожей с кодом для видеокарты Canvas, где результат исполнения не контролируется разработчиком»? | |
|
|
| +/– |
Есть pjax livewire hotwire turbolink А это чисто пэхэпэ или тащит за собой фреймворк? | |
|
|
| +/– |
а умеет в SSR или есть ли планы по его реализации? т е сначала рендерим страницу полностью а далее через этот протокол — при этом чтоб код одинаковый был | |
|
|
|
|
|
31.10.2014 14:26:40
Инна
Места богатые, но освоение опасно для людей и окружающей среды. Пусть полежат богатства, подождут человека разумного.
31.10.2014 16:17:30
Держись, геолог, крепись, геолог
Насколько я знаю, Альгамин еще в конце прошлого года выставили на торги Дальнедра с начальной ценой в 300 млн рублей. Но, по-моему, инвестора так и не нашлось. Тем более, сегодня, когда санкции и прочее. Остаются только китайцы. Сегодня рынок циркония перспективен, причем, и для возможных будущих военных технологий.
31.10.2014 16:26:30
ДВНАН
Высокотехнологичная керамика используется в космической отрасли, в автомобильной и авиационной промышленности и медицине. Именно эти качества выделяют цирконий среди других биосовместимых материалов. Материал имеет высокую светопроводимость, гибкость, прочность и теплопроводность. Вот с учетом строительства космодрома «Восточный» и нужно создавать здесь циркониевую добычу и переработку. Вот вам и еще одна территория опережающего развития. Да и авиационный Комсомольск рядом. Надо было не сажать «космонавата» Хризмана, а поручить ему освоить за «расстраченные» 1,8 млрд рублей циркониевое месторождение для космоса. Пусть бы искупил свою вину геологическим подвигом.
31.10.2014 16:41:02
стратег
Почти все эти металлы (от тугоплавкого бериллия до легкоплавкого лития) постановлением правительства РФ отнесены к стратегическому сырью. Таких месторождений, действительно, по миру — раз два и обчелся.
По-моему, только австралийцы в добыче всего этого поднаторели. Вот им и предложить стать инвесторами, если, конечно, страя добрая Англия не будет против.
Там на Альгаминском рудопроявлении нужно город ставить Цирконийград. Это будет промышленной визитной карточкой Хабаровского края. Дороги туда пробить, создать инфраструктуру, вызвать из Сан-Франциско Лопатюка, закрыть его уголовное дело, и реально начать целенаправленно осваивать наш край.
31.10.2014 16:46:53
олух
Про опасность для окружающей среды и для людей. Биологически цирконий не опасен. Он даже более биоинертен, чем титан, из него часто изготовляют разного рода протезы и имплантаты. Но порошкообразный цирконий очень взрывоопасен.
В воздушной среде он самовоспламеняется при комнатной температуре и горит ярким пламенем, из-за чего его часто применяют в пиротехнике, а когда-то раньше использовали в фотовспышках. При добыче циркония, конечно, образуется пыль, но Альгаминское месторождение — это диоксиды циркония и прочих сопутствующих металлов. Они не представляют никакой опасности для природы и людей.
А фабрика по выработке циркония, конечно, вредное производство и опасное. Но не вреднее и не опаснее золотоизвлекательных фабрик.
31.10.2014 16:56:30
О. Григорьев
Циркониевый концентрат нам в основном поставляла Украина. Свой цирконий Россия добывает по-моему только на одном месторождении и то попутно. Потребность в нем действительно велика, но его очень дорого добывать. В Австралии циркониевые месторождение не глубоко залегают, а в Хабаровском крае — это глубокозалегающие пласты. Китай станет главным покупателем — он сейчас развивается. Дерзайте, ученые и чиновники.
31.10.2014 17:06:12
Ольга
Лопатюк уже пожилой, да и не поедет он больше сюда, даже если посадят его бывшего друга.
31.10.2014 17:09:13
Павел Тихонович
Почему у нас в Хабаровске все так трудно делается? Эти залежи циркония были известны уже многие десятки лет. И ничего не делалось. Где ж ты, советская власть?
31.10.2014 17:20:29
Виктор
Не так уж давно Улканский рудный район выявлен в промышленных масштабах. Наш кандидат наук Валентин Алексеевич Гурьянов и геолог Васькин из Дальгеофизики описали все это в спецификации только в 2005 или в 2006 году. Так что, все еще свеженькое и тепленькое. Да и Альгаминское месторождение только-только прощупано реально.
31.10.2014 17:22:16
Светлана
Прекрасная новость, вот новая возможность трудоустройства всех
желающих, так что дерзайте
31.10.2014 17:25:30
Дина
А у моей тетки сережки с циркониевыми камушками-бриллиантами. Это что такое? Кто знает?
31.10.2014 17:54:11
физик
Это силикатный циркон с примесью гафния — похож на аламаз по блеску
31.10.2014 21:24:02
Добрая генеральша
Если кому то интересно, то Алгаминское месторождение открыто ….цать лет тому назад. Работала там 19 партия, потом забросила. Где то лет 10 назад у них появились деньги и они наняв вертолёты привезли маргиналов и пропиленовые мешки. В эти мешки затаривалась руда для вывоза на материк, но как обычно бывает кончились деньги и затаренная руда так и осталась на Алгоме. Почему завозились маргиналы? Так это наверное связано с тем, что сам цирконий может и безопасен, но руда фонит страшно…
31.10.2014 23:53:07
Дальневосточник
Такое ощущение, что попал на форум геологов. Откуда здесь столько специалистов?
01.11.2014 23:01:11
Елена Васильевна, 55 лет, не геолог, но и не лирик — дальневосточнику
Я тоже удивилась, но потом поняла, что, наверное, Дебри редко публикует подобную специфическую информацию, да еще в подробностях. А читают Дебри, в том числе и умные, думающие люди, видимо, среди которых немало и тех же геологов, и геофизиков, и прочих ученых мужей. Им же нигде не дают сейчас высказываться открыто на свою тему. А политика порой уже надоедает. Наверное, поэтому любая прикладная и производственная информация всегда полезна. Конечно, в разрезе нынешнего экономического и политического состояния страны и Хабаровска. Жаль, что Дебри так редко предметно затрагивают темы науки, производства, редко касаются глубоко экономических, социальных, индустриальных проектов. Пусть их маловато сегодня, но людей-то думающих и знающих еще много осталось на Дальнем Востоке. Им, конечно, большинству, уже за 40-50, и они не сидят массово в интернете. Но это нужно, ребята. Ведь не ходят же на Дебри тинейджеры и молодой офисный планктон. Значит, есть смыслы открывать шире ворота, только без фанатизма. Готова помогать в этом Дебрям и всем другим инициативным товарищам.
03.11.2014 14:49:23
Злодей Злодеич
Хорошая мысль с Циркониеградом и отправкой туда всех сокращенных, недосягаемых для Фемиды хабаровской, только не под руководством «космонавта» Хризмана, а все же пригласить на отбытие наказания без судебного следствия и приговора Лопатюка. Он в вопросе разработке недр дров не наломает. да и знает как быт на северах обустроить и порядок как поддерживать. Вообщем создать новый трест «Дальстрой» со всеми вытекающими….
03.11.2014 19:38:46
местный житель
Злодей Злодеич, Не переживайте, на это месторождение уже давно «глаз положили» наши южные друзья, нефти им мало, теперь возьмутся за цирконий. А там, думаю будет чем поживиться, глядишь и на экс-полпреду, вице-президенту «Роснефти» В.Ишаеву, лакомый кусочек перепадет, как-никак, он ведь вроде крестник семейства Бажановых? Если конечно вслед за Ю.Хризманом не пойдет…
Привет!
Продолжаем публиковать текстовые версии докладов с QIWI Server Party 6.0, в этом посте — Александр Прокопьев и Developer Experience. Про инструменты, их качество и развитие инструментов разработчиков в QIWI.
Если предпочитаете формат видео, держите.
А вот и текст.
У меня есть любимая притча. Мужик пилит дерево. Другой к нему подходит и спрашивает:
— Как дела? Давно пилишь?
— Три дня уже.
— Что-то долго. Может тебе стоит пилу заточить?
— Не, некогда точить, нужно дерево пилить.
И в IT такое бывает часто. Работаешь над какой-нибудь рутинной задачей и думаешь, что вот наверняка есть какой-то инструмент, который может автоматизировать эту работу. Но сроки горят, и мы говорим себе: «Не в этот раз». И оставляем на потом. А когда работа завершается, мы быстро забываем про эту боль.
Я, например, до сих пор использую старый SQL Developer для работы с базой данных, хотя все коллеги давно перешли на DataGrip. И они периодически подталкивают меня, а мне все лень. Кто-то пользуется Git-ом и никак не соберется с силами, чтобы изучить его поглубже, добавить в свой багаж более глубокие команды. А кто-то использует IDE и не изучает горячие клавиши или плагины, которые могут помочь в работе.
Давайте посмотрим на инструменты чуть глобальнее, чем индивидуальные истории использования. Вы заметили, как быстро наши инструменты вышли за рамки одного ноутбука? Еще пять-шесть лет назад мы искали логи через SSH, заходя на сервер. А сейчас каждая уважающая себя IT-компания должна иметь что-то похожее на Kibana — без этого мы уже не можем себе представить поиск логов. Появились разные системы сборки, дашборды, инструменты для совместной работы и ревью. И за этими инструментами тоже нужно ухаживать, а не просто поставить и забыть о них на веки вечные.
Например, Kibana. Представим ситуацию, что нам нужно найти логи одного конкретного приложения. Что делать? Для начала добавить фильтр по имени приложения. Но что если у нас слишком много приложений в Kibana, и она не может в одном списке показать все возможные варианты? Придется имя приложения, этот фильтр, вбивать вручную.
Затем нужно добавить фильтр по environment. Нам нужен продакшн, поэтому добавляем его. И выбираем несколько полей, которые мы хотим видеть у себя, например, level и Message. В итоге получается около пяти разных операций просто для того, чтобы посмотреть логи приложения. И это нужно делать каждый раз, когда мы смотрим логи, то есть довольно часто. Плюс сюда входит ввод имени приложения вручную, которое нужно взять откуда-то из головы.
Если кто-то решил, что можно просто взять эту ссылку, сохранить ее и использовать в будущем как пресет — это хорошо. Это как раз то, о чем я говорю. В моем понимании это и есть хоть минимальный, но все-таки уход за приложением.
Еще один наболевший пример. Мне нужно зарелизить приложение. Код уже написан, протестирован и готов к проду. Я открыл наш TeamCity, нашел приложение, нажал на кнопку Start Deploy. И тут первый сюрприз — таска упала.
Но так и было задумано. Если открыть логи этой таски, можно увидеть, что там есть ссылка на тикет в Jira, в которую нужно перейти. Но там тоже ничего особенного не увидишь. Если ты прошаренный, то знаешь, что нужно дождаться, пока специальный бот придет и выделит тебе окно для релиза.
Затем нужно поставить будильник и не забыть в это время зарелизить. Что будет, если я забуду про будильник? Да ничего страшного, конечно же. Всего лишь перенос релиза на два-три часа. А может на следующий день. Всего-то.
Но если серьезно, когда в компании катится очень много релизов одновременно, это очень и очень плохая история — забыть про релиз. В общем, неплохо бы как-то оптимизировать этот процесс.
Developer Experience — это то, что испытывает разработчик, когда работает со своими инструментами. Это почти то же самое, что и User Experience, о котором мы так часто говорим, когда разрабатываем какие-то интерфейсы для внешних пользователей, только для девелоперов. И от этого опыта зависит не только удовольствие от работы или просто какие-то абстрактные ощущения, но и производительность.
Я сам страстно болею этой темой и часто пытаюсь найти узкие места, придумать какое-то решение и показать его ребятам. И я уверен, что так стоит делать. В этом посте я бы хотел порассуждать, как именно это можно делать и что делать с возникающими по ходу дела трудностями.
Почему иногда проще попробовать сделать все самому
Обычно для таких задач в компании принято создавать выделенные команды DevOps-инженеров. И у нас она есть. Ребята проделывают просто невероятно огромную работу для того, чтобы двигать наши IT-процессы и инструменты вперед. Без них у нас не было бы ни TeamCity, ни Kibana, ни Kubernetes, ничего.
А теперь давайте посмотрим на выдуманный бэклог такой команды.
Они хотят попробовать внедрить ArgoCD, развернуть Backstage, накатить какой-то патч с обновлением безопасности на Kubernetes. Может быть создать курс DevOps для разработчиков. А еще можно попробовать переехать на новый CI-tool. Видите масштаб этих задач? А теперь давайте попробуем сюда докинуть наших мелких хотелок, вроде упрощения поиска логов в Kibana или релизов в TeamCity.
Они, конечно, займутся этими задачами. Но приоритет таких мелких изменений будет всегда ниже, чем у более крупномасштабных вроде обновления безопасности Kubernetes. И мы будем ждать этих изменений очень долго. А когда DevOps-инженеры все-таки дойдут до них, то скорее всего изменят формулировку до более масштабного уровня. Типа «изменение всего пайплайна релиза в прод» или «поиск нового инструмента для просмотра логов». И это значит, что на внедрение уйдет еще больше времени.
Я думаю, что нет ничего зазорного в том, чтобы иногда брать инициативу в свои руки и пробовать самим улучшить experience и инструменты.
Как мы к этому шли
Так считаю не только я один. Если ретроспективно посмотреть на историю развития инструментов в Qiwi, можно заметить множество примеров того, как сами ребята на местах брали и улучшали свои инструменты.
В одной из команд ребята устали каждый раз руками накатывать миграции на базу данных PostgresQL. И в прошлом году автоматизировали этот процесс, используя Liquibase. Об этом можно прочитать в статье.
Другая история: четыре года назад у нас началась массовая миграция в Kubernetes . Представьте, для того, чтобы перевести только одно приложение в Кубер, нужно написать как минимум докер-файл и несколько YML-ов, которые позволят запустить приложение. И таких приложений много. Чтобы не писать эти файлы каждый раз вручную, мы написали небольшой скрипт, который по шаблону позволял генерировать эти файлы с помощью ответов на вопросы. Это упрощало процесс в разы.
Со временем этот скрипт переродился в полноценный генератор приложений, который жив и сейчас. Хотя, если честно, уже немножко устарел. Но это еще один пример того, как разработчики исходили из желания улучшить свой ежедневный опыт. Все это благодаря проактивности, инициативности и творческому подходу. Это просто громкие слова, которые на самом деле очень мало чего описывают. Но я верю, что в каждой компании есть очень много таких проактивных и инициативных сотрудников.
Я бы даже сказал, что каждый разработчик в той или иной мере проактивен. Только это не бинарная шкала: ты не можешь быть либо проактивным, либо непроактивным. Это скалярная шкала с градациями. И очень часто бывает, что идея вроде есть, проактивность есть, но всего этого не хватает, чтобы пробиться через непрерывно возникающие преграды.
И постепенно желание умирает. Может вы сами сталкивались с историей, когда возникает идея что-либо изменить, но тут доступов не хватает, здесь нужно пройти семь кругов согласований, и в итоге инициатива испаряется.
Я точно так же проходил через все эти согласования и получение доступов, и могу поделиться с вами, каково это было и что я делал, чтобы получить возможность изменить Developer Experience.
Что делать
Чтобы внести какое-то изменение в свои инструменты, необходимо иметь саму возможность изменять, а именно получить доступы к исходникам и конфигурации. В идеале было бы хорошо, если бы не нужно было согласовывать каждое маленькое изменение с кучей менеджеров. Я понимаю, что мир не так удобен, как хотелось бы, и скорее всего, у вас не будет легкого доступа к конфигам. А также возможности избежать потока согласований.
Но есть небольшие лайфхаки.
Для начала будет неплохо, если вы сами пойдете и попросите доступ к инструменту, который вы хотите изменить. Это может показаться наивным, но вдруг окажется, что просто раньше никто не просил? Вдруг эти ворота открыты, и нужно только постучать?
Скорее всего, конечно, нет. Но если разговор об этом зайдет, то скорее всего вам скажут что-нибудь вроде «мы не дадим доступы, потому что ты все поломаешь». И действительно, это важный аргумент. Ведь дело касается инфраструктуры — это важная штука, повредив которую, вы подвергаете всю компанию серьезной угрозе.
Но в то же время это всего-лишь повод задуматься о том, как минимизировать риски.
Можно сказать, что вы будете проводить каждое изменение через строгое ревью ответственных людей. Это вполне полезная штука, и стоит так делать всегда, не только когда вы дорабатываете инструменты. Также можно договориться о том, что вы не будете раскатывать это изменение на всю компанию, а ограничитесь только своим продуктом, проектом, командой.
Также стоит делать упор на то, что это эксперимент. Может случиться так, что эксперимент не удастся. Поэтому нужно заранее проговорить с ответственными людьми, DevOps-ами, о том, что если что-то пойдет не так, вы просто откатите и вернете все, как было. Это также добавит прозрачности. И еще стоит проговорить критерии успешного результата, то есть definition of done, о котором писал мой коллега Никита.
Все это возможно и доступно, если в вашей компании пропагандируют DevOps. Но никакой DevOps нельзя построить, если между разработчиками Devs и Ops есть кирпичная стена, в которой просто прорублены маленькие форточки в виде инструментов. Я думаю, что стоит приводить этот аргумент: возможно, он сработает, и вам станет проще продвигать свои идеи.
Другой вопрос — где взять время на это все. Если вы не работаете в специально выделенной команде, то явно придется совмещать свои изыскания с основными задачами, поступающими от руководителя, продакт- или проджект-менеджера. Но в целом это похоже на работу с техдолгом, только вместо возврата взятого когда-то долга получается работа на опережение. Мы скорее думаем о том, как в будущем мы могли бы избежать появления техдолга.
В Qiwi для работы с техдолгом есть правило 20%. Думаю многим из вас оно знакомо, и у кого-то это 10%, у кого-то 15%, И каждый из нас знает, что это правило нифига не работает. В непрерывном потоке основных задач очень сложно выделить время для работы над какими-то техническими задачами, библиотеками или инструментами. Да и руководители обычно заинтересованы в решении сиюминутных проблем, а не чего-то эфемерного.
Так делать-то что?
Обычно мы заходим к руководителю или продакт-менеджеру со словами о том, что надо пофиксить какой-то инструмент. Зачем? Если этого не сделать, будет плохо. Кому будет плохо? Нам плохо. Потому что в коде есть не очень хороший кусок. А дальше по этому сценарию обычно следует конфликт. Ведь менеджеру продукта сложно поставить себя на ваше место. Он, скорее всего, не понимает, в чем проблема, зачем вы к нему пришли.
Еще один момент — бывало такое, что я брал техническую таску и бросался в нее с головой. Без плана, без критериев завершения задачи. Ведь она техническая, я знаю, что делаю, возьму и затащу ее. Зачем мне эти выдумки. Проходит неделя, две, и вроде бы есть результат. Но сказать, что решение внедрено, нельзя. А может я его внедрил, но оно оказалось не очень-то нужным. И от этого пыл угасает, и в следующий раз уже не хочется опять включаться в переговоры с продакт-менеджером.
Позже я понял, как важно применять к техническим задачам такие же правила, какие мы применяем к бизнесовым. Важно говорить с продакт-менеджером и любым другим менеджером на его языке. Вместо «все будет плохо» лучше сказать что-то вроде «эта проблема принесла нам убытки». И если эту проблему решить сейчас, она больше не повторится.
При этом важно самому здраво оценивать необходимость решения задачи, которую вы пытаетесь тащить. Это позволит в будущем избежать ощущения ненужности проделанной работы. И не забывать задавать критерии, по которым вы поймете, что задача сделана и цель достигнута, то самое definition of done, а также сроки. Если таска большая, стоит разделить ее на несколько этапов и определить дедлайн для каждого. То есть работать точно так же, как если бы это была бизнесовая задача от менеджера.
Все это сделает процесс работы над техническими задачами прозрачнее и для вас, и для менеджера. И даст обеим сторонам понимание, что вы делаете только то, что действительно необходимо, и что вы можете доверять друг другу.
Выводы
Я раньше смотрел на все эти большие корпоративные тулы типа GitHub, TeamCity и Kibana, и сторонился их. Казалось, что нужно обладать недюжей компетенцией, чтобы влезть и что-то в них поправить. Позже для меня открылось, что можно смотреть на эти инструменты шире и найти более простой путь для воплощения своих идей в жизнь. Вы же не изучаете Git до уровня хранения данных в файловой системе, чтобы применить какой-то алиас. Вы просто смотрите на популярные команды и сохраняете их в алиасы.
Точно так же и с крупными инструментами. Иногда вместо глубокого погружения в инструмент можно просто написать логин к ним или небольшое приложение, которое будет использовать внешний API. Или написать бота в Telegram, который будет автоматизировать рутинные ежедневные операции.
В том же кейсе с Kibana. Там приходилось совершать много действий для того, чтобы найти логи приложения. А что если просто взять и написать расширение для браузера, которое будет совершать те же самые клики за вас и позволит искать приложения из списка? В случае с релизами в прод идеальным решением был бы пересмотр вообще всего пайплайна релизов, но это долго, и, наверное, это не по силам сделать одному разработчику. Но почему бы вместо этого не написать бота, опять же, в Telegram, который будет напоминать вам о назначенном релизе?
Пока это просто мысли, идеи того, как я сам улучшил бы эти истории. Возможно, у вас возникли какие-то свои мысли, как это можно пофиксить более правильно и более просто. Если это так — отлично. Большие инструменты могут выглядеть устрашающе, но если проявить творческий подход и посмотреть шире, можно увидеть очень много возможностей.
Весь этот рассказ не только для того, чтобы рассказать, как хорошо у нас в QIWI и что мы делаем для того, чтобы развивать инструменты. Нам еще есть к чему стремиться. Этот пост еще и для того, чтобы вы взглянули на свои процессы. Попробуйте копнуть глубже в инструменты, и, возможно, увидите, что из них можно вытянуть больше. Не только повысить удобство, но и качество работы, производительность.
Давайте работать над тем, чтобы улучшать свой experience. Попробуйте наточить пилу, и, возможно вы увидите, что ваша работа стала эффективнее и приятнее.
Украина. Одесса. ЦС «Черноморец»
Украина — Болгария 1:1
Голы: Степаненко, 79 — Кирилов, 35
Украина: Бущан (Ризнык, 46), Матвиенко, Тымчик, Соболь (Коваленко, 68), Кривцов, Зинченко, Зубков (Цыганков, 61), Малиновский (Гармаш, 78), Сидорчук (Степаненко, 46), Довбик (Яремчук, 46), Ярмоленко
Тренер: Александр Петраков
Болгария: Михайлов (Вуцов, 46), Христов, Димитров, Йорданов (Турицов, 15), Р.Цонев (Чочев, 61), Велковски, Б.Цонев (Костадинов, 70), Неделев, Кирилов, А.Илиев (Минчев, 46), Десподов (Янков, 69)
Тренер: Ясен Петров
Предупреждён: Турицов, 24
Первый опасный момент украинцы создали уже на 35-й секунде встречи: Ярмоленко пролетел по правому флангу, обыграл защитника и от лицевой здорово подсек через головы группы игроков прямо на бутсу набегающему слева Зинченко. Александр пробил в касание, в газон, а рикошет ушел над перекладиной. Упал Зинченко на колени, схватился за голову, а улыбающийся Ярмоленко подбодрил – хорошо открылся, нормально всё.
Тут же огрызнулись болгары. Огрызнулись забросом из центрального круга через головы центрбеков чуть во фланг на Десподова, с острого угла Кирил бить не решился, а передачу в район одиннадцатиметровой отметки на Илиева перехватил-выбил Соболь. Тут же – еще один обостряющий, но безадресный прострел, затем – заработанный угловой, подача и вынос Матвиенко.
И вновь Ярмоленко, вновь обыгрыш и подача справа, вновь Зинченко, но уже не бутсой, а головой. Справедливости ради – мяч высоковато для Александра шел, еле достал, ну и, соответственно, слабенько ткнул, в перчатки голкиперу. Смех смехом, но и третий момент сборной возник после индивидуальной работы Ярмоленко, который вновь раскачал визави, перебросил мяч на левую ногу и подсек на линию вратарской. Где Зубков, в борьбе с Йордановым, все же прорвался на ударную позицию, успел вставить голову, но в створ не попал. Правы защитник болгарской сборной, к слову, повреждение в этом эпизоде получил, заменился на Турицова.
А пока замена готовилась, украинцы в большинстве еще пару моментов создали. Довбик отлично зацепился за мяч в передней линии, сбросил Зубкову влево, тот набрал скорость, резко убрал под себя, сбросил «защитника», пробил в створ с расчетом на отскок от перчаток голкипера, но Зинченко на подборе «засандалил» в Радослава Цонева.
Атака, между тем, продолжается, Соболь плечом прерывает вынос, и Сидорчук переводит на правый угол штрафной. Где Ярмоленко пяткой подключает Тымчика, Александр простреливает на Довбика, Артем в касание отправляет в сетку, но… Офсайд. И лайсмен прав – в момент передачи форвард украинцев забрался в положение вне игры. И лишь после этого вышел Турицов, уравняв составы.
Простреливает справа Тымчик, набежавший Зинченко пробивает метров с 12-ти в касание и… сигнализирует арбитру о попадании мяча в руку защитнику. Повтор фиксирует, что Александр имеет основания, но VAR нет, арбитр не успевает заметить, и потому момент «заигран».
Украинцы продолжают атаковать. Рвется в штрафную слева Зубков, Турицову приходится фолить уже на линии штрафной ценой предупреждения, а Малиновский со стандарта пробивает над перекладиной. В следующей атаке смещается к центру и стучит в створ Зубков, Михайлов парирует, а Андрея Ярмоленко к отскоку не пускает Велковски – успевает в падении выпихнуть в бровку.
После получаса встречи темп немного спадает, поскольку создавать непрерывное давление несколько энергозатратно, и в момент этой «аритмии» украинцы пропускают. Перед этим, кстати, сами упускают очередной шанс, когда Тымчик жестко прострелил справа, Довбик вставил бутсу в борьбе с защитником, мяч крутанулся в ближнюю «девять», но Михайлов успел выбросить перчатку, цапнуть.
И вот после этого пропустили. На ровном месте. Матвиенко, выбивая, неудачно попал по мячу, тот срезался «свечой» Николаю за спину, куда первым подскочил Тымчик. Подскочил и… не поставил нормально корпус. Лучше б уж выбил куда-нибудь за боковую или за лицевую, ей-ей. Но не выбил. И выпустил из-за спины Кирилова, который «положил» корпус и пробил в створ — 0:1.
Смотрите также: Гол Радослава Кирилова (Видео)
Украинцы вновь атакуют, вновь создают. Зубков хватает мяч на левом фланге, тянет в центр и в штрафную, проходит мимо трех игроков, отдает Довбику, тот ставит корпус, сбрасывает обратно в темп, Зубков бьет метров с девяти… И удар блокирует прилетевший справа в отчаянном подкате Велковски. Ну и ну. А камера выхватывает в VIP-ложе улыбающегося и качающего головой Блохина.
Отдает слева в центр Соболь, Довбик сбрасывает влево в освободившуюся зону на Зубкова, тот простреливает, но Велковски вновь выручает, опережая Ярмоленко во вратарской. С отскока пробивает Тымчик – выше ворот. Тут же, в следующей атаке – еще шанс. Уже Тымчик простреливает слева на ближнюю штангу, мяч попадает в колено Довбику и отскакивает не в ворота, а за лицевую.
Грузит слева на дальний угол вратарской Соболь, но Ярмоленко уже настроился пробивать в прыжке бутсой и не успевает оттолкнуться, чтобы «нырнуть» вперед ударом головой. Хозяева зарабатывают угловой чуть ближе к правому флангу, метрах в 23-х от ворот, Малиновский крутит через стенку, но и над перекладиной.
И уже в добавленное время – дважды выручает Михайлов! Малиновский здорово разворачивается с мячом на своей половине поля, проскакивает двух игроков и тут же загружает лихую диагональ на Зубкова. Тот подхватывает, «качает» опекуна, пробрасывает в штрафную на ход Зинченко, Александр бьет в створ – Михайлов выручает. Вновь коленом в упор добивает с отскока Довбик – болгарский голкипер успевает выбросить вверх перчатку и парировать!
На второй тайм в рамках ротации у хозяев вышли три свежих игрока – Довбика на острие сменил Яремчук, Сидорчука в опорной зоне – Степаненко, а Бущана в воротах – Ризнык. И тут же – два опасных удара по воротам болгар. Сперва Зинченко протащил по левому флангу, воспользовался тем, что Зубков, Яремчук и Ярмоленко «увели» с дороги защитников, и спокойно стукнул в дальний угол – стойка! Тут же – Зубков справа отдал Яремчуку, Роман развернулся с мячом, подработал и пробил с полукружья – рядом со штангой.
Вновь ответ гостей. Вновь опасность в результате недопонимания Матвиенко и Тымчика. Сперва украинские защитники не выдержали линию, Александр оказался «выше» Николая и получил себе за ушли передачу на ход Кирилову. Тот ворвался в штрафную, подскочивший Матвиенко опередил левого вингера болгар, выбил… и попал в подскочившего Тымчика. Что за незадача… Мяч отскочил в направлении Кирилова, но тут уже Ризнык в падении подстраховал защитников, не пустил болгарского игрока к мячу.
Далее, на душевном подъеме – пара неприятных подач в штрафную сборной Украины, когда болгары могли бы замыкать головой, но не замкнули. И вновь – опасно у ворот гостей. Малиновский со стандарта пробивает в угол – сменивший в перерыве Михайлова Вуцов вытягивает. Еще атака, на излете которой Степаненко сбрасывает головой Ярмоленко под удар, Андрей отправляет в сетку, но – офсайд. Было, было, Андрей в момент передачи был ближе к воротам.
Украинцы продолжают атаковать, и великолепный шанс упускает Яремчук. Передачу вправо пропускает под ногой Зубков, дезориентирует защитника, и Соболь спокойно простреливает на набегающего Яремчука. Роман в касание без помех замыкает в дальгний угол и… попадает по мячу откровенно «криво», бьет в сторону от штанги. Как так? Да как и все предыдущие осечки.
Меняет Зубкова Цыганков, танцует с мячом в штрафной Яремчук, сбрасывает на полукружье Малиновскому, тот мощно пробивает в створ – Вуцов! Украинцы забрасывают штрафную подачами, болгары в панике выносят, а хозяева в третий раз забивают из офсайда. Малиновский хорошо находит разрезающей передачей Ярмоленко, тот спокойно пробрасывает мимо подскочившего защитника и пробивает в створ. Флажок, свисток, Ярмоленко в гневе машет рукой на лайнсмена, но неправ – действительно, чуть в офсайд забрался.
Двойная замена от Ясена Петрова, Петраков меняет Соболя на Коваленко, хавбек «Специи» уходит в центр, Зинченко смещается на левый фланг обороны, а украинцы продолжают контролировать мяч. На 73-й минуте Малиновский находит передачей Яремчука, тот ставит корпус и отлично сбрасывает в темп Ярмоленко на рывок в штрафную. Андрей пробрасывает мимо одного защитника, успевает обводящим ударом в дальний угол пробить под ногой летящего в подкате Димитрова, однако молодой голкипер болгар выбрасывает ногу и парирует!
Подача углового, мяч находит Матвиенко, тот пробивает головой в газон, а отскок рикошетит в перчатки Вуцову. Малиновский после стандарта раскачивает на правой бровке визави, точно отдает в центр болгарской штрафной Кривцову, Сергей пробивает бутсой в касание – в голкипера. Простреливает слева от лицевой Зинченко – Вуцов выходит с «ленточки» и фиксирует в перчатки, не пуская мяч к Яремчуку.
Меняет Малиновского Гармаш (Петраков улыбнулся Руслану, «дал пять», сказал что-то ободряющее), а украинцы, наконец, забивают — вода камень точит. Накатили справа спринтерским рывком и подачей Тымчика – отбились болгары. Подхватил Степаненко, сбросил Коваленко, тот еще «шире» — Зинченко, Александр «убрал», подал, Христов вынес головой, но… вновь на Степаненко. На этот раз Тарас «разворачивать» не стал, а попросту взял – да шарахнул в дальний угол ворот Вуцова. И попал! Отлично попал, без шансов голкиперу дотянуться – 1:1.
Смотрите также: Гол Тараса Степаненко (Видео)
Упускает шанс забить Ярмоленко. Зинченко грузит слева в штрафную, Гармаш мягко сбрасывает чуть правее под удар Андрею, капитан подкручивает «на точность» в дальний верхний – Вуцов в прыжке тащит.
Хозяева атакуют, атакуют, атакуют… Много хороших переводов, обыгрышей на флангах, но вот как только последний пас в штрафную – болгарские защитники успевает броситься, перехватить. В последней фазе атаки «ищут», в основном, Яремчука, но с тем играют плотно.
А на первой добавленной минуте приходит черед не забивать Коваленко. Началось все с неточной передачи Виктора на Зинченко. Защитник перехватил, попытался вывести, но набежал Коваленко, выгрыз. Прорвался до лицевой, отдал в центр в направлении Яремчука, защитник в полушпагате успел вытолкнуть из-под ног Романа. И вытолкнуть прямо на подтянувшегося к чужой штрафной Кривцова. Сергей отдал вправо Ярмоленко, Андрей сместился с точной передачей на дальний угол вратарской на бутсу Коваленко, а Виктор… Умудрился «щечкой на точность», ударом в упор, выше перекладины шарахнуть. За головы схватились все, не только сам игрок.
Украинцы не успокаиваются, болгары «плывут», следующая же атака – вновь шанс. Зинченко слева отдает в центр Коваленко, тот скидывает Гармашу и врывается в штрафную. Денис в касание возвращает, Виктор отдает Яремчуку, Роман разворачивается с мячом вокруг своей оси и «вокруг» двух защитников, бьет в левый от Вуцова угол – голкипер переводит на угловой! Мяч, похоже, в штангу уходил, а рядом стоял совершенно свободный Ярмоленко, в радиусе пяти метров никого вокруг не было. Андрей так и застыл с руками в жесте «сюда ж покати!» Роман лишь за голову схватился.
Зинченко подает угловой, Гармаш — первый на мяче, но в борьбе пробить в створ Денису не дают. Время поджимает, Степаненко грузит в переднюю линию, вынос головой защитника подбирает Яремчук, сбрасывает вправо Ярмоленко, тот подключает Тымчика, Александр подсекает от лицевой через толпу игроков прямо на набежавшего Зинченко. Тот в прыжке ловит мяч на подъем бутсы, мяч рикошетит от ноги Костадинова, но никто не успевает добить.
В последней атаке на четвертой добавленной минуте чуть забирается в офсайд справа Ярмоленко, Вуцов не спешит вводить мяч, и как только вводит – турецкий арбитр дает свисток. Всё, болгары могут выдыхать, ничья 1:1.
Смотрите также: Видеообзор матча
Эмоции матч оставил положительные. Даже дикое количество нереализованных моментов (честно говоря, с ходу и не приходит в голову, когда в последний раз столько создавали) в плюс пойдет – лучше на Боснию с Герцеговиной приберечь. Футболисты, тренеры и болельщики – суеверный народ, уверенно скажут, что лучше так, чем набросать пять-шесть болгарам и не «оставить» ничего на важнейший официальный матч отбора к чемпионату мира. Главное – что? Главное – игра и опасные моменты. И того, и другого сегодня в исполнении команды Петракова хватало с лихвой.
Что сравняли – тоже хорошо. Не сравняли бы – осталось бы у игроков чувство некоторой «недосказанности», осадок. А так – утюжили, утюжили, катком укатывали соперника в штрафной, и все же забили. «Плюс в карму». Не остановились, хотели еще, но вновь реализация подвела. Но это, как раз, не страшно – не даст почивать на лаврах, подсознательно чувствовать, что моменты можно транжирить «безнаказанно», что всё равно добавят и занесут нужное количество для победы.
В общем, отлично и то, что сравняли, но «педагогически» полезно и то, что не вырвали победу. Психологически – «золотая середина» вышла. В психологическом плане вообще много полезного. Не пошло поначалу у Малиновского – давление после всех эти историй с вызовами и невызовами на игрока было приличным, хотелось где-то доказать окружающему миру, что важен, может по-прежнему игрой дирижировать. Не выходило поначалу, не клеилось. Но Петраков дал время, оставил на поле, Руслан разыгрался и во втором тайме уже стал похож на себя прежнего, с контролем игры в центре и обостряющими передачами. После матча с Петраковым еще раз улыбнулись друг другу, тренер вновь что-то ободряющее сказал, всё на пользу пойдет.
Читайте також: Руслан Малиновський: «Історія з Петраковим? Там нічого не було — медіа неправильно сприйняли інформацію»
По схеме. Петраков сыграл в четыре защитника и заставил теперь ломать голову как нас, так и тренерский штаб боснийцев. Что же будет в последнем туре отбора – «4-3-3» или «3-4-2-1»? Так или иначе – тоже польза очевидная. И в разрезе соперника запутать, и в разрезе самому посмотреть-проверить, как сборная реализует эту формацию. «Откатить» на три защитника всегда можно, это уже на предыдущих сборах впитали, но и такой вариант проверить было не лишним. Плюсы, в принципе, очевидны. Если Ярмоленко хорош и на позиции инсайда, и вингера (Андрею, с его опытом, «по барабану», как играть, везде даст джазу), то Зубкову очевидно комфортнее вингером в схеме «4-3-3».
Комфортнее, судя по всему, и Зинченко с Малиновским, не иметь перед носом еще двух инсайдов, а иметь пространство и качественные «предложения» на фланге. Руслан, по идее, наоборот, должен быть лучше адаптирован к реалиям «Аталанты», однако в сборной как-то иначе выходит. К слову, и отсутствовавшему сегодня Шапаренко также удобнее иметь перед собой пространство для привычных проходов с мячом. Это в разрезе возможной ротации с Зинченко либо в случае перемещения Александра на позицию левого защитника.
Это, кстати, одна из основных интриг грядущего матча в разрезе состава. Кто слева – Соболь или Зинченко? Двигать влево Александра Петраков себе может позволить, имея в обойме Шапаренко в центр. А вот кто лучше сыграет слева – большой вопрос. По матчу с болгарами определить сложно – украинцы атаковали по всему фронту, все в равной степени смещались в зоны, обостряли, и здесь следует отметить, что у Соболя передачи с фланга (как верховые, так и прострелы) шли поточнее. Но Зинченко вошел в игру на другой позиции, мог просто не перестроиться. В общем, задачка для Александра Васильевича.
Читайте також: Олександр Петраков: «Якщо так гратимемо з Боснією і Герцеговиною, то потрапимо на чемпіонат світу»
В остальном, вроде, все понятно. Плюс-минус. Место Ярмоленко справа сомнению не подвергается, Зубков слева также проявил себя отлично, в опорной зоне, скорее, следует ожидать Степаненко, а дальше – как схема ляжет. Если в три центрхава, то Малиновский. Если в три защитника – то Петраков станет перед выбором: Руслан или Зубков. Очевидно, что при «4-3-3» за счет «лишнего» центрбека остается место на поле еще одному креативному центрхаву.
Если же сборная сыграет по привычной для Петракова схеме с тремя центрбеками, то к Кривцову и Матвиенко добавится Забарный. Если в четыре защитника, есть мнение, что тренерский штаб предпочтет Сергею более молодого и мобильного Илью, с лучшим первым пасом. Место Матвиенко, понятно, сомнению не подвергается. Здесь, правда, есть опасения по второму этажу, поскольку боснийские стандарты – штука неприятная. Ну, тут выбирать придется. Так или иначе.
Читайте також: Андрій Ярмоленко: «Рахунок 1:1 останнім часом нас переслідує»
Ну, и форвард. Довбик провел хороший матч, отлично работал корпусом, толково сбрасывал в темп, находил свободные зоны под фланговые передачи, но присутствует ощущение, что Петраков все же доверится более опытному Яремчуку. Однако, форвард «Днепра-1» четко показал: ему есть, что предложить команде при выходе на замену.
Рискну, наверное, предположить и схему, и состав, с учетом текущей кадровой обоймы исполнителей под рукой у Петракова. Сборная больше выиграет кадрово, сыграв сегодняшние «4-3-3», и в такой схеме найдется место следующим игрокам: Бущан – Тымчик, Забарный, Матвиенко, Зинченко – Малиновский, Степаненко, Шапаренко – Ярмоленко, Яремчук, Зубков.
Читайте также: Нападающий сборной Болгарии: «Украина играет в феноменальный футбол»
Ну и не будет исключать варианта, при котором Петраков все же решит довериться в центральной зоне не Шапаренко, а Зинченко. Тогда Соболь пойдет влево, а Шапаренко будет первой «опцией усиления». А усиливать придется. Чтобы не наступать на привычные уже грабли отсутствия ресурсов для поддержания темпа после перерыва.
Потому посмотрим, что у нас есть на усиление атаки, если это будет необходимо по ходу встречи. Упомянутые выше Шапаренко либо Зинченко (один вместо другого), либо Соболь для свежести фланга с переводом Зинченко в центр. Это раз. Цыганков на один из флангов – два. Буяльский с Коваленко в центр повыше – три и четыре. Довбик на острие – пять. Гармаш, возможно. Когда нужен опыт, а физики под конец уже у всех на поле не хватает. Если опорную зону усиливать – Сидорчук. Караваев еще есть, но его взаимоотношения с Петраковым — по-прежнему загадка, так что оставим пока Александра за скобками.
Читайте также: Вратарь сборной Болгарии: «Я не ожидал, что Украина будет на таком высоком уровне»
В сухом остатке, на этом сборе, вроде, пять внятных замен к решающему матчу для вариативности и поддержания имеются. А игроки на некоторые позиции – равнозначны, что предполагает замену без «просадки качества». И это радует.
Главное теперь – всё это взвесить, грамотно отмерить, взболтать, дозированно приправить по ситуации и добыть это горемычную путевку в плей-офф.
Какими пальцами ни прикасайся к святыням ностальгии, всё равно они будут недостаточно чистыми в глазах её блюстителей. А уж того, кто попытается поддеть нежную корочку послевоенных воспоминаний аналитическим инструментом, заклеймят кощунником или того хуже – постмодернистом. Алексей ТЮТЬКИН, поддавшись своей обсессии и перенеся её в текст, исследует опасные потоки фильма «Покровские ворота» и находит в нём мощные течения эротики и травмированности – течения настолько глубокие, что после чтения этой статьи вы никогда больше не сможете смеяться над шутками из трансгрессивного водевиля Михаила Козакова, не холодея при этом от ужаса и… похоти.
Как легко поддаться соблазну и попытаться написать нечто увлекательное об алхимических опытах как фундаменте сериала «Следствие ведут знатоки» или галлюцинаторной подкладке Великой Отечественной! Требуется немного парадоксальности, таланта сводить несводимое и лёгкости письма. Такая медицинская разновидность герменевтики столь прекрасно раскладывается на ходы, что впору читать лекции «Приёмы уверенного отыскания смысла после его придумывания».
Один недостаток: писать тексты такого стиля интересно, читать – не очень. Причина этого заключена в ощущении ожидаемого заранее насилия над текстом – пусть лёгкого, игрового свойства, но всё же насилия. Во время чтения приходит понимание, что реальность-то интересней, пусть зачастую и шьётся без подкладки. Но бес интерпретации неуёмен, особенно если сталкиваешься с творением, которое опознаётся интуитивно как замешанное чуточку гуще.
Герменевтика не медицинского, а философского извода в этом случае поможет не вполне, так как знаки в таких вещах (да и в реальности вообще) двойственные. Это амфибиологические знаки, умеющие дышать и на берегу, и под водой. Если использовать герменевтику как инструмент, то результат выйдет неоднозначный и неубедительный; усмирить подозрительность интерпретатора сможет лишь обращение к бартовскому третьему смыслу (или небартовскому четвёртому).
В замечательном, разошедшемся на цитаты телефильме «Покровские ворота» (1982) есть две сцены, которые надолго оставляют в недоумении. Фильм поставлен Михаилом Козаковым ладно, актёрский состав превосходен, все остальные сцены прецизионно выверены, и подумать, что эти два эпизода сняты, так сказать, самоходом или вполсилы – невероятное дело; но почему режиссёр, оператор и актёры решили их именно так, а не иначе?
Первая сцена – грандиозный вставной номер, хотя в этом прилагательном чудится некое оскорбление: в больничном саду молодой парень и пожилой мужчина в выходном костюме и экстравагантной шляпе упоённо исполняют песню Цфасмана про утро, бритьё и галстук в синий горошек. Их кордебалетом выступает чуть ли не пляшущий канкан ряд прооперированных людей. Казалось бы, в чём здесь странность: делающим гимнастику, умирающим от скуки, но идущим на поправку выпала нечаянная радость – побренчать на костылях джазовый мотивчик и сплясать. Сомнений такое объяснение не вызывает, но всё же в лирической комедии вид этих веселящихся забинтованных пациентов пробирает холодком и заставляет вернуться к фильму и отыскать в нём знаки, которые, не будь этой сцены, могли бы быть упущены и не прочтены.
Несомненно, в фильме «Покровские ворота» травмированность не может быть определена как тема какой-либо выраженной интенсивности, но и отмахнуться от достаточно часто встречающихся её знаков невозможно. Михаил Козаков и Леонид Зорин, вероятно, весьма иронично трактовали все эти хоботовские рассказы о Камоэнсе и Сервантесе, потерявших глаз и руку соответственно. Но именно из-за того, что травмированность (и несколько шире – смерть) не определена как чёткая тема, она становится растворённой, изредка выпадая кристаллами – эти эпизоды легко отследить по наивному вскрику Людочки.
Лев Евгеньевич, рассказывая о том, что Артюру Рембо отрезали ногу (Людочка: «Ах! Они все как сговорились»), начинает и сам подозревать в этих поэтических судьбах какую-то загадку или закономерность (если «поэт», то непременно «травмированный»), но не сведёт их вместе до произошедшего с ним страшного и комического случая. Поэт из Хоботова, если воспользоваться его силлогизмом, весьма средний (но так сложились обстоятельства) – у него отняли всего лишь червеобразный отросток.
Можно решиться на смелое заявление: особенный смак фильма рождают именно «растворённые» темы, которые формируют пространство, а не ведущие рассказ по плоскости из точки А в точку Б (сложность определения точечных событий роднит фильм Козакова с работами Жан-Клода Бьетта, которые движутся характерами персонажей, а не их действиями). Так, наиболее насыщенным раствором в мире у Покровских ворот является эротика.
Иногда она заявлена открыто: напористую, властную эротичность манифестирует Маргарита Павловна (как она плотоядно смотрит с балкона на Савву Игнатьевича!), аттестующая Хоботова «сексуальным маньяком», «тайным эротоманом» и вспоминающая «кокотку из скандинавской редакции, с её чувственным порочным ртом». Но если Лев Евгеньевич в приписанном ему «нездоровом влечении к женщине» вряд ли может быть уличён, то помянутые «склонности» внезапно позволяют выпасть кристаллам смысла: эротика «Покровских ворот» чистая, она утоплена в дискурсивном, знаки телесного в ней лежат ниже видимой поверхности фильма.
Сорокатрёхлетний Хоботов с его пристрастием к юным особам (над ложем, уже занятом Саввой, висит характерная картина – на кровати обнажённая девочка с бантами и куклой) вполне мог бы написать «Людочка, свет моей жизни, огонь моих чресел. Грех мой, душа моя. Лю-доч-ка», как, впрочем, и Велюров, мечтающий о молоденькой наяде Светлане (к слову, амфибиологическая фраза Костика «Прекрасно плавает на спине» звучит соответствующе). В, к сожалению, не вошедшей в фильм сцене, в которой проявляются профессионально-садистские склонности Людочки, актриса Коренева с такой силой взаправду вонзила иглу в musculus gluteus актёра Пяткова, что он заорал почти матом.
Эротика фильма, конечно же, пикантная. Даже если не брать позицию «третья мещанская», то достаточно было бы одного семейства Орловичей с их мечтами о высоких отношениях, вырезанных по лекалам тройственных союзов Серебряного века. Лекция о фалековом гендекасиллабе заканчивается преувеличенно чувственным и даже захлёбывающимся чтением Брюсова: Никищихина читает о том, как предаются двойной страсти. (Дополняющий штрих – во время чтения камера выхватывает среди зрителей бледного юношу с горящим взглядом: он физиономически похож на Николая Степановича Гумилёва.) Противоречивая Анна Адамовна – «проститутка в монастыре», по меткому определению режиссёра – это даже перебор, ведь перенасыщенность вожделения может сыграть злую шутку: нужно удерживать себя в полушаге от подозрения, что долго работающий с Соевым и затем привыкший к переодеванию Велюров может «пере-квалифи-цирова-ться».
Вся эта разнообразная эротика, порождённая радостью жизни, могла бы и приесться, если бы «растворённые» темы не пересекались многократно, и травмированность не омрачала своим присутствием. Тут впору вспомнить о второй сцене или, что точнее, небольшом жесте, который делает Леонид Броневой, напевая полечку. Следует снова подчеркнуть, что выстроенность фильма не даёт никаких прав считать этот жест импровизационным или произвольным, а его нарочитое исполнение (Велюров наигрывает безбожно, но восхитительно) требует его прочтения. Итак, странный жест: прищуриваясь и грозя пальцем, Велюров с кавказским акцентом поёт двустишие «Мой отец запрещал, // чтоб я польку танцевал», при этом подкручивая кверху несуществующий ус.
Отец, усы, кавказский акцент – образ однозначный и требующий ретроспективно пробежаться по уже пройденному фильму и понять ужас Хоботова перед врачами («Алиса Витальевна, меня зарезать хотят!» и «Я лежал на столе. Обнажённый и беззащитный. Со мной могли сделать всё, что угодно!»), его взвинченность после фразы «Пора тебя брать!» (безобидная фраза начинает звучать зловеще) и общее, пусть и неявно выраженное отвращение перед чужой насильственной волей. Действие фильма происходит в 1956 и 1957 годах, и старинные привычки ещё в ходу (Костик возвращается в родимый аквариум, но ошибается, когда говорит, что тот спит: Велюров не дремлет; фраза «Живи и радуйся, и делай, что тебе говорят» станет для многих основой жизненного уклада).
Память пытается сохранить внутри себя только приятные вещи. Весь страх предыдущей эпохи из фильма вычищен, но он возвращается исподволь, в странном жесте или сцене. Началась эпоха разрешённой польки, но танцевать её могут лишь травмированные – с травмами различной степени тяжести, пусть в бинтах, но выжившие и преисполненные надежды. Тридцать лет спустя станет ясно, что новый мир – это всего лишь название журнала; пятьдесят лет спустя, что мечтать о том, что грядут перемены – всё равно, что догнать Савранского.
Алексей Тютькин