Size: a a a

Scala User Group

2020 November 30

VS

Vladimir Sapronov in Scala User Group
Kirill Shelopugin
Выше правильно написали - нет истинно верных или неверных правил. Делай так, как тебе, твоим коллегам удобнее, более читаемо, как вам будет потом удобнее поддерживать. Просто подход, который мы описали и который используется в библиотеках - один из распространенных.
Да, я вижу. В итоге 2 варианта: тот что мне нравится убьет меня по перформансу ибо будет создавать новый декодер снова и снова.
источник

VS

Vladimir Sapronov in Scala User Group
Михаил
ну вот Михаил написал в скасти пример с альтернативным подходом, он компилируется и работает
Да, и это крутой подход, но перформанс у него ведь так себе....
источник

KS

Kirill Shelopugin in Scala User Group
Vladimir Sapronov
Да, я вижу. В итоге 2 варианта: тот что мне нравится убьет меня по перформансу ибо будет создавать новый декодер снова и снова.
Убьет? Если только у тебя невероятный хайлоад. Будет создаваться по объекту на вызов, да. Но они и так плодятся там и сям. Опять же - все зависит от требований, от тех, кто будет читать
источник

М

Михаил in Scala User Group
Нууу, это ещё вилами по воде написано. Аллокаций будет очевидно больше, но в реальных условиях приложения с ООМ вылетают почему-то не от того, что там декодеры аллоцируются
источник

KS

Kirill Shelopugin in Scala User Group
Факт.
источник

KS

Kirill Shelopugin in Scala User Group
Это же будут супер-короткоживущие объекты, они сразу в первом же минорном ГЦ улетят.
источник

VS

Vladimir Sapronov in Scala User Group
Kirill Shelopugin
Убьет? Если только у тебя невероятный хайлоад. Будет создаваться по объекту на вызов, да. Но они и так плодятся там и сям. Опять же - все зависит от требований, от тех, кто будет читать
OK, я думаю, обсудили хорошо. Спасибо, что помогли разобраться. И я рад, что люди признают, что иногда лучше делать вещи независимыми, если их можно сделать независимыми.
источник

VS

Vladimir Sapronov in Scala User Group
Вообще я пишу парсер для query params HTTP запроса
источник

M

Mikhail in Scala User Group
Vladimir Sapronov
Да, и это крутой подход, но перформанс у него ведь так себе....
Это не крутой подход. Это просто подход. К тому же там можно и лейзи вариант использовать - но кому это нужно?

Есть сферы(например финансы), которые крайне чувствительны к утечкам данных и там этот крутой подход не имеет право на жизнь, потому что может случайно привести к тому, что наружу утекут данные, которые не должны. Поэтому там должно быть явно указано, что можно сериализовать, а что нельзя и хошь не хошь, будешь или макросом или ручками инстансы заводить
источник

VS

Vladimir Sapronov in Scala User Group
Хочу красиво чтобы было парсить, типа query[Int]("param1")
источник

VS

Vladimir Sapronov in Scala User Group
Ну парсер и наоборот собиратель query params string
источник

VS

Vladimir Sapronov in Scala User Group
В обе стороны короче - сериализация/десериализация в формат вида param1=123&param2=SECOND
источник

VS

Vladimir Sapronov in Scala User Group
Может есть что-то такое уже? Слету не нашел. В Akka-Play ничего
источник

M

Mikhail in Scala User Group
Vladimir Sapronov
Хочу красиво чтобы было парсить, типа query[Int]("param1")
Пиши как можешь, походишь по граблям, посравниваешь, это норм.
источник

AD

Apache DOG™ in Scala User Group
Vladimir Sapronov
Может есть что-то такое уже? Слету не нашел. В Akka-Play ничего
В акке так можно вытаскивать из квери строки. Даже имплиситы есть соответствующие
источник

VS

Vladimir Sapronov in Scala User Group
Mikhail
Пиши как можешь, походишь по граблям, посравниваешь, это норм.
У меня на это день. Во всяких C# F# такая лабуда, что я хочу делается через рефлекшен и много раз написана.
А в скале можно так круто сделать и никто не сделал. Ну или по крайней мере там в том же Play этого нет - как так-то?
источник

AD

Apache DOG™ in Scala User Group
И в хттп4с тоже должно быть
источник

VS

Vladimir Sapronov in Scala User Group
Apache DOG™
В акке так можно вытаскивать из квери строки. Даже имплиситы есть соответствующие
Укажи на примерчик, пожалуйста?
источник

AD

Apache DOG™ in Scala User Group
Vladimir Sapronov
Укажи на примерчик, пожалуйста?
Это гуглится
источник

AD

Apache DOG™ in Scala User Group
akka extract query params
источник