Size: a a a

2020 April 28

DP

Daniel Podolsky in Go-go!
Я бы пропускал запрос на дестррй через фильтр, который бы добывал владельца из соответствующего сервиса и решал, дёрнуть ли реальный дестррй или вернуть ошибку
источник

RS

Roman Sharkov in Go-go!
Daniel Podolsky
Я бы пропускал запрос на дестррй через фильтр, который бы добывал владельца из соответствующего сервиса и решал, дёрнуть ли реальный дестррй или вернуть ошибку
я тоже использую этот подход, но иногда при реализации замечаю, что это таки неидеально с точки зрения latency, поэтому решил об этом спросить

ведь в таком подходе мы 2 раза ходим в бд (если сервис эдакой реализуется), а в некоторых случаях могли бы сделать всё в одном запросе (например, если бд разрешает нам проверить инвариант прежде чем завершить транзакцию)
источник

RS

Roman Sharkov in Go-go!
т.е. получается trade-off между performance и responsibility segregation
источник

RS

Roman Sharkov in Go-go!
@onokonem а если сделать отвественность более явной? аля..

DestroySession(
 ctx context.Context,
 id SessionID,
 checkOwner func(actualOwner UserID) error,
) error
источник

RS

Roman Sharkov in Go-go!
func (s ExampleImplementation) DestroySession(
 ctx context.Context,
 id SessionID,
 checkOwner func(actualOwner UserID) error,
) error {
 t := db.NewTransaction()
 s := t.Query(“session {owner, …} where id = %s”, id)
 if err := checkOwner(s.Owner); err != nil {
   return err
 }
 t.Mutate(“delete “session where id = %s”, id)
 return t.Commit()
}
источник

VM

Vladislav Milenin in Go-go!
кроме как анонимной функцией defer внутри цикла не завести?
источник

NG

Nikita Gritsai in Go-go!
Vladislav Milenin
кроме как анонимной функцией defer внутри цикла не завести?
вызывать defer на каждый цикл?
источник

DP

Daniel Podolsky in Go-go!
Roman Sharkov
я тоже использую этот подход, но иногда при реализации замечаю, что это таки неидеально с точки зрения latency, поэтому решил об этом спросить

ведь в таком подходе мы 2 раза ходим в бд (если сервис эдакой реализуется), а в некоторых случаях могли бы сделать всё в одном запросе (например, если бд разрешает нам проверить инвариант прежде чем завершить транзакцию)
я бы просто добавил кеш, когда это станет проблемой
источник

VM

Vladislav Milenin in Go-go!
Nikita Gritsai
вызывать defer на каждый цикл?
есть юзкейсы да
источник

DP

Daniel Podolsky in Go-go!
Vladislav Milenin
кроме как анонимной функцией defer внутри цикла не завести?
можно неанонимной

тут анонимная не нужна, вроде
источник

NG

Nikita Gritsai in Go-go!
ну если нужен текущий scope то придется делать функцию
источник

RS

Roman Sharkov in Go-go!
Daniel Podolsky
я бы просто добавил кеш, когда это станет проблемой
кэш иногда может быть дополнительной проблемой (inconsistency + complexity)
источник

NG

Nikita Gritsai in Go-go!
такое чувство что можно и без defer вызвать функцию на каждый цикл)
источник

VM

Vladislav Milenin in Go-go!
Nikita Gritsai
такое чувство что можно и без defer вызвать функцию на каждый цикл)
нельзя)
источник

y

yelsh in Go-go!
Переслано от yelsh
Всем привет, есть вопрос по передаче картинок.
На страницу грузится много картинок и изначально они все они прогружались по GET запросам. Я думаю над тем, чтобы передавать все картинки одним bulk ответом в json, в base64. Какие могут быть с этим проблемы, кто-нибудь подскажет?
источник

y

yelsh in Go-go!
Переслано от yelsh
По идее тут будет экономия по скорости, ведь для каждого get у нас там необходимо делать handshake (ибо https), а это дорого
источник

y

yelsh in Go-go!
Переслано от yelsh
но вот есть такое ощущение, что это не будет золотой пулей и так не делают не спроста
источник

y

yelsh in Go-go!
Немного не по теме go, но заверяю, что на нем пишется)
источник

ВС

Владимир Столяров... in Go-go!
Ну например дополнительный оверхед на base64
источник

VM

Vladislav Milenin in Go-go!
yelsh
Переслано от yelsh
Всем привет, есть вопрос по передаче картинок.
На страницу грузится много картинок и изначально они все они прогружались по GET запросам. Я думаю над тем, чтобы передавать все картинки одним bulk ответом в json, в base64. Какие могут быть с этим проблемы, кто-нибудь подскажет?
боже
не нужно так делать
источник