Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Объясните механизм deferred execution (отложенного выполнения) в LINQ на примере First() и счётчика.
Deferred execution означает, что LINQ-запрос не исполняется при его описании, а только при переборе или вызове терминального оператора (ToList(), First()). Например, var q = data.Where(x=>++counter>0); не увеличит counter пока вы не вызовете q.First() или не переберёте q, тогда counter станет 1 при первом удовлетворяющем элементе.
В чём различие forward, forward+ и deferred рендеринга и какие у них trade-offs?
Forward рендерит объект полностью за один проход, но ограничивает количество источников света и плохо подходит для сложных сцен. Deferred рендерит сначала буферы (нормали, глубину, альбедо), а затем освещение, что позволяет использовать сотни динамических источников света, но плохо работает с прозрачностью. Forward+ — модернизированный forward, использующий кластеризацию света и позволяющий иметь много источников света, сохранив преимущества Forward, но сложнее в реализации. Выбор зависит от сцены: много динамических Lights → Deferred, мобильные платформы → Forward, современные проекты с множеством Lights и хорошей прозрачностью → Forward+.
В чем разница между кэшированием данных и отложенными (deferred) операциями?
Кэширование — это сохранение уже полученных данных для повторного использования. Отложенные операции — это сохранение действий пользователя для выполнения позже. Кэш помогает быстрее показывать данные, а deferred-операции — не терять пользовательские изменения. Эти подходы часто используются вместе. Они решают разные задачи, но дополняют друг друга.
Рейтинг:
2
Сложность:
6
Рейтинг:
5
Сложность:
8
Рейтинг:
4
Сложность:
6