Size: a a a

2020 July 23

PZ

Pavel Zarubin in Laravel Pro
Еще раз, я тебе пытаюсь с самого начала диалога объяснить что синглтон это не такая не нужная и редко встречающиеся штука, и нужна она вовсе не для хранения стейтов, а просто для того чтобы не плодить кучу экземпляров одного и того же сревиса
источник

PZ

Pavel Zarubin in Laravel Pro
И привожу пример высоконагруженных сервисов с массивной бизнес логикой плодить экземпляры которых (если используешь bind вместо singleton) вот вообще не стоит и вызывает значительную нагрузку на сервер не нужную
источник

PZ

Pavel Zarubin in Laravel Pro
Короче друг, да, иди наверное на xpdo пиши дальше, там как раз не слышали об очередях и что такое сервис слабо представляют, диалог зашел в тупик
источник

A

Adel in Laravel Pro
Pavel Zarubin
И привожу пример высоконагруженных сервисов с массивной бизнес логикой плодить экземпляры которых (если используешь bind вместо singleton) вот вообще не стоит и вызывает значительную нагрузку на сервер не нужную
а ты мерял какое влияние на перформанс оказывает создание 100 экземпляров классов?
источник

PZ

Pavel Zarubin in Laravel Pro
Adel
а ты мерял какое влияние на перформанс оказывает создание 100 экземпляров классов?
Нет, это все только в теории, но элементарно взять допустим наш же платежный сервис, при инициализации он занимается определением города клиента и в зависимости от города по разному себя конфигурирует, да, как бы все это тянется очень часто из кэша, но чисто логически если бинд при каждом обращении выполняет конструктор сервиса, то синглтон в этом случае будет быстрее
источник

A

Adel in Laravel Pro
не делают так. в конструкторе таких сервисов никаких вычислений не делают.
источник

A

Adel in Laravel Pro
они стателесс
источник

PZ

Pavel Zarubin in Laravel Pro
Adel
не делают так. в конструкторе таких сервисов никаких вычислений не делают.
Хорошо, где ты предлагаешь их делать?
источник

A

Adel in Laravel Pro
фабрики
источник

PZ

Pavel Zarubin in Laravel Pro
Adel
а ты мерял какое влияние на перформанс оказывает создание 100 экземпляров классов?
Я все же протестировал, с инициализацией простенького конфига разница на уровне погрешности, нде..
источник

A

Adel in Laravel Pro
Я это знал :)
источник

PZ

Pavel Zarubin in Laravel Pro
Adel
Я это знал :)
Тогда получается синглтон реально нужен только в крайне редких случаях?
источник

A

Adel in Laravel Pro
Он нужен иногда когда приложение не умирает с каждым запросом
источник

A

Adel in Laravel Pro
Там другие правила игры
источник

IN

Ivan Novikov in Laravel Pro
Парни, подскажите крутой Starter Kit для Laravel. Желательно бесплатный. Админка у меня Nova, но хочется уже себе что-то типа готового профиля и настроек к нему. Подобных вещей в общем :)
источник

ПГ

Павел Г. in Laravel Pro
Pavel Zarubin
Еще раз, я тебе пытаюсь с самого начала диалога объяснить что синглтон это не такая не нужная и редко встречающиеся штука, и нужна она вовсе не для хранения стейтов, а просто для того чтобы не плодить кучу экземпляров одного и того же сревиса
Имхо вы все верно говорите. Почему не любят синглтон? Потому что можно потерять где менялся и устанавливался стейт. Если сервис не имеет стейта или каких мутабельных вещей - синглтон это норм. Синглтон это антипатерн для вещей со стейтом.  
Берем симфони - там все сервисы по умолчанию синглтон. Чтобы сделать их "bind" из лары - надо специально установить shared флаг.
Почему в Ларе в основном биндят и это "дефолт" - хз.
источник

VL

Victor L in Laravel Pro
Всем привет, подскажите как организовать безопасность в системе laravel, получается я делаю сервис где покупают жетоны за реальные деньги, а потом они гоняются в системе между учителями и учениками и т.д, как сделал что бы не пропали переводы, кто-то не украл деньги или не присвоил себе чужие деньги. Пока использую транзакции sql, что можно еще сделать?
источник

A

Alex in Laravel Pro
а как хранится баланс? переводы и подобное?
что будет если одному из пользователей кто-то пропишет в базе другой баланс, его можно будет восстановить по истории переводов или такого нет?
двойная бухгалтерская запись или как-то так можешь погуглить
источник

VL

Victor L in Laravel Pro
баланс храниться в отдельной таблицы и есть история транзакции
источник

VL

Victor L in Laravel Pro
источник