Функциональное программирование от А до Я. ФП на JS. Монады, функторы, каррирование, композиция

  Рет қаралды 47,042

Ulbi TV

Ulbi TV

Күн бұрын

В этом видео мы поговорим про функциональное программирование на javascript. Разберем такие темы как: Декларативность, Чистые функции и сайд эффекты, Иммутабельность (неизменяемость), Функции первого класса, Функции высшего порядка, Композиция/конвейер, Частичное применение и каррирование, Chaining, Контейнеры, Функторы и аппликативные функторы, Монады, Спецификация Fantasy-Land
Мой курс "Продвинутый Frontend. В production на React", скидка 20% - ulbitv.ru/frontend
Таймкоды:
00:00 ➝ Введение
01:30 ➝ План на урок
04:00 ➝ Что такое ФП? Сравнение с ООП
07:20 ➝ Концепции ФП
09:00 ➝ Декларативность vs императивность
13:25 ➝ Чистые функции и сайд эффекты
18:10 ➝ Иммутабельность (неизменяемость данных)
22:40 ➝ Минусы мутабельности и преимущества иммутабельности
24:20 ➝ Функции первого класса
26:40 ➝ Функции высшего порядка
31:20 ➝ Смысл концепций ФП
33:10 ➝ Композиция (compose)
37:00 ➝ Конвейер (pipe)
37:45 ➝ Каррирование и частичное применение
45:50 ➝ chaining (цепочки вызовов)
46:40 ➝ Контейнеры
52:05 ➝ Функторы и монады
58:55 ➝ Аппликативные функторы
01:03:10 ➝ Спецификация Fantasy land
01:04:10 ➝ Другие монады (either, future, writer)
01:06:40 ➝ Время ставить лайки и писать комментарии) всем спасибо!
Ссылка на мой телеграм канал - t.me/ulbi_tv
Поддержать меня и мой канал вы можете по ссылкам ниже.
Patreon/boosty (доступ к бонусам) - boosty.to/ulbitv
Qiwi кошелек - qiwi.com/n/BODYE821
Яндекс деньги - yoomoney.ru/to/4100116193037469

Пікірлер: 292
@fatcat4168
@fatcat4168 Ай бұрын
Сегодня досрочно закрыл испытательный срок на своей первой работе фронтом 🎉🎉🎉 во многом благодаря Тимуру🎉🎉🎉, прошел почти весь курс, не дошел только до последнего раздела. Проходил ещё на первом потоке, у меня там была аватарка с вислоухим котом😺 когда прошел, на полгода забросил, но всё-таки взял себя в руки и устроился😊 всем удачи и верьте в себя!
@es7729
@es7729 Ай бұрын
Мои поздравления! Красавчик!
@vladislavkomkov5178
@vladislavkomkov5178 Ай бұрын
Хвастайся зп в 3 кириешки))
@webtensei2327
@webtensei2327 Ай бұрын
@@vladislavkomkov5178так все с чего-то начинают)
@diamondserg-43
@diamondserg-43 Ай бұрын
Молодец!
@arthurq7843
@arthurq7843 Ай бұрын
Сколько опыта крутил?)
@vitalex9383
@vitalex9383 Ай бұрын
Ролик вышел, как раз за час, до собеса. Решил быстро глянуть. И на собесе, спросили про функциональное программирование и функции высшего порядка. И я как выдал всю базу, которая есть в ролике, даже доп вопросов не задали😂. Спасибо Тимур за твой труд, за твои бесплатные и платный курсы.
@ker4ik13
@ker4ik13 Ай бұрын
Обожаю твои уроки. Нет никого, кто объяснял бы понятнее и интереснее
@UlbiTV
@UlbiTV Ай бұрын
Стараемся, спасиб)
@404Negative
@404Negative Ай бұрын
неет нееет никого кроме бога одного
@midrala
@midrala Ай бұрын
Хочется сказать слова поддержки и выразить свое уважение к автору проделанную им работу. Спасибо Человек, ты делаешь этот мир лучше! Проделанная тобой работа помогает действительно стремящимся к знаниям людям получить их быстро и безболезненно, продолжай очень нравится. Творческих успехов и активной аудитории тебе!
@UlbiTV
@UlbiTV Ай бұрын
Спасибо за такие слова ❤️🙏
@-Forever-Young-
@-Forever-Young- Ай бұрын
Сразу лайк! Нет сомнений в качестве
@LeonidPolyakov
@LeonidPolyakov Ай бұрын
Да, 100 процентов будет адекватно и информативно.
@sidless3862
@sidless3862 Ай бұрын
Вообще, когда только начинал изучение JavaScript, считал его именно функциональным языком. Да и по факту большую часть времени пишу в функциональном стиле, и люблю его больше чем ООП. По-моему на фронте в ООП пишут только Ангулярщики, но могу ошибаться. Спасибо за очень информативный ролик, как всегда лучший!
@Michael-bf7pm
@Michael-bf7pm Ай бұрын
Твой ролик про ООП был просто шикарен, поэтому я невероятно ждал видео про ФП! Спасибо большое, Тимур!
@UlbiTV
@UlbiTV Ай бұрын
Спасибо! Жду фидбек))
@ivanandreev1026
@ivanandreev1026 Ай бұрын
Очень полезное видео. Как всегда. Простое и ясное обьяснение сложных вещей. Огромное спасибо.
@DavitDzneladze0802
@DavitDzneladze0802 Ай бұрын
Как всегда очень качествено! большое спасибо!
@user-cd7iz2iv8h
@user-cd7iz2iv8h Ай бұрын
Спасибо автору, все очень качественно и интересно, отличный звук и видеоряд, ничего лишнего, лучший канал для начинающих разработчиков и не только для них.
@Aantonya
@Aantonya Ай бұрын
Спасибо за то что ты делаешь. Я пошёл учится фулл стеком и твои видео всегда дают много знаний даже когда я не знал джс. Качество контента просто топ
@jspytop
@jspytop Ай бұрын
Еще раз спасибо за обучающие видео. Делаю 2й проект уже за денежку, и прямо по новому переосмысливаю информацию по вью и авторизации. Если все получится - еще денежку занесу ))
@flame_____
@flame_____ Ай бұрын
Крутой ролик, теперь у меня есть понимание этих всех принципов
@JavaScript_95
@JavaScript_95 7 күн бұрын
Спасибо огромное, с начало корирование для меня как дикий лес. Нужно будет почитать и венуться.
@rajubenbharwad-rn6cc
@rajubenbharwad-rn6cc 14 күн бұрын
Смоук, ты наш вдохновитель, давай еще!
@user-kw8cq6cd6y
@user-kw8cq6cd6y Ай бұрын
Жду структурное программирование на Rust или Go))
@nikitatimofeenko9351
@nikitatimofeenko9351 Ай бұрын
Поддерживаю, ждем структурное программирование с примерами и на Rust и на Go
@user-yq6vo5vb9p
@user-yq6vo5vb9p Ай бұрын
@@nikitatimofeenko9351 поддерживаю поддерживание, ждем структурное программирование с примерами и на Rust и на Go
@aliicomua1369
@aliicomua1369 Ай бұрын
Спасибо за контент. Всё равно на какую тему ролик от этого автора, главное что 100% это будет полезно.
@Kokurorokuko
@Kokurorokuko Ай бұрын
По-моему, на 51:00 f и g нужно поменять местами. Сначала применяется f (она должна быть внутри), а потом g.
@romandeveloper7720
@romandeveloper7720 17 күн бұрын
да-да, плюсую. сомнительно выглядит
@unknown.6914
@unknown.6914 11 сағат бұрын
Да, действительно полезно, спасибо Тимур
@Sergei546
@Sergei546 Ай бұрын
супер контент!!! ждал! спасибо за труд!
@maxoonix
@maxoonix 27 күн бұрын
Класс, спасибо за видео 🎉
@falsetrue7910
@falsetrue7910 Ай бұрын
Качество видео растет от ролика к ролику, смотрю почти каждый ролик и точно могу это сказать 😂 отличное введение в фп, но как ни крути, для полноценного фп надо писать не не js
@user-yt9he6ud5r
@user-yt9he6ud5r Ай бұрын
Фунцкиональный стиль в JS это богоугодное дело! Жду не дождусь когда в спецификацию JS добавят конвейерный (pipeline) оператор |>
@awenn2015
@awenn2015 Ай бұрын
Я лично жду когда в js добавят выражение по типу этого (выражение раннего выхода как в котлинине) const a = 5 ;((a: number) => { const b = a-5 || return false }) (a) Что бы не проверять ифами какую то тему и выходить в ифе
@konstantinsologub9568
@konstantinsologub9568 Ай бұрын
Не понимаю как я не подписался на тебя раньше, хотя просматривал твои ролики до этого момента. Очень доходчиво объясняете и отличная дикция!
@UlbiTV
@UlbiTV Ай бұрын
Спасибо!
@dmtrkskv
@dmtrkskv Ай бұрын
Интересная тема для меня. В свое время проходил курс по Haskell, поэтому постараюсь дополнительно разъяснить про Монаду и Аппликативный функтор, если кому-то интересно, но не до конца понятно. 1) Монада - это структура, являющаяся наследником Функтора, но для которой дополнительно реализован метод chain. В разных языках/библиотеках название может быть разным. chain очень похож на map, отличие в том, что передаваемая в метод chain функция возвращает не значение (как в случае с map), а сам контейнер, в который запаковано значение. Пример Монады, который прямо под носом, но не был в таком ключе упомянут в видео - это Array. Для него методом chain по своей сути является flatMap: ведь функция, передаваемая во flatMap возвращает сам контейнер - Array: const duplicate = (arr) => arr.flatMap((n) => [n, n]); duplicate([1,2,3]); // [1,1,2,2,3,3] ramdajs.com/docs/#chain Как видно из примера, Монада - это более мощный интерфейс, чем Функтор, потому что позволяет менять не только запакованные значения(в случае с map), но и структуру самого контейнера. При использовании Maybe как Монады мы можем преобразовать Maybe в Nothing (использую псевдо-код): Maybe.of(1).chain(() => Nothing); // Nothing Maybe.of(1).chain((n) => Maybe.of(n * 2)); // Maybe(2) Используя Maybe как Функтор, мы можем изменить только значение, но не сам контейнер: Maybe.of(1).map((n) => n * 2); // Maybe(2) Промис в некотором понимании можно использовать и как Функтор, и как Монаду: Promise.resolve(1).then((n) => n * 2); Promise.resolve(1).then((n) => Promise.resolve(n * 2)); 2) Если кратко говорить про Аппликативный функтор, то он нужен, чтобы применять обычную функцию к упакованным значениям. Важно, чтобы все аргументы функции были одного типа. Например, у нас есть функция сложения, работающая с примитивами: const sum = (a, b) => a + b; Но мы хотим сложить не просто 2 числа, а 2 числа, упакованных в Maybe, причем сделать это лаконично и переиспользуя функцию sum. Maybe является Аппликативным функтором, т.к. реализует метод ap. Поэтому можем решить задачу так: const maybeResult = liftA2(sum, maybe1, maybe2); Если хотя бы 1 из переданных Maybe окажется Nothing, то результат всего выражения будет Nothing: такое поведение прописано в реализации ap для Maybe, которая дергается внутри liftA2. Для других структур поведение может быть своим, главное, чтобы оно удовлетворяло законам Аппликативных функторов. 3) Также можно упомянуть, что любая Монада является Аппликативным функтором, а любой Апликативный функтор является обычным Функтором. Это видно на схеме спецификации fantasy-land. На практике это означает, что если нам нужно объявить какую структуру Монадой, то нам достаточно реализовать только метод chain, а реализация методов ap и map будут выведены автоматически.
@user-dn7qr7vs1h
@user-dn7qr7vs1h 18 күн бұрын
Еще нужно для ясности подчеркнуть в чем отличия на практике. Упрощенно: Функторы позволяют выразить чистые вычисления в контексте. (в вычислениях можно производить вычисления) Аппликативные функторы позволяют выразить параллельные вычисления в контексте. (вычисления можно комбинировать) Монады позволяют выразить последовательные вычисления в контексте. (вычисления зависят от результатов предыдущих) Из этого, кстати, следует, что аппликативы можно статически исследовать, не интерпретируя (превратить в обычную структуру данных), в то время как с монадой - не прокатит. Ее придется вычислять. Т.е. если какой-нибудь Thread - не аппликатив, то соединить/синхронизировать (joinThread) два треда в результате гонки не получится. Если Thread - не монада, то дождаться выполнения треда, получить его результат, и запустить новый тред в зависимости от результата - не получится.
@tahrizade
@tahrizade Ай бұрын
ждем - про Микросервери , микрофронтенд И так далее 😊
@nikman5541
@nikman5541 Ай бұрын
Отличный ролик на самом деле. Я занимаюсь JS уже 3 года и в этом ролике я открыл для себя новые интересные применения функций. Они вроде бы и были логичными, но про них даже не думал
@user-dw8lb8lc7u
@user-dw8lb8lc7u Ай бұрын
Спасибо ЮЛЬБИ!!! уникальный качественный контент
@user-gk1yb3vp4b
@user-gk1yb3vp4b Ай бұрын
Мозг взорван, но мне понравилось))) Продолжай сенсей
@solovievss
@solovievss Ай бұрын
Очень наглядное руководство по ФП! Разработчики, поделитесь опытом, может кто-то использовал ФП у себя в проектах? У меня дальше carry,compose,map в рамках ramda и lodash дело не пошло. С ts типизацией очень громоздкий код получался.
@MAKS-FISHER
@MAKS-FISHER Ай бұрын
Видно, что как всегда стараешься, спасибо тебе огромное, но я понял только поверхностно (всегда стараюсь твои уроки перематывать по "300" раз пока полностью все не пойму...), но досконально на таких примерах наверно и не нужно, а то мозг под плавится ))!!! Надеюсь, что когда будешь делать какие-то уроки с живым кодом, то будешь и вспоминать про этот урок приводя примеры с живым кодом, думаю, что не только я это ценю ))) !!! Желаю тебе вдохновения по более и ждем следующих видео.
@Roger-qj4wu
@Roger-qj4wu Ай бұрын
Спасибо, что продолжаешь давать нам ценный контент!
@adelinaromanova8353
@adelinaromanova8353 Ай бұрын
Лайк! 🎉
@user-cw4xs7ed1y
@user-cw4xs7ed1y Ай бұрын
@UlbiTV Спасибо за полезные видео! Было бы интересно посмотреть видео на темы: 1. изменения настроек вебпака из сборки командой npx create-react-app. 2. Управление глобальным состоянием приложения, с помощью ApolloClient (для исключения использования другого state manager (типа redux) или контекста реакта). Т.е. управление кешем (через хуки или нормальзованными данными, возможно qraphql-codegen), объявление и управление локальными данными клиента (@client, writeQuery, makeVar, useReactiveVar). Интересно было бы посмотреть твое видение организации кода и управление состоянием.
@darvin2710
@darvin2710 Ай бұрын
Тимур лучший, большое спасибо за видео. Твои уроки помогают разобраться лучше всего
@ode2877
@ode2877 Ай бұрын
Интересна штука особенно про монады, захотелось попробовать применять для избавления фигурных скобочек if error try catch и тд, единственное не хочется терять в производительности из за красоты, не знаю насколько v8 оптимизирует такие функциональные фокусы
@kowkavn2356
@kowkavn2356 Ай бұрын
Лайк однозначно, коммент для продвижения, и вопрос по другой теме - снимаешь разбор Rx.js? Могу ошибаться, но она в стиле фп вроде. И как продолжение темы, или в принципе для расширения кругозора интересно услышать твое мнение и опыт в ней.
@the_fisherman560
@the_fisherman560 25 күн бұрын
Сразу лайк!
@reginasap9104
@reginasap9104 5 күн бұрын
Тимур, большое спасибо за всё то,что ты делаешь. Есть идея для видео. Разбери,пожалуйста, веб компоненты на нативном js. Заранее благодарю
@VolodymyrSirenko
@VolodymyrSirenko Ай бұрын
Для меня очень полезное видео, спасибо!
@barbatage5078
@barbatage5078 Ай бұрын
Юлби, жги! Мы тебя любим 🫶🏼 каждый ролик долгожданный!
@helenit4365
@helenit4365 Ай бұрын
Да!!!✨️🌟🔥
@VladislavBabitskiy
@VladislavBabitskiy 11 күн бұрын
Видос просто сахарок!
@samiracle9852
@samiracle9852 Ай бұрын
Как раз подумывал курс купить, как диплом допишу, но раз такая скидочка, то нельзя откладывать Ну и ролик топ, как обычно
@ammoney159
@ammoney159 Ай бұрын
Хороший видос, апдейт по монтажу хороший, спасибо
@trusigmacom
@trusigmacom 24 күн бұрын
Просту гуру программирования ❤
@kristinavolk2660
@kristinavolk2660 Ай бұрын
Спасибо огромнейшее за тонкость и глубину контента. Заставляет явно провернуться шестеренкам в голове 🤓 со шлейфом, что что-то понял )) Эстетично и со вкусом 🌹 считывается, что ты в теме не просто шаришь, знаешь концепции, но ещё и Чувствуешь 💛 гармонично ориентируешься, но и подставляешь себя под критику, чтобы динамически расширить познание и критического мышления, развить его живость, эластичность и остроту. Редкость. Ценно 🫶🏻
@Aristockij
@Aristockij Ай бұрын
это что хоть такое-то? я неделю всасывал урок по вебпаку и тут нннныа и еще один видос подъехал! мне хотя бы половинку такой продуктивности
@user-gd4vi6fv1z
@user-gd4vi6fv1z Ай бұрын
Это ОЧЕНЬ классный ролик, спасибо огромное! действительно, ни где не встречала так четко структурированной информации.
@eunicsi
@eunicsi Ай бұрын
Лайк и комментарий для продвижения автоматически, спасибо!
@musicthreads
@musicthreads Ай бұрын
Лайкос тебе, дружище, за работу!
@maratvaliev8642
@maratvaliev8642 Ай бұрын
Аналог Конвейера в ООП можно считать паттерн Строитель (Builder). Также похожий подход можно увидеть в функции createSelector, библиотеки Redux-toolkit.
@user-hy4qw4ki3o
@user-hy4qw4ki3o Ай бұрын
Привет! Видео класс! Подскажи где ты рисуешь видеоряд? Слайды и т.д.
@barbatage5078
@barbatage5078 Ай бұрын
Сразу лайк не глядя! ❤
@tesohi
@tesohi Ай бұрын
Господи, это превосходно! Я столько знаний получил с этого, мега круто! Причем как знаний по ФП, так и много-много знаний по js и лучшему пониманию того что происходит. А ещё мемоизация это лучший пример замыкания🤩 Тимур, это превосходно, ваш курс стоит покупки более чем! 💯💯💯
@yohohowowowo9471
@yohohowowowo9471 Ай бұрын
О, это для меня! Я, конечно, не программист, но иногда приходится писать код, причём в основном на Лиспе или VBA, где ООП не реализовано. И именно в Лиспе, функции - это основной и довольно мощный инструмент. Из-за специфики кода, при написании программы, сначала приходится прописывать все функции последовательно от самого высокого уровня вложенности до самого низкого.
@yakut54
@yakut54 Ай бұрын
Феноменально! Как и всегда. Снимаю шляпу!
@user-dn7qr7vs1h
@user-dn7qr7vs1h 18 күн бұрын
Пришел от Мурыча, который оподливился, разбирая твоё видео. Дедушка в теме не разбирается. Спасибо за хороший контент по ФП, коего мало на русском. 👍
@user-zl5sp9yh1n
@user-zl5sp9yh1n 14 күн бұрын
Я думаю что дедушка разбирается, просто учитель и собеседник из него ниже плинтуса, а самомнение вышегор. Такой себе АНАТОЛЕ от мира жаваскрипта.
@user-dn7qr7vs1h
@user-dn7qr7vs1h 14 күн бұрын
@@user-zl5sp9yh1n как ФП-шник "в теме", могу сказать, что в ФП он точно не разбирается. Фундаментальные по его мнению проблемы ФП были решены еще в 20 веке, причем не на уровне костылей в ЯП, а на уровне математики. В CS как мне кажется, тоже не особо разбирается. Возражать против невыразимости сколько-нибудь полезных программ в ФП - по сути же самое, что возражать то же про лямбда исчисление, что математически то же самое, что возражать это про машину Тьюринга. Но говорить, что на каком-либо ЯП (С, JS) можно выразить больше программ чем в машине Тьюринга - выглядит как фундаментальное непонимание CS. (Хочу заметить, что и про лямбда-исчисление, и про машину Тьюринга, и наверяка про Тьюринг-полноту он знает.) В ЖС дедушка наверняка разбирается, по крайней мере выглядит так для неопытного в этом ЯП человека (меня).
@user-zl5sp9yh1n
@user-zl5sp9yh1n 14 күн бұрын
@@user-dn7qr7vs1h Обстоятельный ответ, умываю руки))) Я неопытен и в ЖС и ФП, просто интересуюсь.
@lolimon58
@lolimon58 Ай бұрын
Лайк префом. btw я scala разраб
@inriinriinriinriinri
@inriinriinriinriinri Ай бұрын
Качество визуализации стремительно растёт! Куда приятнее и легче смотреть на анимации в красивых цветах, чем на скриншоты где что-то непонятное написано от руки) Очень интересный урок! Спасибо!
@user-wu8zt4we5n
@user-wu8zt4we5n Ай бұрын
А ты видел nodejs со встроенным gpt? Такой забавный Франкенштейн, но выглядит круто: переход к коду программы на человеческом языке!
@bobronaud
@bobronaud 28 күн бұрын
Тимур, привет. Хочу тебе накинуть идею снять видео по девтулзам от А до Я. Изучаю фронтенд полтора года, но так и не сложилось цельной картины возможностей девтулзов, потому что в интернете очень разбросанная информация, в кучу фиг соберешь А девтулзы это основа основ для фронтендера. Считаю, этим видео ты очень поможешь прокачаться многим в плане отладки кода.
@user-rw3gf4te4e
@user-rw3gf4te4e Ай бұрын
просто шикарно!
@grigoryveynin8553
@grigoryveynin8553 Ай бұрын
Спасибо за ролик! Я не специалист в ФП. Понравилось объяснение функторов и монад. Кажется мир ФП может много чего интересного принести в решение рутинных задач)
@HaywasterChannel
@HaywasterChannel Ай бұрын
Блин, я искал буквально 3 дня назад видео по сравнению парадигм ООП и ФП, не нашел. И тут бабах! Очень кстати) Спасибо большое, Тимур!
@user-pt5vc1uy9o
@user-pt5vc1uy9o 10 күн бұрын
Эээ, в статьи не пытался, да? Их более чем достаточно, чтобы понять: ооп - каша
@alexsibrin715
@alexsibrin715 Ай бұрын
Дай бог тебе здоровья мужик
@awenn2015
@awenn2015 Ай бұрын
2:32 Я хоть и давно в вебе (3 года в js) но последние 5 пунктов вообще хз что это такое, как будто из ассемблера что то)) Хотя посмотрев ролик понимаешь что рано или поздно с опытом даже не зная этих заумных терминов сам приходишь к декларативности
@yggllen
@yggllen Ай бұрын
В целом интересная теория, но со стороны большого опыта работы на Java с StreamApi, Function, Optional, Consumer и тп. в JS вся эта структура кажется сложнее, хотя плюс минус тоже самое. Для меня самое сложное было понять как работают кастомные хуки в реакте, как я понимаю это также все выходит из ФП, но так как в java нет прямой аналогии для меня это выглядело как магия
@vetero4eg
@vetero4eg Ай бұрын
Уникальный Ulbi, спасибо! Как всегда, очень крутой контент.
@sattorerror
@sattorerror Ай бұрын
безусловно лайк!
@KaHcTpykTap
@KaHcTpykTap Ай бұрын
Посмотрю потом, лайк поставил.
@Natalikashka
@Natalikashka 19 күн бұрын
Благодарность за вашу работу) А бусти ваш еще жив?
@Feniks20000
@Feniks20000 Ай бұрын
Спасибо за ролик, как всегда, качественно и наглядно
@Sershir
@Sershir Ай бұрын
Спасибо
@vladb3449
@vladb3449 Ай бұрын
Круто, спасибо за урок, чувствуется хорошая экспертиза!
@user-fw1ws8lr8n
@user-fw1ws8lr8n Ай бұрын
Очень круто и информативно! Спасибо ♥️
@n1kaka
@n1kaka Ай бұрын
Сразу лайк и коммент, огромное спасибо за видео😊
@alexstepanchhuk683
@alexstepanchhuk683 Ай бұрын
Как всегда супер-годный контент!!!! Спасибо!
@WinchesterD
@WinchesterD Ай бұрын
Круто, спасибо за видео! 👍
@givename48
@givename48 Ай бұрын
Может для фана, ролик по Backend серверу на Haskell? Отличное расширение кругозора! (я просто адепт Haskell)
@Bespokerug
@Bespokerug Ай бұрын
Спасибо за твои труды! Не мог бы ты сделать подобный ролик про паттерны проектирования?
@UlbiTV
@UlbiTV Ай бұрын
В todo есть такой ролик
@psycho0sis
@psycho0sis Ай бұрын
очень интересно, спасибо!
@miRorshik
@miRorshik Ай бұрын
Где то читал об ещё одно важное отличие процедуры от функции это то что процедуры могут изменять данные из глобальной области видимости, а в функциях такое обычно не приветствуется как раз из соображений чистоты функций.
@user-hp6hz3wx9d
@user-hp6hz3wx9d Ай бұрын
Твой ролик с собеседованием мотивировал меня посмотреть весь твой канал 🎉
@Kysok410
@Kysok410 Ай бұрын
Спасибо большое Тимур Супер полезный и интересный ролик :) Долго тупил на функции каррирования, но в итоге разобрался)
@nk_77777
@nk_77777 Ай бұрын
Лайк со старта)❤
@talantasanov4973
@talantasanov4973 Ай бұрын
видео топ(пока не смотрел, но знаю это))
@user-frond-end_dev
@user-frond-end_dev Ай бұрын
Карта развития или учебы для самостоятельного изучения есть у тебя?
@Ramosok
@Ramosok Ай бұрын
Огнище огненное!! супер контент! спасибо!
@user-nh8um2dn9s
@user-nh8um2dn9s Ай бұрын
Спасибо за информацию. Довольно интересные подходы. И понимания в этом направлении стало побольше. :)
@nabijonazamov3695
@nabijonazamov3695 Ай бұрын
Good mentor
@AntonRyabov-by3vn
@AntonRyabov-by3vn 3 күн бұрын
Настолько захватывающе аххахха смотрю с открытым ртом 😅
@thealexday8783
@thealexday8783 7 күн бұрын
Подскажите планируете ли еще форматы видео собеседований тестовых. Очень хочу поучаствовать в таком формате у кого либо
@_GyG_
@_GyG_ 5 күн бұрын
Очень крутой ролик, спасибо большое! Я не уловил сути про контейнеры. Зачем конструктор делать приватным и зачем нужен метод of() ? Чем код ниже хуже? class Container { private value = ''; constructor(x) { this.value = x; } map(fn) { return new Container(fn(this.value)); } }
@victormog
@victormog Ай бұрын
Видео - просто бомбическое! Может развить его плейлистом с более конкретными и практическими примерами?..
@user-hu1gl5lw3p
@user-hu1gl5lw3p Ай бұрын
вижу новый видос ставлю лайк
@dmitriynemkov1380
@dmitriynemkov1380 Ай бұрын
В какой программе презентацию делаешь?
@VladislavBabitskiy
@VladislavBabitskiy 12 күн бұрын
TOP
@tahrizade
@tahrizade Ай бұрын
а когда будет именно про React render , memoization под копотом ??? 🤔🤔🤔 тоест видос для lead )
@adnike7013
@adnike7013 Ай бұрын
очень интересно, спасибо за видео , познавательно!
@abylaev8233
@abylaev8233 Ай бұрын
like
ИРИНА КАЙРАТОВНА - АЙДАХАР (БЕКА) [MV]
02:51
ГОСТ ENTERTAINMENT
Рет қаралды 1,6 МЛН
I Built a Shelter House For myself and Сat🐱📦🏠
00:35
TooTool
Рет қаралды 35 МЛН
Why You Should Always Help Others ❤️
00:40
Alan Chikin Chow
Рет қаралды 114 МЛН
Чудовищно функциональный JavaScript
21:31
Как пройти в IT?
Рет қаралды 54 М.
JWT авторизация. Основы JWT - механизма.
6:45
Хочу вАйти
Рет қаралды 2,7 М.
React JS фундаментальный курс от А до Я
3:01:08
СОБЕСЕДОВАНИЕ FRONTEND ЗП 220к JS, TS задачи
49:02
Кодерские собесы
Рет қаралды 79 М.
One To Three USB Convert
0:42
Edit Zone 1.8M views
Рет қаралды 440 М.
WWDC 2024 Recap: Is Apple Intelligence Legit?
18:23
Marques Brownlee
Рет қаралды 6 МЛН
ПОКУПКА ТЕЛЕФОНА С АВИТО?🤭
1:00
Корнеич
Рет қаралды 2,1 МЛН
Разряженный iPhone может больше Android
0:34
Хотела заскамить на Айфон!😱📱(@gertieinar)
0:21
Взрывная История
Рет қаралды 2,5 МЛН