Функциональное программирование в мире JavaScript

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

Yandex for Frontend

Yandex for Frontend

4 жыл бұрын

Разбираемся, что такое композиция, частичное применение, каррирование, чистые функции, мемоизация и неизменяемые (иммутабельные) данные.

Пікірлер: 174
@user-sm6id3ss8q
@user-sm6id3ss8q 4 жыл бұрын
Отличная подача, прям Дроздов - "В мире функционального программирования"
@jojomajo
@jojomajo 3 жыл бұрын
ору) спс)
@maksimzolotoi3379
@maksimzolotoi3379 3 жыл бұрын
Тоже подумал что чисто дроздов 👍🏾😁
@hamzarylan7895
@hamzarylan7895 2 жыл бұрын
I dont mean to be so off topic but does someone know of a method to get back into an Instagram account?? I was dumb forgot the password. I would love any assistance you can offer me
@jonathangraham689
@jonathangraham689 2 жыл бұрын
@Hamza Rylan instablaster :)
@hamzarylan7895
@hamzarylan7895 2 жыл бұрын
@Jonathan Graham I really appreciate your reply. I found the site thru google and im waiting for the hacking stuff now. Seems to take quite some time so I will reply here later with my results.
@maksimsergeevich5939
@maksimsergeevich5939 4 жыл бұрын
С этим челом нельзя курить, а то залипнешь до старости)))
@artemsites
@artemsites 4 ай бұрын
Спасибо за лекцию!!!
@dmitriymedvedev70
@dmitriymedvedev70 3 жыл бұрын
Лекция супер! Такого лектора ещё не встречал! Спасибо!
@granmini
@granmini 4 жыл бұрын
Очень классный! Волшебный лектор! Подумал о том как подать, и очень доходчиво, крутые метафоры, всё легко принимается. Не знаю, как на счет актуальности знаний, у меня тут не пригорело как у кое-кого, и я только-только начал учиться...) но слушать и понимать было легко и здорово. Спасибо.
@AlexanderBukhtatyy
@AlexanderBukhtatyy 4 жыл бұрын
Спасибо за доклад!
@TheBakdag
@TheBakdag 2 жыл бұрын
Можно пожалуйста еще лекций с ним раздобыть, очень круто рассказывает, тяжело оторваться!!!
@liz2k
@liz2k Жыл бұрын
Я с большим удовольствием посмотрел (премьеру несколько недель назад) и блин насколько все доступно и интересно рассказано. А самое главное понятно! Прям плюсую!
@slimnino
@slimnino 4 жыл бұрын
лектор от бога!!! вся лекция на одном дыхании!!! супер!!! спасибо!!!
@user-ey9gs2xk2e
@user-ey9gs2xk2e 3 жыл бұрын
Спасибо!) Очень круто!
@dimovich85
@dimovich85 3 жыл бұрын
Супер круто! Спасибо!
@phat80
@phat80 3 жыл бұрын
Не знаю, кому как, но мне императивный стиль всегда понятнее, так как он наиболее близок к работе самого железа. Любая функциональщина уводит тебя от понимания того, как это на самом деле работает. Никогда не понимал, в чем же тогда простота функционального подхода. Код короче? Да. Проще ли для понимания? Большой вопрос.
@Iaxls
@Iaxls 2 жыл бұрын
пиши тогда на ассемблере) без обид, но как процедурщина может быть понятнее нежели декларативный подход
@user-sq7jx8ch6t
@user-sq7jx8ch6t 2 жыл бұрын
@@Iaxls слишком декларативно, только машинные коды, они ближе к работе железа
@theban2517
@theban2517 2 жыл бұрын
Если обобщить все статьи по фп, которые я читал, то вывод такой: фп это не про понятность и не про удобство. Фп это просто ряд жестких требований, которые (по идее) должны увеличить эффективность работы программы. За счет чистых функций и декларативного подхода мы получаем не понятность, а возможность их вызова в любом порядке и, как следствие, распараллеливание.
@shalidor1619
@shalidor1619 Жыл бұрын
Если твой код раздувается, и возвращаешься ты к нему через долгое время, то чтобы не читать тонны дерьма, ты просто смотришь на сигнатуру функций и их названия и клепаешь новые функции из старых. Если же твой код процедурный, то в тот момент, когда ты вернулся к нему, тебе проще переписать его заново, чем разбираться, как он работает.
@kookaburru
@kookaburru 2 жыл бұрын
Материал грамотный, без воды и хотя все это я уже знал, но всеравно удовольствием посмотрел :)
@user-ck8xo8pe9e
@user-ck8xo8pe9e 3 жыл бұрын
Чувак бомба, красавчик, все доходчиво, смотришь лекцию как кино :)
@ancoopa
@ancoopa 4 жыл бұрын
Офигенный докладчик. Спасибо. :)
@AlexeyNeklesa
@AlexeyNeklesa 4 жыл бұрын
Просто шикарный спикер ) Очень классный доклад!
@VYuhim
@VYuhim 4 жыл бұрын
Это было ахеренно! Аплодировал, когда он сказал: "Эпизод первый. Композиция" =)
@vladislavsnijko1669
@vladislavsnijko1669 4 жыл бұрын
он такой сказочный.. ))) И коалы грустят.. и код сложно отлаживать...
@swave2720
@swave2720 Жыл бұрын
Лайк за параметры и аргументы. сейм шит)
@yourbadapple
@yourbadapple 3 жыл бұрын
было полезно, очень круто объяснил, респект
@phat80
@phat80 3 жыл бұрын
Композэ - это пять! )))))
@onlytryhard80
@onlytryhard80 Жыл бұрын
Велеколепный доклад
@uM9nOJIb3OBATEJI9
@uM9nOJIb3OBATEJI9 4 жыл бұрын
Галат обучает ФП на JS. Смотреть без регистрации и смс.
@vladyslavvovk
@vladyslavvovk 3 жыл бұрын
как найти его?
@dielectric7265
@dielectric7265 4 жыл бұрын
10/10 отличная подача материала)
@user-fo4jm9tw9r
@user-fo4jm9tw9r 3 жыл бұрын
16:20 "Сейчас я выпью водички, потому что дальше будет интересно." ))))
@ryskin82
@ryskin82 3 жыл бұрын
Когда лекция о программировании превращается в философию не теряя контекста.
@user-cl3wb7zs6f
@user-cl3wb7zs6f 3 жыл бұрын
"Пойти пораньше домой, и любоваться на звёзды!" - Хорошо сказано!
@user-kd6mq4xf6f
@user-kd6mq4xf6f 3 жыл бұрын
Дуже цікаво слухати, я в захваті.
@feschenkoalex754
@feschenkoalex754 4 жыл бұрын
Классный лектор. Продуманно подошел к делу. Лайк
@AbasovIT
@AbasovIT Жыл бұрын
Отличное выступление
@orucqarayev4759
@orucqarayev4759 Жыл бұрын
Блин. какой классный диктор) какая страсть)
@kirillpavlovskii8342
@kirillpavlovskii8342 4 жыл бұрын
славный парень)) берем функцию кампазе))))
@user-ps2ge3cc5r
@user-ps2ge3cc5r 4 жыл бұрын
Здравствуйте всем, где можно найти слайды ?
@alexkol6814
@alexkol6814 3 жыл бұрын
Супер. 661 лайк уже. Еще 5 лайков и сам Сатана будет смотреть ету лекцию!
@myrichstory
@myrichstory 3 жыл бұрын
я 665-й поставил. Кто следующий?))
@pavell53
@pavell53 4 жыл бұрын
ссылки бы еще из лекции прикрепили.
@alexleshenko
@alexleshenko 4 жыл бұрын
О это то что надо пробежать)! Спасиб)
@me2beats313
@me2beats313 4 жыл бұрын
очень грамотная речь, единственный момент - английский бы получить:) но в любом случае выдающийся лектор!
@kurasaored2775
@kurasaored2775 4 жыл бұрын
Функция композе, мсье, ору 😂 В целом интересно
@sergiy0641
@sergiy0641 3 жыл бұрын
Не понял, сначала сказал, что код должен быть понятным, а потом начал объяснять всякие извращения/костыли про каррирование и пр., что только усложняет написание и понимание.
@Iaxls
@Iaxls 2 жыл бұрын
функцию карри или композ, вы пишете один раз, или вообще берете из готовой библиотеки, важно просто понимать как она работает и какой профит дает. В хаскеле каррирование идет вообще из коробки. Но благодаря этим инструментам вы можете писать понятный, декларативный код, который очень легко отлаживать и дополнять.
@user-kn6vr7el8y
@user-kn6vr7el8y 3 жыл бұрын
Лектор просто супер!)
@A_A_A182
@A_A_A182 Жыл бұрын
Тяги бархатные)
@user-mr8qm3tw5p
@user-mr8qm3tw5p 4 жыл бұрын
Хорошая подготовка. Мне бы столько текста наизусть не выучить.
@rusmemes
@rusmemes 3 жыл бұрын
это какая-то реинкаранация Дроздова??
@pantafive
@pantafive 3 жыл бұрын
Спикер - боженька!
@4932
@4932 3 жыл бұрын
Дядюшка Ау)
@ruslanm.1120
@ruslanm.1120 3 ай бұрын
(...Продолжение следует) 😊
@martovskyy
@martovskyy 3 жыл бұрын
Сказочная атмосфера)
@ruslanm.1120
@ruslanm.1120 3 ай бұрын
Подскажите где ссылка на презентацию?
@user-zp9iq1po5o
@user-zp9iq1po5o Жыл бұрын
Рассказано о ФП в декларативном стиле - увеличивая скорость воспроизведения массив данных не теряет длину...
@kriskaruzo1398
@kriskaruzo1398 4 жыл бұрын
я так понял будет продолжение
@vitaliytikhonov3168
@vitaliytikhonov3168 3 жыл бұрын
"мы берём функцию композЭ"))))
@alexdang2357
@alexdang2357 3 жыл бұрын
лучший!
@user-zh5fx1zh5c
@user-zh5fx1zh5c 2 жыл бұрын
падает падает падает снег, снег летает, снег кружится
@beyond6596
@beyond6596 3 жыл бұрын
Про бабашку и порше было очень эпично)))
@warcraft.mp4889
@warcraft.mp4889 2 жыл бұрын
Не знал что галат на jse пишет
@vladimir2289
@vladimir2289 3 жыл бұрын
Лектор топ!
@phat80
@phat80 3 жыл бұрын
Наверное первый лектор, который пьет воду во время выступления прилично, не хлебая и не глотая звучно прямо в микрофон, транслируя свою физиологию на слушателей.
@valentynratov7104
@valentynratov7104 3 жыл бұрын
Подскажите, как зовут лектора? Есть ли у него еще видео?
@MrElchenkov
@MrElchenkov 4 жыл бұрын
Как зовут этого чувака?) это просто лучший it спикер в мире)
@user-hs4ci1oz3n
@user-hs4ci1oz3n 4 жыл бұрын
vjlink уже программист
@nikitaosadchuk1467
@nikitaosadchuk1467 3 жыл бұрын
компазЭ)
@user-sq3nn5wq3z
@user-sq3nn5wq3z 4 жыл бұрын
20 лет жил, 20 лет не верил в любовь а тут...
@nickpravda3249
@nickpravda3249 3 жыл бұрын
Функции это кубики лего из которых мы конструируем легаси
@user-yi9gy4cz7n
@user-yi9gy4cz7n 2 жыл бұрын
Очень круто. Но ничего не понятно.
@Gans_Kitchen
@Gans_Kitchen 3 жыл бұрын
Смотреть на скорости 1.25!!!
@phat80
@phat80 3 жыл бұрын
1,5 минимум!
@sense3247
@sense3247 3 жыл бұрын
я смотрел на скорости 2.0
@Mathemat1cs-1
@Mathemat1cs-1 3 жыл бұрын
а вот мой друг говорит что программирование без матем возможно )) эх жалко мне его
@pnlabs
@pnlabs 2 жыл бұрын
Чёрт, у меня табак и уголь закончились, надо пойти купить, иначе слушать невозможно :)
@lamer7905
@lamer7905 3 жыл бұрын
Почему он так смешно говорит? Шабанул чтоли
@user-dr3ed7ed5k
@user-dr3ed7ed5k 8 ай бұрын
Послушать рассказ - пойдет, понять тему - ни в коем случае, все эти абстрактные аналогии с "приматыванием" только путают информацию в голове и отдаляют от понимания механизма и синтаксиса.
@palyanytsia
@palyanytsia 4 ай бұрын
композэ, кьюайкью
@mikhaildevichensky6407
@mikhaildevichensky6407 3 жыл бұрын
Хочу к нему в падаваны
@BlindPewRus
@BlindPewRus Жыл бұрын
Похоже я тут один не в восторге от подачи.
@radislaw
@radislaw 3 жыл бұрын
Вернуть сразу булево выражение - НЕЕЕТ. Использовать тернарник, чтобы вернуть true или false - ДААА
@AquaDiskoteque
@AquaDiskoteque 3 жыл бұрын
45:37 ({a, b, ...rest} = {a:1, b:2, c:3, d:4}); это деструктуризация объекта. А он spread показывает и делает иммутабильную копию, однако деструктуризация это вытягивания из объектов, функций и создания поля переменных или MDN YDKJS и Фелиган врёт?
@sashasagan2510
@sashasagan2510 4 жыл бұрын
А что за умные ребята придумали лямбда-исчисление? Всегда думал что её Алонзо Чёрч разработал.
@rustonelove
@rustonelove 4 жыл бұрын
У тебя проблемы с методичкой - чини. Придумали имеет контекст "сейчас", т.е. говорится о теории в её текущем состоянии и тех, кто её до этого состояния продвинул. Так же, о лямбда-исчислениях говорится именно в контексте данной области. Тот, кто их придумал и развивал в рамках другой области мало кого волнует.
@user-pw4bh3ll5z
@user-pw4bh3ll5z Жыл бұрын
так в почему не написал функцию curry как она выглядит-то? смысл тогда от этой болтовни
@user-pw4bh3ll5z
@user-pw4bh3ll5z Жыл бұрын
function curry(func) { return function curried(...args) { if (args.length >= func.length) { return func.apply(this, args); } else { return function(...args2) { return curried.apply(this, args.concat(args2)); } } }; } вот это говно
@ElenaElena-st1mg
@ElenaElena-st1mg 3 ай бұрын
зачем учить функциональное программирование , работают же на другом виде?
@rustonelove
@rustonelove 4 жыл бұрын
Кстати, ещё кое что важное. Сектант начала рассказывать про каринг/частичное применение. Правда он не рассказал зачем и почему, но это норма для сектантов. А важное тут то, что вся эта теория прорабатывалась ещё до привычных в скриптухе лямбд. arg => f(arg, const); - написать быстрее и проще, чем пердолинг с базовой методичкой. Здесь можно рассказать о "а если у меня много аргументов - все перечислять?" - нет. Потому как базовая методичка на самом деле ни о чего не спасает(на самом деле то, о чём говорит сектант протухло лет на 30. И там уже давно пытаются закостылить решения, но сейчас я не об этом). Причина проста - методичка позволяет либо добавлять аргументы к функции последовательно. Я не могу передать средний аргумент. Там, конечно же, сектанты сразу начнут орать "Да твоё api говно", но это лишь попытка снять с себя ответственность. Все эти показанные вам фокусы - работают только потому, что заранее созданы под методичку. Созданы такими, что-бы работать. В реальности же это работать не будет и не работает. За примерами можно сходить в любой код сектантов. Там будет либо прикрученные аргументы через объект, либо через лямбду.
@user-dn7qr7vs1h
@user-dn7qr7vs1h 4 жыл бұрын
От тебя возлюбленная ушла к ФП-шнику? Откуда такая озабоченность функциональщиной?😅 Больше года назад видел твои простыни ругательств под другими видео про ФП. Ну точно что-то личное 😂
@rustonelove
@rustonelove 4 жыл бұрын
​@@user-dn7qr7vs1h Кто вообще может уйти к подобным опущенцам? Я в окно выйду, если даже такая вероятность появится. >Откуда такая озабоченность функциональщиной? Чини методичку. Озабоченность есть у убогих - засирать эфир своими бездарными потугами. Ну и так уж получилось, что эфир общий. Это не моя вина, а их. Сами убогие меня не заботят - меня заботит то, что они каким-то образом вылезли из своих помоек туда, где их вижу я. И то, что они пытаются нападать на детей, которые по-сути беззащитны. К тому же, причём тут ФП? Я не разделяю сорта поехавших. И для меня первично то, что сектант врёт, а уже как и о чём конкретное и какой секты он является адептов - это уже после. В любом случае - хочешь со мною поспорить - пытайся. Не можешь? Зачем приходишь со своей нелепой шаблонной хернёй? Она не работала и работать не будет.
@AquaDiskoteque
@AquaDiskoteque 3 жыл бұрын
Я если честно тоже из доклада яндексойда нихуя не понял. Так, а если в js фун-ии это спец объекты с внутренними методами тогда о какой чистой Фп говорим, я тоже нихуя не понял.
@redhook777
@redhook777 Жыл бұрын
@@AquaDiskoteque а какая разница что под капотом? В js все объекты(кроме примитивов). Это не отменяет функциональных возможностей js
@AquaDiskoteque
@AquaDiskoteque Жыл бұрын
@@redhook777 или всё примитивы, кроме объектов. ебашьте в хаскель и будет вам счастье
@graezzywormz1438
@graezzywormz1438 3 жыл бұрын
Блядь а в Яндексе все такие душные? Куча ненужной воды. Программисты котики, смотреть на звёзды? Это на кого направлено? На маленьких девочек?
@whiteguards43
@whiteguards43 2 жыл бұрын
Болтун! Какие то сравнения приводит с внешним миром, вместо 5 минут, на 50 минут продлил
@rustonelove
@rustonelove 4 жыл бұрын
Каждый раз эти сектанты повторяют одну и ту же мантру. В целом, если кто-то начинает заливать про "декларативно" - сразу нужно понимать - в профессию пациент попал чисто случайно. Для тех, кто не понимает - объясняю. Во-первых пациент подменяет понятия не осилив семантику языка. ЯП описывает какой-то процесс, не важно как и что сектант называет - это никогда не изменится. И в данном случае процесс - это просьба к мамке, который должен быть описан. Сектант ни от какого императивного не ушел. Это банальная манипуляция. Во-вторых сектант сам себя загнал в ловушку следующей потугой. "мука" уже декларативное понятие. "возьми пеперони" - здесь тоже самое. По-сути сектант взял то, что он выше выдавал за декларативно уже выдаёт за императивно. А что такое мука? А почему её кто-то должен брать? Это базовые вопросы, которые поломают данного пропагандиста. На самом же деле всё очень просто. Процессы уплотняются. Вначале есть "замеси тесто" и процесс описывается в рамках одних примитивов. Далее происходит уплотнение и тесто само становится примитивом. Так же существует разделение труда и каждый занимается созданием примитивов на своём уровне - на этом сектант изначально и попался. Поэтому как только сектант возьмёт любое декларатитивно - он будет описывать императивно новый примитив, который уже для пользователя этого примитива будет декларативен. Т.е. никакого разделения нет и быть не может. Это попросту разных взгляд на одно и тоже с разных уровней.
@alexpipin3693
@alexpipin3693 4 жыл бұрын
чувак ты ноунейм который говорит всем, что земля плоская, хотя уже все доказали и объехали землю 10 раз, если ты действительно настолько умен, так докажи делом, если нет, ты обычный забитый тролль
@rustonelove
@rustonelove 4 жыл бұрын
14:40 - сектант решил зайти с козырей. Никаких проблем с этим в строгой типизации нет - меньше слушай херни. И в том и проблема, что в жс"е с этим проблем нет, потому как жс скриптуха. Это базовые свойства скриптухи. На уровне реализации функция и не-функция ничем не отличается друг от друга. По этой причине она и не отличается и на уровне языка.
@Renton1428
@Renton1428 4 жыл бұрын
Из вас двоих на сектанта здесь больше похоже вы
@rustonelove
@rustonelove 4 жыл бұрын
@@Renton1428 Обосновывай потуги.
@maksimka07031997
@maksimka07031997 4 жыл бұрын
@@rustonelove подача твоих комментариев за тебя говорит. Вместо того, чтобы адекватно расписать, где автор неправ, ты агрессивно критикуешь, как типичный ПГМ, когда кто-то говорит, что бога нет.
@rustonelove
@rustonelove 4 жыл бұрын
​@@maksimka07031997 Меня не интересуют потуги опущенных сектантов. К тому же, именно это можно применить к тебе, ведь именно ты и автор ПГМнутый сектант. Потому как это базовая защита сектантов "ты меня обижаешь, окорбляешь, а не критикуешь". Никакой ПГМ замечен в агрессивной критике не был. Как раз таки всё наоборот. Агрессивно критикуют ПГМ. К тому же я адекватно написал где автор не прав. А далее прибежал дошколёнок, который ничего не смог на мою критику ответить и начал ретранслировать дефолтную херню "да ты не прав, потому не прав", "да ты не прав, потому что такой" и прочее. Заметим, что отличии от этого убого я называю сектантов сектантами, но при этом я объясняю и доказываю почему это так. Данное убожество прибежало, назвало меня сектантом и всё. Т.е. оно сделало то в чём меня обвинило, но при этом я сам указанного в обвинение не делал и сектант не смог этого продемонстрировать. И самое важное - сектант даже в своих потугах запутался.
@maksimka07031997
@maksimka07031997 4 жыл бұрын
@@rustonelove хорошо, как скажешь. Но по количеству комментариев и их объему не похоже, что тебе все равно, что "сектанты" скажут. Брехливого пса не перелаешь, я и не буду пытаться.
@user-gf9qe9im7r
@user-gf9qe9im7r 2 жыл бұрын
Какое-то днище честно говоря. Очень много воды, минимум конкретики, тупые приколы не по делу. Автор хотел сделать интересно и в принципе получилось интересно, но это не про программирование, это видео получилось про тупые шутки, про отвлеченные темы
@rustonelove
@rustonelove 4 жыл бұрын
46:00 - вот она, вся сила пропаганды. "немножно упадёт". Во-первых начнём с того, что если в вашей программе есть ФП - производительности там нету в принципе. Во-вторых сектант сам себе противоречит. Если упадёт "немножно" - зачем заморачиваться и делать специальные либы? Ой. оказывается множно и пропагандист попытался всех обмануть? Ну это уже норма. И самое интересное. Сектант рассказывает про преимущества иммутабельности показывая мутабельные либы, которые лишь дают маня-иммутабельный интерфейс. И теперь угадайте - что будет, если мы попытаемся расспаралеллить код использующий эту либу? Ой, у нас появляется глобальное состояние, которое постоянно мутируется.
@daedaliusX
@daedaliusX 4 жыл бұрын
Что думаешь о www.npmjs.com/package/object-path-immutable ? На проекте мы его успешно применяли с Redux как компромисс между иммутабельностью и использованием библиотек вроде ImmutableJs. > что будет, если мы попытаемся расспаралеллить код использующий эту либу? Можно пример для реалий JS?
@AbraKadabra000
@AbraKadabra000 4 жыл бұрын
Мне кажется эти пропагандоны ФП, набежавшие в наш уютный жс из своих говноязыков, сильно лажают с жс, и поэтому предполагают, что будут лажать меньше. если заюзают ФП внутри. Они таким образом пытаются заявить о своей нужности.
@rustonelove
@rustonelove 4 жыл бұрын
Композиция не имеет никакого отношения к ФП. Действительно в математике была "линейная" обратная запись, но никакой практико-применительной теории за ней не стояло и чейнинг в том же хаскеле не является наследием той записи. Вся теория была проработана в юниксе, ооп и прочем. В первом пайпы, а во втором чейнинг. Причём и то куда более состоятельная концепция, потому как позволяет не только выход объединять со входом, но и конфигурировать каждую стадию дополнительно. У сектантов есть попытки решить эти проблемы через частичное применение/каринг. Но в любом случае это костыли прикрученные сверху после того, как натягивание базовой концепции провалилось. Само частичное применение и каринг во многом противоречат базовой фп-методичке и являются просто альтернативными сектантскими названиями того, что было везде и всюду. Единственное, что там во многом путает людей - это именно скриптушная природа ФП. Поэтому когда сравнивается ФП и императивщина - нужно сравнивать одно и другое. А люди в основном склонны сравнивать скриптуху и статические языки. Так делать ненужно.
@alexanderkartavtsev8865
@alexanderkartavtsev8865 4 жыл бұрын
надеюсь, ты доволен собой?
@daedaliusX
@daedaliusX 4 жыл бұрын
@@alexanderkartavtsev8865 А вы собой довольны? К чему вопрос? Предлагаю вести конструктивный диалог. Twinkle где-то нас обманывает, не договаривает?
@alexanderkartavtsev8865
@alexanderkartavtsev8865 4 жыл бұрын
@@daedaliusX конструктивный диалог с человеком, который использует слова "опущенный", "поехавшие", "завывания сектантов"? Позвольте отказаться от такого диалога
@danzankekshaev5742
@danzankekshaev5742 3 жыл бұрын
Я прекратил просмотр, когда он сказал "берем функцию композе..." 20:35
@danzankekshaev5742
@danzankekshaev5742 3 жыл бұрын
как человек может работать в яндексе и говорить КОМПОЗЕ!
@MaxLimas
@MaxLimas 3 жыл бұрын
@@danzankekshaev5742 От этого человек становится менее программист? Или может методы перестают работать? Пофиг кто как называет, ибо всё равно ясно о чём речь.
@danzankekshaev5742
@danzankekshaev5742 3 жыл бұрын
@@MaxLimas это показатель его общего образования, английский язык имеет огромное значение для программиста, сегодня он говорит кампазе, а завтра не так прочтёт документацию
@Chpokman41
@Chpokman41 3 жыл бұрын
@@danzankekshaev5742 как "композе" показал тебе "показатель общего образования"?
@phat80
@phat80 3 жыл бұрын
@@Chpokman41 я тут не занимаю чью-то сторону, так не знаю, может чел хорошо знает немецкий или испанский, но знание хотя бы одного иностранного языка это показатель образованности все-таки. Если человек считает себя образованным, то иностранный язык неплохо бы знать, хотя бы один и хотя бы на базовом уровне. Ну не может просто такого быть, что у него в школе или институте не было иняза, особенно учитывая его возраст. Для меня всегда странно видеть в современном мире человека, который не знает никакого языка кроме родного. Ведь программа любого учебного заведения включает иняз, что было стандартом еще при СССР.
@rustonelove
@rustonelove 4 жыл бұрын
Открою ещё одну тайну - адептам пропаганда рассказывает, что типизация имеет какое-то отношение к ФП. Но нет, опять обманули. Когда ФП сидело с голой жопой и лиспом(без всяких там сигнатур, типизаций, массивов, функций) - в императивнище уже была типизация. ФП всегда относилось к классу скриптухи. Т.е. к динамической типизации, к gc и прочим прелестям. От того там и взялись все эти функции высшего порядка и прочее. На самом же деле это просто свойства скриптухи. Когда у тебя gc и динамическая типизация - у тебя никаких не проблем с замыканиями, локальными функциями и прочим. И уже из скриптухи всё это перекочевало в ФП.
@rustonelove
@rustonelove 4 жыл бұрын
41:50 - сектант врёт. Чистые функции не используют исключений - это самое основное. Но сектант вам об этом не сообщил. По-сути в контексте жабаскрипта не может быть чистых функций. Когда кто-то вам говорит об обратном - это клоун. Самое смешное, что та функция, которую пропагандист выдавал за чистую - не чистая. Причём на фундаментальном уровне. Но не понимать очевидных вещей - норма для залётных пропагандистов. Почти всегда в жабаскрипте эта функция будет возвращать nan, а nan != nan. sqr("a") === sqr("a") === false. Поломалась чистота. Причём никакие разговоры про "а вот у нас тайпскрипт" не работают - нан - это number и может получиться из двух не-нанов. Про исключения я уже сказал. Почти любая функция, даже (a, b) => a + b - имеет побочный эффект.
@johnstrayk5208
@johnstrayk5208 3 жыл бұрын
А какой побочный эффект?
@rustonelove
@rustonelove 3 жыл бұрын
@@johnstrayk5208 to_string
@johnstrayk5208
@johnstrayk5208 3 жыл бұрын
@@rustonelove можете подробней пояснить?
@rustonelove
@rustonelove 3 жыл бұрын
​@@johnstrayk5208 + может триггерить to_string. const a = {toString() {throw new Error(); } }; const b = 123; a + b;
@johnstrayk5208
@johnstrayk5208 3 жыл бұрын
@Printer я тоже нихера не понял)
@rustonelove
@rustonelove 4 жыл бұрын
40:00 - опять можно заметить шизофрению сектанта. Лозунги вида "это плохо потому что плохо". Какое отношение глобальные переменные имеют к сайд-эффектам я не знаю. Да и сектант сам не знает. Он взял это из базовой методичке, но ему не рассказали, что он сел в лужу. Потому как современная фп-методичка не считает глобальные переменные за сайд-эффекты. Причина проста и сектант опять сел в лужу. Да, в первых методичках были параметры и аргументы, но потом сектанты поняли, что это слишком говно и нужно внешнее состояние. И оно уже было в скриптухе - замыкания. Т.е. захват внешних переменных в тело локальной функции. Захват глобалов был всегда. И по-сути глобальные переменные и являются теми самыми замыканиями. Таким образом внешнее состояние является легитимным, если оно иммутабельно. На самом деле сектанты и здесь селе в лужу. Иммутабельность не состоятельна. Поэтому сейчас глобальное состояние может быть мутабельным - главное обеспечить семантическую иммутабельность. Каждая секта трактует это по своему и объяснить где начинается и где заканчивается эта семантика - невозможно. Но для простоты можно сказать так "с большей долей вероятности внешнее состояние не может влиять на результат исполнения функции, а функция на внешнее состояние".
@daedaliusX
@daedaliusX 4 жыл бұрын
Он про это чуть позже рассказал на примере числа PI 41:45
@hino2
@hino2 3 жыл бұрын
Без обид, но лекция херня. Подача материала рваная, перескакивает туда сюда, уследить сложно, понять еще сложнее, воспринять - невозможно. Не представляю ЧТО вынесут из аудитории у себя в головах все слушающие.
@rustonelove
@rustonelove 4 жыл бұрын
3:30 - пошла невероятная шизофазия. Первая проблема сектант - он жертва пропаганды. Т.е. такое понятие как "создаём новый массив" - это уже требование его секты. В "императивном стиле"(который существует только в фантазиях адепта данной секты) так никто не пишет. Ну и да, массивов не существует в ФП - пусть сектант изучит базовые методички. Вторая проблема - сектант не может мыслить. У него в голове каша. Он не понимает разницу между функцией, функциональным и прочим. Самое смешное тут то, что это не функция в контексте ФП и вообще никаких методов в ФП нет и быть не может. Третья проблема - сектант запутался. Он берёт лоулевел логику и сравнивает с хайлевел. Причём никаким образом сектант не объясняет - почему одно декларативно(и фп), а другое нет. Ведь там есть метод push - чем он отличается от filter? Очень просто это понять на примере for. Здесь сектант использует for, а не for of. Т.е. наличие здесь переменной - это следствие использование более общей, более лоулевел конструкции. И императивно точно так же можно использовать for of и переменной не будет. Т.е. сектант наврал. Тоже самое со всем остальным. Был бы сектант не залётный, а более компетентный - он бы зашел по нормальной методичке. Типа filter является функцией высшего порядка и такое свойственно и исходит из ФП. И какие-то неофиты зелёные в это даже поверят. Но, по очевидным причинам, это полная чушь. В императивщине всё это было тогда, когда у ФП была голая жопа и лисп(не особо от голой жопы отличается).
@AbraKadabra000
@AbraKadabra000 4 жыл бұрын
аплодирую стоя
@HOTBOY9961
@HOTBOY9961 4 жыл бұрын
та в яндексе одни бездари, тебе на голере где то в воронеже виднее оно и понятно
@rustonelove
@rustonelove 3 жыл бұрын
@Printer t me proriv_zaparti
@rustonelove
@rustonelove 3 жыл бұрын
@Printer - мне лень что-либо писать очередному дошколёнку в этой помойке.
@rustonelove
@rustonelove 4 жыл бұрын
43:30 - каждая минута повышает накал шизофазии. Мало того, что сектант как преимущество чистых функций назвал мемоизацию, которая не-чистая и ломает эту чистоту для функции. Дак ещё он обманул аудиторию. Дело в том, что моизация - это та самая несотоятельность чистоты и иммутабельности о которой я говорил. Это говно не может быть быстрым, поэтому что делают сектанты? Они берут своё говно, которое тормозит и прикручивают к нему мутабельные хаки. Дело в том, что вне ФП никто и никогда эту функцию бы не вызывал от одних и тех же аргументов 10 раз. И эти функции не тормозили бы, как тормозит ФП. Т.е. по-сути сектант вам за преимущество сектанта то, что в комплекте с ним идёт чистилка для дерьма, которым он всё обмажет в твоём доме. Но подожди. Если у меня бы не было сектанта - у меня бы не было дерьма и мне бы не нужно было ничего чистить. В общем такое оно - ФП. Просто нелепые потоки шизофазии и невежества.
@daedaliusX
@daedaliusX 4 жыл бұрын
Но погоди, никто же не заставляет использовать мемоизацию на каждый чих. Это раз. Два - как и в случае с sort что плохого использовать любые хаки под капотом, получая на выходе сущности, которыми ты хочешь оперировать?
@rustonelove
@rustonelove 4 жыл бұрын
42:30 - ой, а тут у нас пропагандист запутался в показаниях. Глобальная переменная же делает функцию нечистой, а теперь вдруг какая-то константность появилась? Ну и в целом как-то быстро он убежал от сайд-эффектов. Просто лозунг вкинул и в кусты.
@user-yq9on6zp7n
@user-yq9on6zp7n 3 жыл бұрын
Полный писец подачи. Пример зас... мозгов
@rustonelove
@rustonelove 4 жыл бұрын
40:00 - здесь сам сектант показывает то, о чём я говорил. Здесь можно сказать, что он умножил свои потуги на ноль, но это норма для сектантов. Ведь он мутирует копию и нарушает своё же условие. Здесь остаётся уповать на то, что "здесь copy точно никто не использует, а вот с fruits не всё так однозначно" - только это обман. Опять же здесь спасёт только заинлайненный в выражение объект. Но это не является общим решением. В конечном итоге в реальности никакого явного разделения нет. И хрен ты разберёшься кто и где и что использует. По этому в том же хаскеле и другой минимально следующей методичке фп-дристне - подобного кода быть не может. sort() как функция с сайд-эффектом не может возвращать массив. По определению. На самом деле эта концепция так же не состоятельная. Она начиналась как какой-то контроль сайд-эффектов. Ситуация там примерна та же, что в жабаскрипте с промисами. Далее там прикрутили всякого сахара типа async/await и теперь уже всех похрен. Там пол программы в этих монадах, либо ансейф-кастах. И никакого контроля не получилось.
@rustonelove
@rustonelove 4 жыл бұрын
11:00 - какую же херню несёт этот пропагандист. Функция в программировании никакого отношения к функции вне программирования не имеет. Когда кто-то начинает нести херню про "процедуру", про "не возвращает" - это уже клоун по определению. Достаточно посмотреть на то как он начал мямлить про какие-то бабкины вместо ответа на вопрос "почему?". Какой-то идиот эту херню написал в википедии и теперь сектанты её повторяют. Понятия "процедура" вообще никогда не существовало как антипод функции. Это просто где-то кто-то родил новый базворд, который сдох тут же по причине простой - унификация. Уже существовал базворд "функция" и он использовался и в академической среде и в программировании. В основном всё это засилие каких-то процедур после 60х - результат засилия паскаля и древних базвордов в 90/00 годах. В императивщине ещё с фортратна и уж тем более с си - функции были и возвращали значения. И если до си ещё были какие-то разночтения в базвордах в мейнстриме, то после уже нет. В конечном итоге - функция без return существует и такой она всегда была. Никакого разделения на функции/процедуры нет - сектант выдумал эту херню. И function в js значит именно то, что значит.
@rustonelove
@rustonelove 4 жыл бұрын
8:40 - пациент опять запутался в пропаганде. Опять же - он сравнивает css/sql и ЯП. Даже забудем о том, что sql он потрогал зря и это его похоронит. Это уже какая-то шиза, но дело не в этом. Возвращается к тому, что я писал ранее. Сектант показывает button и что же реально он показывает? Он показывает именно императивное описание того как кнопка должна выглядеть. На уровне свойства ширина мы действительно говорим "ширина столько же". Но на этом уровне не это наша задача. И вот никак декларативно сказать "это кнопка" мы не можем. Точно так же как на уровне sql - мы чётко описывает то, каким образом получить нужные нам данные. Описываем всё императивно. Где же тут "мамка дай пиццу?" А нету. И в этом проблема сектантов залётных - они несут откровенную херню. Несут в той области, где ЦА крайне слаба. Это веб, это js, это фротенд.
@aksenoff
@aksenoff 4 жыл бұрын
Назвать SQL полностью императивным языком может только неуч, либо тролль. Ты сеешь терминами направо и налево, так что я больше склоняюсь ко второму варианту. Спешу огорчить: твои многобуквенные простыни прочтут полтора землекопа, и это даже хорошо, потому что та их часть, которую я осилил, состоит на 75% из спорных и субъективных суждений. Докладчик же, "сектант", нарочито примитивизирует свой рассказ, чтобы сделать его максимально доступным. Да, фронтендеры часто не блещут эрудированностью, в этом и смысл такого подхода. Но это не значит, что им не нужны удобные примы из ФП, которые и в JS были привинчены с подобной целью. Обычно я не пишу ответы к троллингу, но объем натролленного вызывает смесь уважения, кринжа и сожаления о потраченном тобой времени. Давай по-новой, Миша, все херня.
@TDmitry412
@TDmitry412 4 жыл бұрын
Завязывайте курить Ролтон, иначе совсем подсядете на майонез )
@rustonelove
@rustonelove 4 жыл бұрын
44:00 - очередной сеанс шизофрении. Пропагандист вбрасывает лозунги даже не пытаясь в какое-либо обоснование. Кешируемость никаким образом не зависит от чистоты. Та херня с момизацией - убогий костыль для самой чистоты. Вне чистоты этой проблемы нет. Сама момоизация лишает функцию чистоты. Любой кеш мутабельный. Опять же простота - основания? А нет оснований. Ссылочная прозрачность. Тут нас сектант зачитывает первую строчку из википедии, которая ничего не значит. Она не является преимуществом сама по себе и сектант не учитывает то какими затратами она достигается. Легко тестировать - это полная херня. Это всё работало давно, когда глобальное состояние в любом виде не было легитимным. Сейчас это не так. И любая функция зависит от глобального состояния. Т.е. нельзя протестировать отдельную функцию, потому как она объявлена в контексте другой функции и на явно захватывает состояние оттуда. К тому же, никаких чистых функций в принципе не существует.
@daedaliusX
@daedaliusX 4 жыл бұрын
> Кешируемость никаким образом не зависит от чистоты. Но ведь кеширование в это виде элементарно реализовывать, не? > Мемоизация - убогий костыль для самой чистоты Смотрел на кеширование как на средство повышения производительности. То что под капотом юзаются хаки как раз может волновать только фанатиков. > Не учитывает то какими затратами достигается ссылочная прозрачность. Ой, всем пофиг пока оно не тормозит. Возьми тот же Redux который большинство использует просто по причине наличия React в проекте. ИЧСХ нормально работает даже на мобилках если совсем уже голову не отключать при написании кода (например триггерить Redux с валидацией на каждый onChange). > Легко тестировать - это полная херня. Приведи пример что тестируется легче чем чистая функция. > Нельзя протестировать отдельную функцию, потому как она объявлена в контексте другой функции и на явно захватывает состояние оттуда. Ты имеешь ввиду, что сложно доказать корректность работы программы (чем никто не занимается если речь не идет от отправке людей за пределы Этой Планеты). А вот тестировать как раз очень легко. Достаточно программу составлять из модулей, а не писать всё в одной простыне.
@rustonelove
@rustonelove 4 жыл бұрын
​@@daedaliusX >Но ведь кеширование в это виде элементарно реализовывать, не? Не. Оно здесь и ненужно. >Смотрел на кеширование как на средство повышения производительности. ФП, чистота и прочий мусор не способны к производительности. Зачем делать говно, что-бы потом его исправлять? К тому же, никакого повышения производительности нет. Изучи букварь. Мутация сама по себе кеширование. Ты читаешь значение, которое обработчик мутирует. В фп обработчик не может мутировать и обязан вызываться на запрос значения. А далее путём костылей это пытаются вернуть. >То что под капотом юзаются хаки как раз может волновать только фанатиков. Нет, просто ты нихрена не понимаешь. >Ой, всем пофиг пока оно не тормозит. Ты бы так не позорился. Напомню контекст данному гению "у нас тормозит - мы добавили говнолибу, что-бы она не тормозила и которая решает проблему" и далее ответ "не решает - это обман". И тут мамкин гений в комментах мне отвечает "пока оно не тормозит". Ты осознаешь несколько нелепую херню несут боты типа тебя? >Возьми тот же Redux который большинство использует просто по причине наличия React в проекте. Нет, это говно используется потому, что пропаганда внушила адептам его использовать. Потому что в реакте существует фатальный недостаток. А говнукс прикрученный добавляет к нему сайд-эффекты. >ИЧСХ нормально работает даже на мобилках Нет, очевидно. >если совсем уже голову не отключать при написании кода (например триггерить Redux с валидацией на каждый onChange). И тут же оказывается, что всё что было выше сказано - ложь. Уровень. Твои познания крайне скудны. >Приведи пример что тестируется легче чем чистая функция. Тебя поимела пропаганда. Никакой чистой функции там нет. Почему вы, бездарные сектанты, все настолько тупая? Сектанту внушили какой-то лозунг и он повторяет, ведь он бот. >Ты имеешь ввиду, что сложно доказать корректность работы программы (чем никто не занимается если речь не идет от отправке людей за пределы Этой Планеты). А вот тестировать как раз очень легко. Достаточно программу составлять из модулей, а не писать всё в одной простыне. Ты опять опозорился. Вначале были функции, а теперь уже каике-то модули. Уровень шизофазии просто поражает. Тебе сообщают о том, что в рамках базовый методички захваченные переменные не нарушают чистоты. Давай попроще. У тебя есть функция (a, b) => f(a, b, c, d, f) - это самое простое. Как мне протестировать функцию f? Она же чистая. Ой, ты обделался. Потому как жертва пропаганды. Для того, что-бы протестировать функцию f - нужно его получить, для этого нужно сгенерировать аргументы для порождающей её функции, а так же обеспечить ей необходимой контекст(в котором существуют переменные c d f и с необходимыми данными). Поэтому для тестирования любой чистой функици нужно так же поднимать её окружение. Единственное, где не нужно - это для функции верхнего либо без аргументов(что не имеет смысла), либо с примитивными аргументами. Потому как любой аргумент - это такое же окружение, которое нужно поднимать.
@rustonelove
@rustonelove 4 жыл бұрын
4:25 - забыл про самое важное. Распалелливание. Это так мило, когда залётный жабаскрипт-пропагандист, который нихрена не знает, вбрасывает что-то аудитории, которая так же нихрена не знает. Кто не понял. Я уже давал части ответа. Дело в том, что уже давно чистота является не фактической, а семантической. А когда мы говорим о параллелизме - мы говорим о фактической чистоте. Т.е. сектант вас попросту обманул. Но самое интересное тут то, что несмотря на все завывания фп-сектантов - развитие параллелизма там находится в зачаточном состоянии. Сам параллелизм вообще не может быть выражен в рамках ФП. Если проще - сектанты орут о "просто расппаралеливать", но в реальности ни у кого из сектантов этой параллельности нет. Я даже больше скажу - почти все сектантские недоязычки многопоточность вообще не поддерживают. Тот же ml во всех его проявлениях. Да вообще ничего нет. Там до сих пор fork из 90х годов.
@user-ks7sy2mi1b
@user-ks7sy2mi1b 4 жыл бұрын
я нихрена не понял, но ты не понял
@rustonelove
@rustonelove 4 жыл бұрын
@@user-ks7sy2mi1b Чего?
Продвинутый JavaScript
1:39:36
Yandex for Frontend
Рет қаралды 97 М.
Чудовищно функциональный JavaScript
21:31
Как пройти в IT?
Рет қаралды 54 М.
I wish I could change THIS fast! 🤣
00:33
America's Got Talent
Рет қаралды 82 МЛН
NERF WAR HEAVY: Drone Battle!
00:30
MacDannyGun
Рет қаралды 24 МЛН
React: монтируй, демонтируй, обновляй
1:24:33
Yandex for Frontend
Рет қаралды 46 М.
16. Продвинутый JS - Григорий Бизюкин
1:39:38
Yandex for Frontend
Рет қаралды 30 М.
Андрей Мелихов - V8 под капотом
59:57
Какой полиморфизм в JavaScript?
14:43
S0ER
Рет қаралды 16 М.
03. Асинхронность в JS - Григорий Бизюкин
1:08:39
Yandex for Frontend
Рет қаралды 53 М.
Изучи JavaScript за 5 минут в 2023
5:33
Александр Буртовой
Рет қаралды 62 М.