Здравствуйте, landerhigh, Вы писали:
L>>>Lazy loading и явные зависимости — совершенно ортогональные понятия. L>$>Зато double checked locking, "внезапно инициализирующихся данных" и lazy loading- связанные понятия.
L>Essence of govnokod...
Об этом нужно говорить в философии.
Пока что у меня получается такая картина:
И: перечислите паттерны проектирования, какие вспомните
L: ....
через 30 секунд
L: ...... нууууу
L: Фабрика?
И: хорошо, хорошо. Ещё вспомните? (думает про Builder)
L: Синглтон?
И: Ай молодец!
L: Но я слышал, что Синглтон это такое страшное зло. Антипаттерн. сам SkyDance писал (думая про лок в БД)
И: (думая про DI)- ок, вот вы работали с многопоточкой.
L: о дааа, я работал с многопоточкой
И: А напишите ка, голубчик, синглтон для многопоточки, на доске
L: (берет маркер, сразу пишет лок)
И: Ок, это будет работать. Какие проблемы здесь видите?
L: ....... (слышно скрежет заржавевших шестеренок и видно мучительное напряжение на лице)
И: цена захода в лок велика. Как модно оптимизировать?
L: ....... проходит 5 минут
И: Поставьте переменную, проверяйте
L: поставил переменную, проверяет под локом
И: вы всё ещё под локом, а хотете избежать ненужного входа в лок. И кроме того, пометьте volatile
L: (лампочка тускло загорелась) проверяет не под локом, сохраняет под локом.
И: (смотрит на часы- за отведенный бюджет ни одного годного ответа, 2 вопроса не дождались очереди), — есть у вас вопросы?
L: ..... нет
И: Хорошо. Наша офис менеджер проводит вас до выхода.