Kotlin / Пример полезного делегированного свойства

11 подписчиков

12+
12+

3 просмотра

20 дней назад

ПожаловатьсяНарушение авторских прав

11 подписчиков

12+
12+

3 просмотра

20 дней назад

ПожаловатьсяНарушение авторских прав
12+
12+

3 просмотра

20 дней назад

В этом видео на конкретном примере будет рассмотрена мотивация и процесс создания полезного делегированного свойства на языке Kotlin. Делегированные свойства - это достаточно необычная и специфическая особенность Kotlin, очень активно используемая его создателями, но очень недооцененная многими программистами. В качестве проблемы взята проблема многих общесистемных классов и конфигураций - необходимость их изменения после создания, с одновременной необходимостью заморозки их значения при использовании. Так как в ролике все рассматривается достаточно подробно - он достаточно долгий и состоит из 4-х частей: 1. Проблематика 2. Реализация без использования делегированных свойств 3. Реализация с делегированными свойствами 4. Обеспечение тестируемости Ниже приведены подробные таймкоды, чтобы вы могли пролистывать или наоборот возвращаться к каким-то моментам. Например, собственно реализация делегированного свойства начинается с 17-й минуты. 00:00 Вступление Часть первая - Проблематика: 00:43 Описание исходной ситуации - есть некий глобальный класс, у которого может потребоваться поменять значение после создания 01:54 Типовое развитие "системы" - усложнение связанности значений других классов от этого глобального 03:12 Проявление проблемы хаоса в мутабельной системе 04:45 Неудачная попытка это решить просто заменой синглетона иммутабельным инстансом Часть вторая - Решение просто через гетеры и сетеры с вспомогательными переменными: 07:00 Предлагаем, но тут же отвергаем административное решение 08:12 Пришли к пониманию основного ограничения и переформулировали задачу 08:50 Реализация гарантии не обновления после первого чтения прямо в классе 12:30 Реализации гарантии только одной записи прямо в классе 15:27 Дорешиваем проблему запрета на запись даже одинаковых значений 16:51 Почему это решение неполноценное и почему нужно использование делегированного свойства Часть третья - Решение через делегируемое свойство: 17:21 Общий каркас для реализации и тестирования делегированного свойства с пояснением 23:27 Собственно реализация уже известной по второй части логики делегированного свойства 30:28 Переводим наш класс на делегированные свойства Часть четвертая - Добавляем тестируемости: 31:50 Предисловие по тестированию 32:15 Добавляем возможность сбросить обратно значение свойства, работа с компаньонами и рефлексией 37:37 Обеспечиваем изоляцию небезопасных операций только для тестов, используя RequireOptIn 40:40 Заключение, подведение итогов ___________________________________________________________________________ О вакансиях в нашей компании вы можете узнать, написав в телеграм: Власова Илона: @hrilona Катаева Нина: @Nina_Kataeva почта: vlasova@avtocod.ru #SpectrumData #Kotlin #ДелегированноеСвойство

Название:

Kotlin / Пример полезного делегированного свойства

Категория:

Разное