Паттерн Декоратор — специальный способ организации модулей в программе, который позволяет подставить какую-то новую функцию прямо в середину цепочки вызовов, тем самым чуть-чуть подкорректировав поведение.
Например, в реальном мире очки для чтения это декоратор. Вы ставите их между вашими глазами и текстом. Глобально взаимодействие ваших глаз и текста не меняется: отражённые световые лучи от страницы книги попадают в ваши зрачки, что с очками, что без них. Но очки располагаются посередине: они принимают лучи на вход и преломляют их, передавая дальше вам в глаза уже изменёнными.
Важной особенностью является тот факт, что очки можно снять. Они не требуют ни модификации вашего тела, ни модификации книги. Вообще никакие условия не нужны, кроме наличия самих очков. А если вы в линзах, то внешний наблюдатель может даже этого не знать.
Класс-декоратор должен быть спроектирован так, чтобы не требовать никаких изменений в объектах, с которыми он работает. Его можно отключить, чаще всего буквально закомментировав одну строку.
В примере ниже программа выведет текст "Привет, мир, в натуре.", и вот это дополнение в конце как раз дописано декоратором. Можно убрать или закомментировать подчёркнутую строчку, не трогая остальной код, для всех внешних вызовов сигнатуры останутся теми же самыми, но выводиться будет уже просто "Привет, мир".
В декораторы можно прятать логику, которую буквально навешивают поверх основной функции программы. Например, проверку прав на выполнение операции. Перевод на другой язык, логирование, поддержку обратной совместимости при обновлении и так далее.
#dev
Jovan Radivojev — Just Like That: Serbian Gajdaš (Canary Records, 2024)
#traditional#serbian#bagpipe#gadja#balkan#Serbia
В начале XX века, из-за того, что население США на 14% состояло из иммигрантов, крупные американские звукозаписывающие компании, такие как Columbia и Victor, начали выпускать пластинки на иностранных языках. К 1913 году Columbia выпустила тысячи таких записей, зафиксировав таким образом языковое и культурное разнообразие США того времени.
Этот альбом включает композиции с двух редких пластинок сербского народного певца Йована Радивоева, выпущенных Columbia Records в 1913 году. На них Радивоев исполняет традиционные сербские песни под аккомпанемент гайда (гајде) — балканской волынки, традиционного инструмента пастухов и участников обрядов.
Многие подобные записи с сербской народной музыкой утрачены из-за исторических потрясений, произошедших в Европе, включая две мировые войны. Однако эти записи сохранились благодаря тому, что были выпущены в США. Они дают редкое представление о жизни и музыкальной культуре сербских иммигрантов в начале XX века.
🔗Bandcamp
Gordan — Gordan (Glitterbeat Records, 2024)
#traditional#ambient#krautrock#barabinske#becarci#ojkace#serbian#Serbia#Germany#Austria
Gordan — совместный проект исследовательницы балканской традиционной музыки Светланы Спаич, австрийского перкуссиониста Энди Штехера и немецкого электронного музыканта Гвидо Мёбиуса. Второй альбом коллектива посвящён устным поэтическим формам, бытовавшим в различных регионах бывшей Югославии.
Поэтическая основа альбома — народное стихосложение, характерное для балканских стилей барабинске, бечарци и ойкачe. В отличие от старинных эпических песен, в которых также используется «десетерац» — десятисложная стихотворная форма с цезурой после четвёртого слога, — эти стили обращаются не к героике, а к повседневным темам. Так, Barabinska посвящена вольному, бродяжническому образу жизни, а Krajiška kontra — конфликтам сербов с представителями австрийской власти времён Военной Краины — пограничной территории Габсбургской монархии, созданной для защиты от Османской империи.
Композиция с длинным названием How A Mountain Fairy Divided The Two Jakšić Brothers представляет собой реконструированную бугарштицу — стиль эпической песни, распространённой среди южных славян в XV–XVIII веках. В отличие от других использованных на альбоме форм, бугарштица больше не встречается в живой традиции. Возможно, это первое появление этого стиля в контексте современной популярной музыки.
Композиция Selo Moje была создана Светланой Спаич во время одной из её поездок в село Жегар в Далмации. В работе над песней приняли участие её наставники из этой деревни — на тот момент им было почти девяносто. Финальная версия представляет собой звуковой коллаж, основанный на воспоминаниях Спаич об этой поездке.
Песня Šara основана на традиционном сюжете о трёх пастухах, погибших в горах Шара под лавиной. В интерпретации Gordan она служит отсылкой к репертуару Боры Спужича Кваке — необычного представитель популярной фолк-сцены социалистической Югославии. Именно его версия этой песни приобрела популярность в 1970-х и её стали исполнять в кафанах по всей стране.
Ещё одна песня, Ne spominji oči plave, отсылает к так называемому «андеграунду» поздней Югославии — массовой культуре, которая продавалась миллионными тиражами, но оставалась вне официального канона. Речь идёт о лейблеJužni vetar, специализировавшемся на популярной фолк-музыке с элементами восточной мелодики и синтезаторного звучания. Несмотря на коммерческий успех, эта продукция официально классифицировалась как «шунд» — «низкопробная» или «вредная» продукция. Такие релизы облагались дополнительным налогом, однако именно они составляли значительную часть реального музыкального ландшафта того времени.
Композиция The Bell is Buzzing основана на традиционной любовной песне, в которой рассказ ведется от лица девушки, влюблённой в пастуха. В одних версиях она остаётся с ним, в других — находит другого. В интерпретации Gordan она делает ему предложение.
Завершающая композиция O Nikola посвящена Николе Тесле. Её текст основан на стихотворении, которое Светлана Спаич записала в конце 90-х со слов Милана Билбийи — жителя села Чиркин-Поле на северо-западе Боснии. В песне перечислены изобретения Теслы, затронуты эпизоды его биографии и передано ощущение меланхолии и одиночества, сопровождавших жизнь учёного.
🔗Spotify | AppleMusic | Bandcamp | Telegram