-------------------------------------------------------------- Чеининг ---------------------------------------------------------- 00:00:00 Введение 00:01:10 Чеининг через синтаксис вызова функций 00:02:12 Prototype 00:05:45 Сlass 00:06:11 Functor 00:11:54 Mutable 00:16:34 Iterator 00:26:18 Promise 00:26:35 Test 00:37:08 Compare 00:39:45 Benchmark 00:40:48 Запуск и анализ тестов ---------------------------------------------------- Обработка ошибок -------------------------------------------------- 01:03:48 Первый способ возвращение ошибок в синхронном коде 01:09:24 Второй способ возвращение ошибок в синхронном коде 01:12:26 Возвращение ошибок в асинхронном коде 01:16:14 Корректное возвращение ошибок 01:20:03 Обработка ошибок c promise 01:23:58 Обработка ошибок c async-await
@ИгорьКудряков-л3я3 жыл бұрын
Во время просмотра всегда ловлю себя на мысли - насколько Вы точно, коротко и ясно выражаетесь. Нет ни одного слова или фразы, которая была бы лишней или путала своей двусмысленностью. Прекрасные лекции. Высший класс!!!
@TimurShemsedinov3 жыл бұрын
Это же не первая читка лекций, годами выверенные фразы ) Спасибо!
@kazbekelmurzaev96007 ай бұрын
Это полтора часа концентрированной информации. Тут пятнадцать минут бы усидеть слушая внимательно. На секунду отвлекся мыслями и пропустил важную информацию. По этим лекциям можно просто стенограмму сделать и вот вам готовый учебник.
@91Days-2 жыл бұрын
Благодарю Вас за труды, ваш курс - лучший из тех, что мне встречались
@TimaGixe Жыл бұрын
Дякую, дуже корисна інформація, класні приклади і зрозумілі пояснення!
@АльбертРубцов4 жыл бұрын
Вот это прямо кладязь ) Благодарю .
@TheTexPro2 жыл бұрын
Спасибо большое! Про чейнинг очень понравилось, рассматриваемые примеры с разными вариантами реализации заставляют пересмотреть привычные модели и способы написания кода. Огромное сенкью)
@tanyasuntulip70082 жыл бұрын
Спасибо огромное, классная лекция, особенно интересно было по ошибкам
@alexeylozenko60932 жыл бұрын
Мне очень нравится, во время лекции по Javascript-у Тимур поднимает такие фундаментальные такие как ф-ное программирование, монады, контракты, итераторы. Как я понял по теме чейнинга, цепочка вызовов позволяет строить некий пайп операций над данными. Видел так же что с помощью цепочек в Метархии настраиваются некоторые абстракции. Лично для себя увидел несколько примеров, которые могу применить на практике. После каждой лекции пересматриваю свои знания в Javascripte. Огромное спасибо.
Походу выражение `${ ... }` вызывает метод toString переданному ему значений под капотом. Если смотреть лекции сосредоточенным то можно уловить и разные фичи 😅
@404NegativeАй бұрын
вот это да, ничего себе. попробуй еще конкатенацию с пустой строкой, вообще охренеешь.
@тимур_атмосферный2 ай бұрын
1:05:56 в этом случае семантичнее было бы выбросить TypeError вместо более общего Error
@rtfmetal5 жыл бұрын
10-35 Там опечатка, кажется? text.line() не сработает, так как text - функция.
@TimurShemsedinov5 жыл бұрын
Да, txt.line()
@TimaGixe Жыл бұрын
А як знайти лекцію, яка згадується на цьому моменті kzbin.info/www/bejne/hpfYdpl_nrGLaZY? Лекція про те, як провіряти з якою швидкістю працює код.
@alexeylozenko60932 жыл бұрын
код в контексте бизнес логики я генерирую ошибку при нарушении инварианта абстракции. Не всегда понятно когда стоит или нет генерировать ошибку. Насколько мне известно из теории контрактного программирования генерируется ошибку при assert утверждении. Подскажите литературу, фундаментальный материал на эту тему, спасибо. Насколько я понимаю начинающему программисту достаточно уметь перехватывать ошибку и их обрабатывать.
@legioner9mix4 жыл бұрын
Вопрос к случаю uncaughtException - стоит ли при создании функции попутно класть в нее подписку на событие которое будет эмититься внутри вызова uncaughtException - что бы колбек этого эмиттера обеспечивал корректную парковку функции а не просто exit(1) ?
@nikitasobolev82884 жыл бұрын
Можете подсказать, в примере "Обработка ошибок c async-await" при запуске у вас вывелось 5. Почему 5, если функции async/await всегда возвращают Promise, и по идее мы должны были написать: sum(2, 5).then(data => console.log(data)); ?
@UniBreakfast5 жыл бұрын
сложность просто заоблачная... Не представляю себе тех, кто это поймёт.
@TimurShemsedinov5 жыл бұрын
Смотрите курс последовательно, студенты 1 курса 1 семестра осваивают github.com/HowProgrammingWorks/Index/blob/master/Courses/Fundamentals.md
@UniBreakfast5 жыл бұрын
@@TimurShemsedinov Последовательно и смотрю. Так я сам уже два года репетиторствую, пишу по-немногу... то есть, я, в принципе, могу в этом разобраться, но новички... ой-ли. просто вспоминаю это чувство когда сидишь на лекции (в 2001-ом), а преподаватель наворачивает такое, что у всей аудитории глаза на лоб... Короче, я просто удивился вслух.
@TimurShemsedinov5 жыл бұрын
@@UniBreakfast Ну лекции этого года я добавил для более плавного вхождения для начинающих и это массово работает. Скажем так, сначала лекций 10 все смотрят большими глазами, а потом у половины будто что-то включается и они начинают понимать тебя, и въезжать уже, пересматривают старое и нормально к экзамену выходят.
@AlexDia3 жыл бұрын
@@TimurShemsedinov где взять вопросы на ваш экзамен
@СергейЖданов-э5р2 жыл бұрын
Про чейнинг плохо объяснили. Код его разных реализаций довольно сложный, и он был просто быстренько пролистан, хотя элементарный код про обработку ошибок был подробно разжеван
@DimitarRad2 жыл бұрын
Спасибо, но для меня это уже ниндзя-код - особенно функторы.
@Wra-ij8yk Жыл бұрын
Может кто-нибудь объяснить почему прототипы быстрее в итоге выполняются?
@TimurShemsedinov Жыл бұрын
Чем что?
@Wra-ij8yk Жыл бұрын
@@TimurShemsedinov, 43:58 ну вот же реализации чеининга на прототипах обогнала все остальные реализации на промисах, функторе
@TimurShemsedinov Жыл бұрын
@@Wra-ij8ykну тут явно проблема в доступе к идентификаторам, но этим вообще не нужно париться, в большинстве программ это несущественно
@Wra-ij8yk Жыл бұрын
@@TimurShemsedinov, ок спасибо
@TimurShemsedinov Жыл бұрын
@@Wra-ij8yk посмотрите еще kzbin.info/www/bejne/iavEiYeNZ9aWgKc
@TravelingsEngineer2 жыл бұрын
ни у кого нетполучилось выполнить 5 задание? я распарсил строску через split в symbol.iterator, но ни как не получаеться каждый элемент массива запихивать в value и вызывать next для каждого элемента массива. мучаюсь несколько дней, хотя думаю, что решение на поверхности
@SilverStormAndGoldenRain5 жыл бұрын
Пример 4 это кошмар, кому такое в голову пришло написать ))
@TimurShemsedinov5 жыл бұрын
Ну это во всем ооп такой подход с мутабильным состоянием, и люди норм воспронимают. А я сделал то же на функциях, ни чем не хуже ооп
@SilverStormAndGoldenRain5 жыл бұрын
@@TimurShemsedinov Сделано все красиво, просто очень непривычно и даже в голову бы не пришло такое написать, видимо надо изучать больше языков для расширения сознания ))
@TimurShemsedinov5 жыл бұрын
@@SilverStormAndGoldenRain ну это же курс не по js, а по программированию с примерами на js. Так что, пришлось показывать и неестественные для js практики. Благо, что js позволяет почти все.
@masterguyver845 жыл бұрын
Тяжело все заходит, придется пересматривать не раз. Даже надо на блоки делить, правда информации много как остальное успевать ... МАСТЕРСТВО ОПЫТА
@legioner9mix4 жыл бұрын
@@masterguyver84 я пропускаю все что с третьего раза не могу до конца понять - все равно полную глубину и красоту можно начать понимать только начав изучение лекций ПО ВТОРОМУ кругу от первой до последней