@jvmchat

Страница 2262 из 2890
Igorek
20.02.2018
10:16:19
например как котлине

но оно уже есть и с type erasure

Oleg
20.02.2018
10:17:20
Роуз писал, что type erasure они сделали только для одной вещи - чтобы не было какого-то конкретного flag day, когда вся платформа должна встать и обновить свой код и бинарники с учётом того, что некоторые вещи стали generic

Денис
20.02.2018
10:21:13
например как котлине
В котлине при этом нет вайлдкардов (и они вообще, кажется, плохо совмещаются с reified type parameters, по крайней мере, в реальном применении, но тут я могу ошибаться)

Google
Денис
20.02.2018
10:21:36
Это я не к тому, что Котлин плохой, а к тому, что надо сохранить обратную совместимость и всё такое

Oleksandr
20.02.2018
10:22:19
В котлине при этом нет вайлдкардов (и они вообще, кажется, плохо совмещаются с reified type parameters, по крайней мере, в реальном применении, но тут я могу ошибаться)
в скале все чудесно совмещается хз как в котлине, в скале под "reified type param" имеется в виду наличие рядом (те имплиситно) спецобьекта, который знает все про оригинальный тип в рантайме

кстати, как в котлине сделано-то?

Igorek
20.02.2018
10:23:03
кстати, как в котлине сделано-то?
https://github.com/JetBrains/kotlin/blob/master/spec-docs/reified-type-parameters.md

Oleksandr
20.02.2018
10:24:32
https://github.com/JetBrains/kotlin/blob/master/spec-docs/reified-type-parameters.md
ну это спека, а как реализовано-то?

рефлексия в рантайме?

Oleg
20.02.2018
10:25:09
Это я не к тому, что Котлин плохой, а к тому, что надо сохранить обратную совместимость и всё такое
а как же SOLID? Open/closed principle: "software entities … should be open for extension, but closed for modification."

ну стала у тебя коллекция generic вместо legacy. Просто создай новый класс, назови ее по-другому

Денис
20.02.2018
10:29:06
ну стала у тебя коллекция generic вместо legacy. Просто создай новый класс, назови ее по-другому
Кажется, придётся стандартную библиотеку дублировать сильно, что печально и неприятно

Igorek
20.02.2018
10:29:45
рефлексия в рантайме?
так вот же, написано: In inline functions, occurrences of a reified type parameter T are replaced with the actual type argument. просто добавляется Class<T> еще одним параметром

Google
Oleksandr
20.02.2018
10:30:04
или такого не может быть?

Igorek
20.02.2018
10:31:01
видимо это только для инлайн поддерживается

Oleksandr
20.02.2018
10:31:36
тогда странно, что с вайлдкардами не работает

оно ж на разных уровнях, реифайд в рантайме, вайлдкарды в компайлтайме

Денис
20.02.2018
10:36:48
Мы говорим совсем о котлине?

Просто там есть, например, такой пример в доке inline fun <reified T> TreeNode.findParentOfType(): T? { var p = parent while (p != null && p !is T) { p = p.parent } return p as T? } И тут встаёт вопрос - как безболезненно и наиболее корректно сделать этот return, если у нас T может быть сложным вайлдкардом?

Сергей
20.02.2018
10:42:15
InOrder order= inOrder(mock,mock,mock); order.verify(mock).doStuff() order.verify(mock).doStuff() не подойдет?
Это вариант. Не очень удобно,но это уже что то, спасибо!

Wystan
20.02.2018
11:27:42
Господа, а в каком виде вы храните всякие пдфки для инвойсов/репортов и так далее? Как пдф? Или как темплейт + дата в бд + картинки отдельно?

Sergey
20.02.2018
11:28:22
Второе

Bogdan
20.02.2018
11:35:12
а для не inline?
тлько для инлайн

Igorek
20.02.2018
11:51:10
Denis
20.02.2018
11:56:23
Ну в смысле в любой бд держать бинари так себе идея.

z0mb1ek
20.02.2018
11:57:46
cassandra?

Денис
20.02.2018
12:04:28
В самой базе держать бинари больно и слегка бессмысленно кмк, внешние ресурсы может?

Могу ошибаться, впрочем

Denis
20.02.2018
12:05:08
Почему? А где держать тогда?
Бинари на файловом хранилище надо держать.

KrivdaAllStars
20.02.2018
12:05:15
В кассандре можно Бинари держать

Все хорошо и есть хорошие кейсы

Google
Pavel
20.02.2018
12:05:48
Бинари на файловом хранилище надо держать.
Ну а если эти бинари относятся как то с какой то сущностью?

Денис
20.02.2018
12:05:56
Хранишь пути к ним

В базе

А сами бинари как данные тебе в реляционной базе бесполезны скорее всего же

Pavel
20.02.2018
12:06:42
Хранишь пути к ним
А если не одна машина?

KrivdaAllStars
20.02.2018
12:06:43
Используйте Кассандру для бинарей

https://medium.com/walmartlabs/building-object-store-storing-images-in-cassandra-walmart-scale-a6b9c02af593

Все придумано до вас

Denis
20.02.2018
12:07:58
А если не одна машина?
Все эти вопросы давно уже решены десятком способов, надо только выбрать подходящий в твоей ситуации

Pavel
20.02.2018
12:08:10
Было предложено хранить файлы в файловой системе локальной и хранить путь

Ну мой вопрос резонный, а что делать если много данных

Денис
20.02.2018
12:10:05
Было предложено хранить файлы в файловой системе локальной и хранить путь
Окей, не локальной, храни произвольные системные идентификаторы (в зависимости от механизмов получения доступа), которые используются для получения доступа, это, поди, в любом случае не единственный файловый ресурс, к которому надо доступаться

Denis
20.02.2018
12:11:07
Ну мой вопрос резонный, а что делать если много данных
Храни на сетевом хранилище. Или как сервис на хттп отдавай, если они клиентами идут наружу

Denis
20.02.2018
12:12:50
Каком например сетевом хранилище?
Какое купишь, в таком и храни.

Pavel
20.02.2018
12:13:04
Опять уход от ответа

Ну чем плохо то хранить в Кассандре?

Денис
20.02.2018
12:13:30
Опять уход от ответа
Нет, тупой ответ на тупой вопрос.

Google
Denis
20.02.2018
12:13:42
Опять уход от ответа
Ты задаешь общий вопрос и хочешь получить конкретный ответ. Задай вопрос нормально.

Pavel
20.02.2018
12:13:47
Нет, тупой ответ на тупой вопрос.
Вопрос не тупой, вполне резонный

Денис
20.02.2018
12:13:47
Ну чем плохо то хранить в Кассандре?
Ты про Кассандру ничего не говорил

Denis
20.02.2018
12:14:27
Сколько файлов, какой размер, сколько клиентов из читает и т.д. после этого уже можно что-то конкретное сказать.

Pavel
20.02.2018
12:14:29
Ты про Кассандру ничего не говорил
Ну так ты говорил что не стоит хранить в подобных хранилищах данные?

Денис
20.02.2018
12:14:37
Пример с Кассандрой, кстати, описывает вполне конкретный, и, откровенно говоря, не самый распространённый кейс, потому что в 99 случаев из 100 ты не Волмарт

Pavel
20.02.2018
12:15:31
Ivan
20.02.2018
12:17:22
если хранить в кассандре то привязан к кассандре если не в ней то не привязан

что не ясно то

у тебя кассандра это кластер из 3х серверов например

Pavel
20.02.2018
12:17:48
Ivan
20.02.2018
12:17:55
значит картинки можно масштабировать на 3 сервера

Денис
20.02.2018
12:18:07
Pavel
20.02.2018
12:18:14
если хранить в кассандре то привязан к кассандре если не в ней то не привязан
Ага а если не в Кассандре то привязан к чему то другому, логично

Ivan
20.02.2018
12:18:23
к файловой системе

к ней все привязаны

ты можешь спокойно масштабировать картинки на 500 серверов и не возится с кассандрой

Google
Ivan
20.02.2018
12:18:57
которая тебе на этих 500 серверах нафиг не нужна

Denis
20.02.2018
12:19:10
Ну я конкретно же сказал, фотографии, могу уточнить от 10кб по 10 мб
Фотографии лучше как раз на диске хранить. Во первых nginx с диска из будет отдавать намного быстрее чем любая бд. Во вторых для создания миниатюри и прочих обработок меньше замочек с кодом.

KrivdaAllStars
20.02.2018
12:20:08
При любом количестве файлов

Плюс у тебя контроль того, что файл действительно есть хоть какой то

Денис
20.02.2018
12:21:10
Но оно работает хорошо
Я не говорю, что решение плохое, да

Ivan
20.02.2018
12:21:44
если я хочу перелезть с кассандры на что то еще

что делать?

с url все более менее просто

Денис
20.02.2018
12:22:36
С ней не нужно возиться
>Split up larger objects into smaller chunks and store them in different nodes of the Cassandra cluster Perform async parallel write of object chunks to several nodes at once speeding up the total write time taken Perform async parallel read of object chunks and do the aggregation at the application level Even better would be to directly stream the chunks in-order using transfer-encoding Chunked supported by Http protocol, thereby eliminating the need for the application to have anything in memory Это действительно не требует возни?

Денис
20.02.2018
12:23:24
Кек

Страница 2262 из 2890