Перейти к содержимому

Как Swift *на самом деле* вызывает функции: диспетчеризация методов в Swift (и Objective-C)

The Code Bird и Yakov Manshin

0:00 / 0:00

Как Swift *на самом деле* вызывает функции: диспетчеризация методов в Swift (и Objective-C)

572 просмотра · 9 месяцев назад
The Code Bird и Yakov Manshin
572 просмотра · 9 месяцев назад
Вы когда-нибудь задумывались о том, как в приложении на Swift вызываются функции? Для того, что происходит тысячи раз в секунду, этот механизм — диспетчеризация методов — устроен на удивление сложно. Но не волнуйтесь! В этом детальном разборе мы рассмотрим все три вида диспетчеризации методов в Swift: статическую, динамическую и диспетчеризацию сообщений. Вы увидите, как статическая диспетчеризация гарантирует невероятно быстрое и предсказуемое выполнение кода, как динамическая диспетчеризация делает возможным наследование и полиморфизм, и как диспетчеризация сообщений (если вы не слишком внимательны) может вызвать RCE-уязвимость всего десятком строк кода. К концу этого видео вы будете в точности знать, какой метод диспетчеризации используется в каждой ситуации. Это поможет вам принимать взвешенные решения о производительности, расширяемости и дизайне вашего кода. Стоит ли вообще задумываться об этой теме? Ответ — безусловное «да»: диспетчеризация методов — это ключ к написанию понятного, быстрого и гибкого кода на Swift. (P.S. Это видео использует корявый автодубляж YouTube, который я не могу отредактировать.) Поддержите The Code Bird… • …присоединившись как участник:    / @thecodebird   • …став патроном: https://url.ykvm.com/patreon • …оставив чаевые: https://url.ykvm.com/bmac Таймкоды: • 0:00 Введение • 1:05 Что такое диспетчеризация методов на самом деле? • 2:27 Статическая (прямая) диспетчеризация • 3:09 А если этого недостаточно? • 4:55 Динамическая диспетчеризация через виртуальные таблицы (V-Table) • 7:17 Диспетчеризация сообщений (Objective-C и не только) • 9:48 Стоит ли вообще думать об этом? • 11:00 Краткое содержание The Code Bird, проект Якова Маншина 🎞️ #Swift #функции #разработкаПО