🚀 Чим паттерн Singleton порушує SOLID?
Продовжуємо нашу серію про нестандартні питання на технічних співбесідах, розпочату колись давно. Розбираємо ще одне цікаве інженерне питання для технічних співбесід, котре я підгледів у одного з наших техлідів)
Запитання просте на перший погляд: "Чим паттерн Singleton порушує SOLID?". Але, насправді, воно багатогранне і розкриває кандидата з різних сторін.
Взаємодія Singleton і SOLID
Щоб відповісти на це питання, потрібен не лише теоретичний, а й практичний досвід. Наприклад, класичний Singleton на основі MonoBehaviour в Unity одразу порушує принцип єдиної відповідальності, оскільки керує і життєвим циклом об'єкта, і його логікою. Інші реалізації, такі як базовий Generic Singleton із практик C#, можуть краще відповідати SOLID, але теж мають свої слабкі місця, особливо холіварні останні 2 принципи. Singleton у DI-контейнері ще складніший випадок: наслідування стає не практичним, а принципи SOLID потребують додаткових інтерпретацій.
Когнітивне навантаження
Це питання також тестує здатність кандидата працювати під навантаженням. У середньому, людина може тримати в пам’яті 7+-2 об'єктів одночасно. Відповідь вимагає одночасно врахувати п'ять принципів SOLID, один Singleton і ще кілька контекстних деталей. Іншими словами, аналіз питання займає майже всі вільні інтелектуальні ресурси одночасно. Це дозволяє оцінити, наскільки кандидат здатен до аналізу під тиском і наскільки глибоко він розуміє матеріал.
Що це показує?
Якщо кандидат здатен проаналізувати і дати чітку відповідь в короткий час, це свідчить про його глибокі знання та здатність концентруватися. Якщо ж відповідь нечітка, це може сигналізувати про слабкі сторони, які проявляться в роботі - далі треба аналізувати відповідь більш детально.
---
🌱 Keep calm and grow
Продовжуємо нашу серію про нестандартні питання на технічних співбесідах, розпочату колись давно. Розбираємо ще одне цікаве інженерне питання для технічних співбесід, котре я підгледів у одного з наших техлідів)
Запитання просте на перший погляд: "Чим паттерн Singleton порушує SOLID?". Але, насправді, воно багатогранне і розкриває кандидата з різних сторін.
Взаємодія Singleton і SOLID
Щоб відповісти на це питання, потрібен не лише теоретичний, а й практичний досвід. Наприклад, класичний Singleton на основі MonoBehaviour в Unity одразу порушує принцип єдиної відповідальності, оскільки керує і життєвим циклом об'єкта, і його логікою. Інші реалізації, такі як базовий Generic Singleton із практик C#, можуть краще відповідати SOLID, але теж мають свої слабкі місця, особливо холіварні останні 2 принципи. Singleton у DI-контейнері ще складніший випадок: наслідування стає не практичним, а принципи SOLID потребують додаткових інтерпретацій.
Когнітивне навантаження
Це питання також тестує здатність кандидата працювати під навантаженням. У середньому, людина може тримати в пам’яті 7+-2 об'єктів одночасно. Відповідь вимагає одночасно врахувати п'ять принципів SOLID, один Singleton і ще кілька контекстних деталей. Іншими словами, аналіз питання займає майже всі вільні інтелектуальні ресурси одночасно. Це дозволяє оцінити, наскільки кандидат здатен до аналізу під тиском і наскільки глибоко він розуміє матеріал.
Що це показує?
Якщо кандидат здатен проаналізувати і дати чітку відповідь в короткий час, це свідчить про його глибокі знання та здатність концентруватися. Якщо ж відповідь нечітка, це може сигналізувати про слабкі сторони, які проявляться в роботі - далі треба аналізувати відповідь більш детально.
---
🌱 Keep calm and grow