Исходники тут: t.me/js_by_vladilen/155 Эксклюзивный контент на моем Boosty: boosty.to/vladilen
@NextgenSocialReptile4 жыл бұрын
Ставьте плюсы если хотите увидеть, как редакс применять в React, Angular и других фреймворках. Напиши, в каком хочешь)
@MrAntonforce4 жыл бұрын
React
@harrypolygon4 жыл бұрын
Angular
@MrJustice4 жыл бұрын
ANGULAR
@dmytrozahatin71734 жыл бұрын
Angular
@rinatriyanov80154 жыл бұрын
react
@АлексейКостин-и4д4 жыл бұрын
Лучший спикер на просторах русскоязычных курсов! Выучился и получил работу благодаря твоим курсам! Спасибо!
@VladilenMinin4 жыл бұрын
Крайне рад за тебя 👍🤗
@mrECMAScript4 жыл бұрын
Курсы Владилена тоже легли в базу) Тоже сменил профессию и начал работать и применять знания (в основном JS)
@vlad-qq4 жыл бұрын
Ребят, какой у вас был roadmap??? Владилен вспоминал об этом в уроках, но я так и не нашел этого видео. Может быть вы подскажите как вы достигли первой работы и что умели? Заранее низкий поклон!
@mrECMAScript4 жыл бұрын
@@vlad-qq Не могу дать однозначного совета. Если коротко, то Я начинал с нуля чуть более года назад. Я понимал, что выучить язык программирования - сложно и долго, поэтому начал с HTML, CSS. Примерно через 1 мес Я начал понемногу учить JavaScript, jQuery, чтобы можно было работать с библиотеками. И через 3 месяца после старта Я нашел работу в веб-студии, как верстальщик. И уже на работе Я продолжаю изучать то, что интересно ( например, у нас не используют React, но Я все равно его учу самостоятельно). Времени на обучение было потрачено очень много, если это выходные - то по 8-10 часов сидеть, учить, верстать, а если будни - то после работы до часу ночи сидишь и верстаешь. Как-то так
@leninzhiv61803 жыл бұрын
@@vlad-qq у него стрим недавно был, глянь, там много про это
@mikewazowski75262 жыл бұрын
21:00 - свой redux 42:00 - redux библиотека 49:00 - redux thunk (async button) 59:30 - сменить тему
@cyrilmialik50304 жыл бұрын
1.13.20 Владилен наканец-то поставил ; я думал что никогда это не увижу...
@eeebosh32153 жыл бұрын
хахахахахахаха
@AlexRudOy4ik4 жыл бұрын
Должен сказать, спикер хорош, за видео спасибо, объяснил как всё работает понятно и на пальцах. Но технология выглядит как редкостная дичь, и не понятно зачем именно всё это. Если всё настолько сложно в таком простом приложении, в большом проекте наверное нереально будет найти все зависимости между файлами даже для самого простой функциональности. было: - 1 файл - 37 строк - время написания готового решения ~13 минут стало: - 4 файла - 130 строк - 3 библиотеки - расширение для браузера - время написания готового решения ~50 минут ухудшилась читаемость кода, увеличился объём кода раньше чтобы добавить код, просто добавлял код в компонент теперь: 1) добавить новый type в types 2) импортировать новый type в actions 3) добавить новый action 4) импортировать новый type в reducer 5) добавить код в reducer (собсно чего мы и добивались) 6) импортировать новый action в компонент 7) добавить вызов нового reducer через action из плюсов: 1) код теперь выглядит так как сказал какой-то умный тип из фейсбука 2) у нас есть расширение, в котором мы можем следить за стейтом
@mac-w0rm4 жыл бұрын
В том и дело, что в больших проектах это будет централизовано и находиться в одном месте, а компоненты будут обращаться к единственному источнику правды и не будут конфликтовать друг с другом, а разработчику не нужно будет каждый раз гадать: откуда из моих 200 компонентов достать вот это вот состояние и почему оно тут такое, а в другом компоненте другое? А в маленьких проектах типа того, что в видео, понятное дело, такое не нужно. Но не показывать же основы редакса на энтерпрайзных гигантах. А насчёт читабельности и кучи оверхеда в какой-то степени соглашусь. Например, в Vuex всё гораздо лаконичнее выглядит. Но зато мы получаем сильную связанность и хорошую типизацию. Меня каждый раз очень раздражает, когда ты строкой стучишься до экшена, делаешь опечатку или передаёшь не те параметры, а узнаёшь об этом только в рантайме.
@filippstryukop55114 жыл бұрын
Как же вовремя. Большое спасибо! Как раз захотел изучить эту технологию
@damirkacineman5384 жыл бұрын
42:05 вот это поворот, такой наглядный пример реально сразу все по полочкам разложил, шикарное видео, еще пока в процессе
@КучерМарина2 жыл бұрын
Вы лучший на ютуб, у вас талант к объяснению, к логичному постепенному раскрытию информации Всегда смотрю вас если хочу что то понять
@kirillvorobey86204 жыл бұрын
Гайд по редаксу Любой другой: Ну редакс это ..... Владилен: Сейчас я покажу как написать свой редакс
@ВалерийХарламов-ь4в3 жыл бұрын
Вот эти особенности подхода к обучению и ставят Владилена на две головы выше любого другого преподавателя (из тех, что лично мне встречались).
@laranto_853 жыл бұрын
Это пять! Думаешь, как люди доходят до таких решений. А с мягкой подачей информации Владилена, кажется что и сам сможешь свой блекджек))
@dmitriyn93794 жыл бұрын
удивительный симбиоз опыта и лаконичной подачи материала. браво! благодарю!
@ЭдуардЛуч4 жыл бұрын
"Состояние - это то, что пропало" - наиболее простое и гениальное определение состояния в интернете имхо)
@TVpositiv3 жыл бұрын
Самое крутое объяснение :)))
@Cupec3 жыл бұрын
Большое спасибо за ролик, оказалось куда проще, чем я думал.
@018channel4 жыл бұрын
Мужик, ты просто спасаешь людям жизни своим KZbin каналом и курсами на Udemy. Нет слов) Спасибо очень круто)
@undefin_ed96114 жыл бұрын
Долго не мог понять как он работает, учу его уже 2 дня) А теперь понятно стало всё! Спасибо большое автору! Теперь осталось только с сагами разобраться))
@germil744 жыл бұрын
Спасибо! Хотелось бы увидеть Redux в связке с React, Angular, Vue.
@annagardt23603 жыл бұрын
Урок как всегда на высшем уровне!!! Понятно и доступно. Благодарю!!!
@ilyalakhno28507 ай бұрын
Для тех, кто решил пройти туториал 4-х летней давности, как я: Возможно при билде вылезет ошибка, связанная с созданием сущности класса Hash. Я починил, добавив в команду "start" "set NODE_OPTIONS=--openssl-legacy-provider && " перед "webpack-dev-server --open"
@ВладимирМогилин-д9ш2 жыл бұрын
Посмотрел видео Владилена и внезапно чётко осознал, что такое redux и как его юзать. Перед этим, конечно, просмотрел 70 роликов курса "React - путь самурая" от Димыча и прочитал книгу "React в действии". Этот же шедевральный ролик систематизировал знания, так сказать зашлифовал. Автору респект!
@alex.besfam Жыл бұрын
Путь самурая - вода водная. Лет 5 учить будешь
@ДимаМарченко-т1к10 ай бұрын
React в действии - меня чуть не стошнило от этой мутотени, бросил после первого подхода. Как такое дочитывают?) Автор просто графоман
@shelderrr4 жыл бұрын
Прекрасный курс. Приятно, что все идет в формате "Проблема -> Решение"
@oleksandrsydorenko33034 жыл бұрын
Гений, Божество, Оракул 21 века Учу реакт и не понимаю, что такое state и с чем его едят. После просмотра 7 минут видео понял зачем это нужно, в голове засуетился рой идей как эти знания можно использовать да и вообще прошло осознание своей тупости, а наступил катарсис прозрения
@YummyMetaphor4 жыл бұрын
как же это вовремя, спасибо большое
@stoyariko4 жыл бұрын
Огромное спасибо, добрый Человек!:) Наконец то я разобрался в редаксе)))
@khatunashaveshova7424 жыл бұрын
Спасибо за твои tutorial -ы. Благодаря ним знаю Javascript и React
@nouchance4 жыл бұрын
Бро уважаю твой труд✊. Спасибо большое 🤘✌️ Ждём новых видосов.Лови мой Царьски лайк 🔥💪
@ddmm994 жыл бұрын
Спасибо, наконец-то я понял как redux работает. лайк однозначно!
@siarheilabetsik56583 жыл бұрын
Шикарный урок, спасибо. Теперь смотрю все уроки Владилена. Пару замечаний по видео: 1) брать тему из класса HTML - не верно. Нужно было взять из store.getState().theme.value. Ведь это стостояние (Best practices). 2) subscribe должен оставаться вверху файла, до всех других dispatch (внутри event listeners). Иначе они могут пройти до подписки.
@MrAntonforce4 жыл бұрын
Спасибо! Вроде много просмотрено и изучено, но ваш контент всегда приятно посмотреть! Гарантированно можно встретить что-то новое, либо другой взгляд на некоторые вещи... короче благодарю за актуальный контент!
@РамильГалиев-ы6ъ2 жыл бұрын
Классный контент, но балдеть от него начинаешь только выучив базовый ES5, ES6. Хотелось бы, чтобы Вы "запилили" какой-нибудь серьезный проект.
@romanryaboshtan92703 жыл бұрын
+ У Владилена что хорошо, он не только объясняет в теории такие технологии как Redux, Паттерны, например, но также на практике это всё показывает, это прям очень круто, далеко не везде такое есть
@dmitrykorenko90334 жыл бұрын
Когда озвучивал содержание. Думал, что будет серия уроков. А тут прям в полтора часа уложился. Превосходно! И спасибо!
@VladilenMinin4 жыл бұрын
Такого ещё много на канале)
@Oleg-tg8ed3 жыл бұрын
Отличный видеоурок, всё чётко и без ошибок: всё реализуется и работает как изложено в видео. Хотя, чтобы хорошенько разобраться, нужно как следует владеть синтаксисом JS. Благодарю за труды!
@АндрейБегун-х4э4 жыл бұрын
Спасибо,Владилен! Очень доходчиво , информативно и без воды. Оказывается я все делаю правильно))
@fedordostoevskiy42094 жыл бұрын
Очень круто !!! IT-camasutru пробовал смотреть, но там по redux каша полная. А здесь все по-полочкам. Я бы себе КУЧУ времени сэкономил если бы сразу посмотрел ЭТИ полтора часа !!!
@VladilenMinin4 жыл бұрын
У Димы хороший контент, но у меня другой стиль подачи :)
@fedordostoevskiy42094 жыл бұрын
@@VladilenMinin Я кучу времени убил зря на его канале. Сейчас я понимаю что на момент записи он половину и сам не до конца знал, не то чтобы объяснить кому-то.
@VladilenMinin4 жыл бұрын
В любом случае рад видеть)
@Fs-xj2gu4 жыл бұрын
Ну дима все разжевывает по несколько раз Там его нужно смотреть с попкормом на телеке, хотя он даже шрифт не увеличивает и + тема белая
@irinamorozova41874 жыл бұрын
Я тоже на камасутре споткнулась об redux и не смогла дальше смотреть)) а здесь понятнее как-то
@ShoxaKardashian Жыл бұрын
Владилен, огромная тебе благодарность за столь простое объяснение концепции Redux.
@СергейМ-о8к4 жыл бұрын
круто, очень круто. 2 книги по редаксу пробовал, там сразу все непонятно. спасибо за подход, за подачу. очень круто!
Спасибо огромное! Не передать, насколько понятно и полезно!
@ViacheslavGroshev3 жыл бұрын
Было бы здорово сразу увидеть в комплексе связку React + Redux + Typescript + Storybook. За этот урок конечно огромное спасибо!
@xtz2541 Жыл бұрын
вышел такой ролик
@aleksandrmikhailov32553 жыл бұрын
Классный курс, спасибо! Пользуюсь redux + thunk уже пару лет, но все равно было интересно посмотреть
@pavloivanchyshyn88204 жыл бұрын
Очень внятно объяснил. Я более 8 лет работаю бекенд разработчиком, но для своего стартапа нужен был фронтенд. Несколько фронтендщиков пытались что-то пилить на реакте, но не особо бы тро получалось. Решил сам углубиться в эту тему, чтобы понять в чём сложность. Пойду ка послушаю ещё про реакт :)
@Stan93264 жыл бұрын
Без воды и по делу! Спасибо, лайк!
@eblavoltom4 жыл бұрын
Люблю тебя бро! Спасибо за труды!
@alehsiarheyeu82554 жыл бұрын
Огромное спасибо за твой труд, Владилен!🔥 От просмотра получил больше пользы чем от 11 лет в школе!🚀🚀🚀 Давай редакс + реакт плиз
@force_of_abstinence3 жыл бұрын
Владилен, ты лучший! Теперь у меня появилась вера в то, что я его когда нибудь пойму )))
@slava88734 жыл бұрын
"Все гениальное просто" п.с. особенно в руках у специалиста....
@artemvelichko69904 жыл бұрын
Крутой ролик, всё самое главное расмотренно и продемонстрировано, а самое главное показано как сам Redux реализрван на чистом JS, за что спасибо, так понимать весь концепт гораздо проще. Одним словом, красава)
@ИльяМаненков-з9е4 жыл бұрын
Изучаю реакт редакс, и дойдя до редакса очень все запутано , так сложно , вроде понимаешь как сделать но не до конца как будто зачем это всё , но ты своим видео хоть оно и не про реакт , мне так все обрисовал что я тут же разобрался в своем проекте что и как делается и для чего , спасибо тебе огромное за твой труд )
@mendelson-dev4 жыл бұрын
1:07:51 - имхо считывать значение темы из дом элемента немного противоречит общей концепции (а если классы изменятся или тег body больше не будет подвязан на тему), лучше наверное взять значение из стора
@YmNIKYm4 жыл бұрын
Вообще спорно. Если классы изменятся то что мешает изменить и реализацию, она же в index.js в обработчике событий, тут как раз нет противоречий. Хотя я тоже остановил видео и реализовал самостоятельно через стор, а когда начал смотреть то понял, что Владилен просто показал, как передать параметр из вне.
@elbeck49373 жыл бұрын
Очень круто, спасибо! А еще не по теме, а просто комплимент твоему телосложению. Отлично выглядишь))
@gomzaleshuan52603 жыл бұрын
В самом начале видео ты перезагрузил страницу и все счетчики сбросились и это был один из основных аргументов для перехода на Редакс. Потом вот весь этот курс, качаю репу, меняю стор, перезагружаю страницу и вуаля - все сбросилось)))
@Clickyv3 жыл бұрын
Только ради этого просмотрел полтора часа видео, что бы не пропустить код, и ждал когда он засетает фичу с перезагрузкой браузера, и где она??? БОЛТ!
@panepichannel44124 жыл бұрын
Очень хорошее повествование. Плавно, по полочкам и в правильном порядке
@sofkozl3 жыл бұрын
Я в восторге, большое спасибо за такое понятное и четкое изложение сути редакса! Видео очень помогло в моем обучении ❤️
@AlexDia4 жыл бұрын
Здоровья вам и вашим близким щастья удачи и денег
@ЕвгенийБабийчук-г2н4 жыл бұрын
Наконец-то redux рассматривается отдельно от react, сразу лайк!
@SVP-d1d4 жыл бұрын
дак в реакте, редакс такой же
@sarxanabdullayev644010 ай бұрын
Спасибо за урок!
@arhimed67204 жыл бұрын
Спасибо, всё супер как всегда!
@kirintsev4 жыл бұрын
спасибо за труды.... очень помогаете в теме просветления )
@ЕвгенийГуреев-ь8ю4 жыл бұрын
Спасибо! Все круто разложено по полочкам и объяснено простым языком с прозрачными примерами! Респект! Однако одну очень крупную и важную теме все таки обошли, и, как мне кажется, сознательно, что плохо... Redux пропагандирует идею одного store. И в случае site это, возможно и не критично, а может и круто... Но есть SPA, где нужны вложенные store. Разработчики Redux предлагают использовать... селекторы?!. Например, есть страница с таблицей, диаграммой и картой. Пусть таблица будет простой сущностью - массив объектов, атрибуты которого - значение столбцов. Диаграмма состоит из серий. Серия - линейный график. Серия состоит из точек - дата и значение. Карта состоит из слоев. Слой это массив векторных объектов. Объект состоит из свойств и координат. Есть вторая страница с двумя картами, тремя таблицами и четырьмя диаграммами... Между страницами я хотел бы иметь возможность переключаться без перезагрузки данных с сервера)) Логично, что каждую таблицу я хочу рассматривать как store. А так же, введу дополнительного функционала мне нужно рассматривать серии и слои как store. Если список таблиц, диаграмм и карт я представлю как массивы в состоянии приложения, то что делать с их store - сериями и слоями? В классическом Flux центром мира является шина событий. Сторы реагируют на события из шины событий. Да, сделать снимок состояния приложения сложно. Зато сторы не зависимы. Я могу расширять функциональность приложения плагинами. Могу когда угодно добавлять новые обработчики, а не только при создании стора... Поясните, как с помощью Redux решать практические задачи, а не задачи уровня лабораторных работ?
@denone24 жыл бұрын
Владилен, ты мой кумир. Подписался на твой канал и буду смотреть все видео ролики. Ты мастер объяснять!!! Сколько лет работал с редаксом, но вот после твоих объяснений я наконец понял что это такое на самом деле ))))))
@__procherk__4 жыл бұрын
Отличный курс, спасибо)
@shamyratagayev2154 жыл бұрын
И речь и материал на уровне. Спасибо!
@aleksandrgradov78594 жыл бұрын
Спасибо! хоть и в платном курсе redux был, с удовольствием посмотрел!
@yakut543 жыл бұрын
Владилен, Спасибо тебе за твою работу!
@victor-trumpel4 жыл бұрын
вместо того, что бы инициализировать subscribers как массив добавлять в него что-то а потом вызывать можно было бы сделать таким образом: там где мы возвращаем методы : subscribe: (callback) => { subscribers = callback } , а в методе dispatch просто вызвать subscribe(). Это вроде как смотрится проще, да и зачем создавать массив в котором всегда будет лежать одна функция? выражаю вам огромную благодарность за видео
@VladilenMinin4 жыл бұрын
Потому что подписчиков может быть сколько угодно
@Borys-h4s3 жыл бұрын
кайфовые у тебя уроки, спасибо
@rybiizhir3 жыл бұрын
Спасибо, доходчиво объясняешь. JS интересная штука, никогда бы не подумал
@mikep5414 жыл бұрын
Спасибо за видео! Очень хорошо объясняешь, как всегда! Ты в конце видео говорил, что если интересно как взаимодействует redux с фреймами, то пишите в комментарии. Очень интересно посмотреть связку react+redux и redux-подобного vuex с vue! И спасибо огромное за творчество твое и твой канал!
@peterhutsul3 жыл бұрын
Молодец. Приятный голос и взгляд на обучение
@olegpetrov24524 жыл бұрын
action можно определить как правило, согласно которому изменяется state. То есть это формулировка действия, а не само действие. Правил, то есть actions, может быть сколько угодно. Сами действия это dispatch action, которые выпоняет reducer.
@Nazar55454 жыл бұрын
Очень крутой урок! Спасибо))
@studentdar4 жыл бұрын
Мне не понятно какую задачу решает redux-thunk. Ведь ровно тот же результат можно получить и без него. Вместо action creator asyncIncrement мы можем создать обычную асинхронную функцию const asyncIncrement = async (dispatch) => setTimeout(() => dispatch(increment()), 2000) и сможем ее вызвать где нам надо: await asyncIncrement(store.dispatch) Такие функции можно хранить, например, в папке "store/services" (т.к. в них будет основная БЛ, то логично обозвать их сервисами), а синхронные экшены как и раньше в "store/actions". Чем thunk лучше такого подхода?
@mikewazowski75262 жыл бұрын
После 40 выпусков Пути Самурая идеально заходит. Отличное видео для повторения всей концепции.
@grommaks4 жыл бұрын
57:00 нужно было еще раз вызвать state.getState() после вызова next. Вроде должно было вернуть уже новый стейт
@YmNIKYm4 жыл бұрын
Да, мы стейт изменили, можно его по новой юзать :) Хотя логер от редакса покрасивей будет
@OlegGuitar Жыл бұрын
Спасибо! Очень полезное видео. Начал понимать как это работает)
@eavanbeing4 жыл бұрын
Лучший туториал! Хотелось бы в будущем понять как хранить это состояние на бекенде. Простом на node js
@annaneova20734 жыл бұрын
Спасибо за видео! Angular+Redux Очень бы хотелось увидеть!
@АлексейБобриков-п5р3 жыл бұрын
Вы очень крутой преподаватель по js. Спасибо вам!
@artemoleinikov78844 жыл бұрын
Отличный Контент! Про работу совместно с React js было бы Круто! Спасибо за контент!
@mk3mk3mk10 ай бұрын
Спасибо за видео!А почему нельзя вместо Redux использовать глобальные переменные? Например задать в главном компоненте несколько переменных, это будет State, а другие компоненты будут их изменять и перерисовывать View.
@СергейВоронцов-м4с4 жыл бұрын
Очень круто и доступно! Владилен, нет мыслей выпустить видео, как правильно понимать чужой код (допустим большой проект) и уметь правильно читать его?
@artyomzolotoverkhov84684 жыл бұрын
Офигенно, спасибо!
@alexr0v4 жыл бұрын
невероятно крутое объяснение! Спасибо!
@Den-wn9vj4 жыл бұрын
Спасибо автору, неплохое объяснение!
@aris86563 жыл бұрын
Спасибо огромное, шикарный курс!)
@yuriiyakhnytsia22923 жыл бұрын
После просмотра видео, и после того, как еще раз разобрал все по полочкам возник один вопрос - чем так плох 'vuex' чтобы вместо него применять 'redux'? Постоянно сравнивал их по ходу изучения редакса и для меня 'vuex' это одна монолитная максимально понятная структура с асинхронными операциями в коробке, еще и разбросать его по модулям(для сложных приложений) дело пару часов, при нулевых знаниях, в то время как в редакс все разбросано по компонентам, которые ты все настраиваешь, и собираешь в одно целое, не пойму, чем плох vuex?
@andriyivanyuk23144 жыл бұрын
Очень крутой и главное качественный урок! Спасибо Вам! Подскажите может знаете какие нибудь уроки применения Redux в Angular?
@VladilenMinin4 жыл бұрын
Планирую сделать такие)
@awakeupcall53364 жыл бұрын
к слову, вместо того, чтобы создавать и вызывать конкретные disableButtons, enableButtons, можно инвертировать зависимость -> внутри асинхронного экшна вызывать условно PENDING, FINISH экшны в нужный момент и в стейте держать статус, а на стороне view - выключать кнопки (а может и что-то большее, вот в чем плюс этого подхода) уже реагируя на этот статус
@Наталья-с8ы7щ2 жыл бұрын
Спасибо за сжатую ценную информацию!!! Очень хорошо систематизировано, как всегда!!
@vlad_hippo4 жыл бұрын
Невероятно вовремя. Просто мысли читаешь)
@VladilenMinin4 жыл бұрын
Рад слышать)
@flatmapper4 жыл бұрын
Спасибо большое, хоть немного появились поинты, за которые можно зацепится
@РоманГирич-з5ш4 жыл бұрын
еще мне кажется не плохой вариант решение задачи выключения кнопок при асинхронном запросе это создать переменную loading и перед началом асинхронного экшена включать экшеном лоадинг в тру а в конце менять на фолс =)
@ИринаВолхонская-е9щ4 жыл бұрын
Спасибо большое за твои труды, Владилен! Посмотрела курс, стало более-менее понятно, но теперь прошу снять видео, как соединить React и Redux! Заранее спасибо :)
@VladilenMinin4 жыл бұрын
На канале следующий за этим ролик
@ИринаВолхонская-е9щ4 жыл бұрын
@@VladilenMinin спасибо ))) как раз сажусь за компьютер,чтобы эту темку продолжать изучать! Было предположение вчера,что возможно уже есть)))
@antonartuyshko3443 жыл бұрын
Большое человеческое за объяснение redux-thunk, да и в целом удачное видео.
@romansharpe11314 жыл бұрын
Спасибо, материал очень полезный!
@antonsvyatchenko88764 жыл бұрын
Владилен, расскажи про мутабельность - иммутабельность, в разрезе React желательно, но можно и в общих чертах, как с этим работать, зачем это, какие есть инструменты и "бестпрактис"
@O-L-19864 жыл бұрын
Спасибо за качественнейший контент!
@alexanderm15843 жыл бұрын
Отличный материал, все доходчиво, понравилось разъяснение, что примерно под капотом Redux
@JenechekDv4 жыл бұрын
Отличное время прокачать свои скилы в период самоизоляции. Спасибо!