Size: a a a

2020 July 23

Y

Yaroslav in Laravel Pro
Pavel Zarubin
Нет, я понимаю конечно же что если сервис дёргается в паре мест и только по надобности то не стоит для него делать синглтон привязку, но сервисы бывают разные в зависимости от приложения и довольно часто сервисы дёргаются по всему приложению в десятках разных мест. Приведу пример из своей работы, мы банковское приложение и у нас есть сервис по работе с финансами (задолжности, балансы etc) за один сеанс в этом сервисе может пройти с десяток обращений из десятка мест, каждый раз инициализировать его по мне моветон и жирновато, особенно учитывая объем конфига который он принимает
другое дело, если это синглтон и можно быстро и эффективно списать  с клиента 10 раз по 100 баксов вместо одного раза)
источник

PZ

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

Y

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

PZ

Pavel Zarubin in Laravel Pro
Yaroslav
к хранению данных в состоянии
Как правило хранить состояния в сервисах плохая практика
источник

PZ

Pavel Zarubin in Laravel Pro
Сервисы нужны для бизнес логики состояния хранятся обычно в моделях
источник

Y

Yaroslav in Laravel Pro
Pavel Zarubin
Как правило хранить состояния в сервисах плохая практика
замечательно. синглтоны это эффективно по скорости, но это плохая практика. Предлагаю на этом и остановиться
источник

PZ

Pavel Zarubin in Laravel Pro
Yaroslav
замечательно. синглтоны это эффективно по скорости, но это плохая практика. Предлагаю на этом и остановиться
Конфиги != Состояния
Представь ситуацию у тебя сервис оплаты в конфиге у него под сотню параметров, ты 20 раз обращаешься к нему за сеанс и при бинде у тебя 20 раз инициализируется конфиг, хорошо если он простой, но зачастую конфиг может проверять такие вещи как например город клиента и выполнять совсем другую логику инициализации
источник

PZ

Pavel Zarubin in Laravel Pro
При синглтоне конфиг у тебя инициализируется один раз для каждого сеанса вот и все преимущества
источник

Y

Yaroslav in Laravel Pro
Pavel Zarubin
Конфиги != Состояния
Представь ситуацию у тебя сервис оплаты в конфиге у него под сотню параметров, ты 20 раз обращаешься к нему за сеанс и при бинде у тебя 20 раз инициализируется конфиг, хорошо если он простой, но зачастую конфиг может проверять такие вещи как например город клиента и выполнять совсем другую логику инициализации
я даже не хочу представлять 20 обращений за сеанс к одному и тому же сервису. похоже на завистливый объект какой-то. почему он по 20 раз на него заглядывается? пусть сам и делает свою работу)
источник

Y

Yaroslav in Laravel Pro
Pavel Zarubin
Конфиги != Состояния
Представь ситуацию у тебя сервис оплаты в конфиге у него под сотню параметров, ты 20 раз обращаешься к нему за сеанс и при бинде у тебя 20 раз инициализируется конфиг, хорошо если он простой, но зачастую конфиг может проверять такие вещи как например город клиента и выполнять совсем другую логику инициализации
ладно. я в работу, высосанные примеры как required, которого нет - это утомительно)
расскажи как-нибудь там потом, как отстрелит тебе ногу синглтон)
источник

PZ

Pavel Zarubin in Laravel Pro
Yaroslav
ладно. я в работу, высосанные примеры как required, которого нет - это утомительно)
расскажи как-нибудь там потом, как отстрелит тебе ногу синглтон)
Да-да, удачи там с modx и хранением состояний в сервисах
источник

PZ

Pavel Zarubin in Laravel Pro
Я к слову мог бы привести примеры их жизни где и по 50-100 обращений бывает к одному сервису, особенно если это очередь какая нибудь, но зачем токсичным людям что либо доказывать, у них сервис нужен для одного - двух обращений, только зачем тогда вообще нужен сервис если с 1-2 обращениями справился бы какой нибудь хэлпер со статичными методами ..
источник

Y

Yaroslav in Laravel Pro
Pavel Zarubin
Я к слову мог бы привести примеры их жизни где и по 50-100 обращений бывает к одному сервису, особенно если это очередь какая нибудь, но зачем токсичным людям что либо доказывать, у них сервис нужен для одного - двух обращений, только зачем тогда вообще нужен сервис если с 1-2 обращениями справился бы какой нибудь хэлпер со статичными методами ..
расскажи как это ты по 100 раз создаешь сервис, вместо того чтобы использовать его экземпляр? это из принципа или действительно такая архитектура? если к сервису одно или два обращения, то возможно он просто выполняет свою работу и разработчик думает о распределении кода, а не гонках на скорость, которые проходят примерно в одно время с подростковым максимализмом.
у меня вон есть куча примеров супер быстрого кода запросов xPDO с 10 джоинами с оптимизированными индексами, но переиспользованию это точно не способствует.
источник

PZ

Pavel Zarubin in Laravel Pro
Yaroslav
расскажи как это ты по 100 раз создаешь сервис, вместо того чтобы использовать его экземпляр? это из принципа или действительно такая архитектура? если к сервису одно или два обращения, то возможно он просто выполняет свою работу и разработчик думает о распределении кода, а не гонках на скорость, которые проходят примерно в одно время с подростковым максимализмом.
у меня вон есть куча примеров супер быстрого кода запросов xPDO с 10 джоинами с оптимизированными индексами, но переиспользованию это точно не способствует.
Как раз таки при синглтоне ты используешь уже созданный экземпляр сервиса, а при бинде ты каждый раз создаешь новый сервис при каждом обращении к нему
источник

PZ

Pavel Zarubin in Laravel Pro
Соответственно был бы бинд - 100 обращений - 100 экземпляров сервисов
источник

Y

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

PZ

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

Y

Yaroslav in Laravel Pro
Pavel Zarubin
> расскажи как это ты по 100 раз создаешь сервис, вместо того чтобы использовать его экземпляр?
и как?
источник

PZ

Pavel Zarubin in Laravel Pro
ты дурачок или прикидываешься?
источник

Y

Yaroslav in Laravel Pro
Pavel Zarubin
ты дурачок или прикидываешься?
ну вот началось. извини, для этого у меня точно нет времени. afk
источник