Micktu 😬
и тут вместо статического класса для сервиса прилетает синглтон
Daniil
статический стейт == глобальная переменная
Ну да. Привет потоконебезопасности
Deleted Account
Ну да. Привет потоконебезопасности
а может у переменых тип даных потокобезопасный
Micktu 😬
а может, а может...
Micktu 😬
на практие инструмент под задачу подбирается, я конечно капитаню дико сейчас -
Micktu 😬
если приложение не будет многопоточным, глупо заботиться о тредсейфе
Daniil
Походу я провалился. Что есть статик класс в плюсах?
Daniil
а может у переменых тип даных потокобезопасный
А там просто прикол в том - в какой момент времени эта переменная будет проинициализирована
Micktu 😬
Micktu 😬
насоклько я знаю
Micktu 😬
просто ECMA-языки имеют еще и статиеский класс - это просто констрейнт, что он не может иметь конструктора
Micktu 😬
и не может иметь инстанса соответственно
Micktu 😬
нет
поясняй
Daniil
Ну я не вижу супер-разницы. У синглтона можно тоже все методы сделать статическими
Daniil
Micktu 😬
синглтон - это инстанс по определению, единственный инстанс
Vladislav
класс полный статических членов
но зачем? Мы не в жаве, можно просто функции в отдельный namespace положить
Micktu 😬
вся эта абстрактная хрень исходит из ECMA ж
Micktu 😬
где свои ограничения
Micktu 😬
в с++ слишком много способов сделать то же самое иначе
Daniil
А если стейт нужен? Хранилище ресурсов какое?
Я приеду на работу поясею о чем я
Deleted Account
Я приеду на работу поясею о чем я
ты почему ещё не на работе?!?!?
Deleted Account
будеш писать объяснительную
Vladislav
но вообще, основной аргумент против синглтонов/"статических классов", я привел выше - их наличие убивает тестируемость кода
Крылатый
Дискуссию по пропозалу, думаю, можно вести тут https://github.com/procxx/cpp-block-expressions-proposal/issues/1
Micktu 😬
я не очень по тестам
Micktu 😬
если честно
rostislav
а чо так дорого снимать в москоу?
rostislav
1000бачей?
Micktu 😬
аспект юнит-тестирования прошел мимо меня почти целиком
rostislav
издиваитись чтоли
🦥Alex Fails
а чо так дорого снимать в москоу?
Потому что пидорасы зажрались
Micktu 😬
не поможет
я имею в виду, код для тестируемости должен быть стейтлесс, а синглтона навязывает транзиентный стейт, или в чем проблема?
rostislav
вы врете
rostislav
счас специально пойду смотреть
Micktu 😬
зря
не, я знаю, как это делается, просто не повезло работать там, где это бы делали хорошо и научили.
Vladislav
я имею в виду, код для тестируемости должен быть стейтлесс, а синглтона навязывает транзиентный стейт, или в чем проблема?
синглтон навязывает лапшеподобные зависимости, делая невозможным тестировать компоненты независимо друг от друга
Micktu 😬
фигня полная
Micktu 😬
как раз для тестов сервисы подменяются тестовыми сервисами
Micktu 😬
в этом тоже преимущество сервис локатора с синглтонами
rostislav
http://arenda.mirkvartir.ru/163692403/
rostislav
27к
Micktu 😬
он эмулирует любое состояние нужное для тестов
rostislav
чтото ктото врот
Vladislav
в этом тоже преимущество сервис локатора с синглтонами
вот, с сервис-локатором уже теплее, но это уже не синглтоны с этого момента
Крылатый
Ребята, давайте про зарплаты и аренды не в этом чяте?
cyber
чтото ктото врот
забудь про это
Micktu 😬
Micktu 😬
ладно, хорошо потрындели, надо поработать
Vladislav
в общем, я против синглтонов в глобальном объекте, как их часто имплементируют
Vladislav
Micktu 😬
я не против, потоум что это легко рефакторится в локатор
Micktu 😬
глобальные объекто часто ОЧЕНЬ удобны и устраняют кучу трения
Micktu 😬
я б не сказал что реалистично от них избавляться
Крылатый
Micktu 😬
Ладно, за работу.
Daniil
в общем, я против синглтонов в глобальном объекте, как их часто имплементируют
А как бы ты хранил состояние на все приложение? Например конфиг?
Vladislav
я б не сказал что реалистично от них избавляться
их не надо заводить, если они уже прокрались в код, то действительно уже сложно избавиться
babysitter
нет
можно кстати определение статического класса в плюсах?
Micktu 😬
и у тебя есть глобальный объект который определяет апи игры
Vladislav
А как бы ты хранил состояние на все приложение? Например конфиг?
в объекте глобального состояния, инстанциируемого в точке входа, очевидно
Micktu 😬
и ты можешь вызвать игровое событие откуда угодно
Micktu 😬
это МОЖЕТ породить лапшеобразный код, но не в смысле сильного связывания
babysitter
Micktu 😬
и это очень удобно