@kotlin_lang

Страница 577 из 982
Quantum Harmonizer
10.03.2018
12:49:23
Ещё один момент. В JSON сложно передавать бинарные данные. Своими глазами видел, как фотку заворачивают в Base64.

Есть же свагер, по которому можно нагенерить.
Не у всех дисциплины хватает нагенерировать и соблюдать.

Quantum Harmonizer
10.03.2018
12:51:34
Так попроси бэкендщика чтобы говно не слал)
И чтоб тесты писал, я понимаю.

Google
Igor
10.03.2018
12:53:10
и это значит, что они плохие?)
Нет, но это все усложняет и нужны реальные профиты для добавления (типа той же нагрузки). Хотя я protobuf очень не люблю, потому что там типы где-то сбоку описываются.

Victor
10.03.2018
12:54:23
Нет, но это все усложняет и нужны реальные профиты для добавления (типа той же нагрузки). Хотя я protobuf очень не люблю, потому что там типы где-то сбоку описываются.
ну, усложняет именно само первоначальное внедрение: допилить балансировку, сделать единое хранение/деплой контрактов После того, как это всё сделано (т.е. сейчас) мне реально проще и быстрее напилить трифтовое взаимодействие, чем http

но изначально да, пилился балансировщик, и это было сделано не за одну-две недели

я про апач трифт, если что

Quantum Harmonizer
10.03.2018
12:58:22
А в protobuf типа норм пихать мегабайтные файлы в поля?
Не знаю. Но их не нужно будет base64-ить.

Igor
10.03.2018
12:58:34
бери и пихай
И оно будет все в памяти?

Не знаю. Но их не нужно будет base64-ить.
Я не спорю, просто имхо protobuf не особо спасает (и что-то бы ты не юзал, “бинарные-файлы” лучше держать отдельно от “данных”)

Victor
10.03.2018
12:59:37
И оно будет все в памяти?
ну, по большому счету, что по бинарному, что по текстовому протоколу, разве тут что-то спасет, когда надо передавать большой объем данных? (бинарных)

Nick Senchurin
10.03.2018
15:54:59
всем привет, не подскажете один момент есть в конструкторе класса параметр в виде функции private val task: () -> Duration в коде вызывается task.invoke() скажите, это тоже самое что и task() ?

просто сходу не нашел, что же это за invoke метод

Google
Quantum Harmonizer
10.03.2018
15:55:35
Nick Senchurin
10.03.2018
15:56:54
спасибо, почитаю

Roman
11.03.2018
06:30:03
используем в проде, микросёрферы
А как запускается кодогенератор? Градлом? Не могу найти более-менее рабочий способ. Плагины с гитхаба либо не работают, либо требуют наличия бинарника генератора, а это как-то не красиво, платформ то много: линкс, винда, мак. Под все платформы бинарник в гит класть штоли?

Roman
11.03.2018
06:39:14
У протобаф генератор написан на яве и находится в мавене. А у трефта он на сях и не находится нигде.

Vladimir
11.03.2018
06:44:50
У протобаф генератор написан на яве и находится в мавене. А у трефта он на сях и не находится нигде.
А вот и нет, он на плюсах и под каждую платформу свой (по крайней мере, protobuf 2). Но лежит действительно в мавене. Почему бы не сделать так же?

Roman
11.03.2018
06:45:52
Ну если это так, то это вопрос к разработчикам трефта. Чего они не сделают так-же?

Victor
11.03.2018
06:57:56
А как запускается кодогенератор? Градлом? Не могу найти более-менее рабочий способ. Плагины с гитхаба либо не работают, либо требуют наличия бинарника генератора, а это как-то не красиво, платформ то много: линкс, винда, мак. Под все платформы бинарник в гит класть штоли?
Неее ни в коем случае. Сорцы пушатся в репозиторий, из него (вроде стандартным апачевским генератором) генерятся модели и деплоятся, потом уже в проекты просто подтягиваются модели

Roman
11.03.2018
07:47:40
У вас CI на основе трефт файлов делает jar, который уже используется в проекте?

Или как? Не понял.

Artur
11.03.2018
14:18:30
Привет, что за фигня java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState типо ругается что я передаю не null тип где может быть null? Ну добавить в функцию "Bundle?" я немогу т.е. это абстрактная функция onCreate. wtf?

Andrew
11.03.2018
14:26:20
Привет, что за фигня java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState типо ругается что я передаю не null тип где может быть null? Ну добавить в функцию "Bundle?" я немогу т.е. это абстрактная функция onCreate. wtf?
Абстрактная функция onCreate принимает тип Bundle! (читать в документации о platform types). В котлине ты его представляешь как Bundle или как Bundle? в зависимости от ситуации. Если тебе может прийти null, поставил в типе вопросительный знак и перестал ловить экскпшн.

Artur
11.03.2018
14:30:13
блина что то я тупанул)

забыл что у меня он наследуется от другого котлин класса, а он уже от джавы

и получалась когда в нём менял, то ругалось что сигнатура метода разная

спасибо за помощь!

Konstantine
11.03.2018
17:08:45
Речь об Android Studio, но думаю в IDEA аналогичное поведение. Когда создаем файл класса - у него в иерархии иконка класса, но если вне класса в этом файле объявить что-то еще (переменную, еще один класс, whatever), то иконка меняется на иконку просто файла. Можно это как-то исправить?

Т.е. оставить иконку класса, если вне класса объявляется переменная, например.

Руслан
11.03.2018
17:10:37
Теперь этот файл содержит не только класс, поэтому и меняется иконка

Google
Руслан
11.03.2018
17:11:08
Если какая-то переменная лежит вне класса, то может имеет смысл положить ее в компаньон?

Konstantine
11.03.2018
17:11:15
Я это понимаю. Речь о том, можно ли изменить поведение?

Kirill
11.03.2018
17:13:13
Я это понимаю. Речь о том, можно ли изменить поведение?
написать свою реализацию com.intellij.ide.FileIconPatcher, например в плагине

Kirill
11.03.2018
17:13:59
Интересно. Спасибо.
но я не уверен, правда, что это точно будет работать. но по идее должно

Konstantine
11.03.2018
17:14:45
Просто, по мне, как-то логично, что если файл называется ABC и в нем есть класс ABC, то это файл этого класса. Вне зависимости от того, есть там еще что-то или нет.

Kirill
11.03.2018
17:15:10
написать свою реализацию com.intellij.ide.FileIconPatcher, например в плагине
для примера посмотри на com.intellij.ide.JavaFileIconPatcher upd: ещё посмотри на com.intellij.ide.FileIconProvider

но, честно говоря, я не уверен что оно того стоит

Konstantine
11.03.2018
17:21:28
но, честно говоря, я не уверен что оно того стоит
Самое то, чтобы написал свой первый плагин и просто занять себя в свободное время :)

Alena
12.03.2018
08:45:33
Всем привет! Приходите на MeetUp Kotlin в Леруа Мерлен в четверг 15 марта: https://leroy-merlin.timepad.ru/event/668941/

Kylych
12.03.2018
08:53:41
@AArzhanova трансляция, видеозапись будет?

Alena
12.03.2018
08:58:43
@AArzhanova трансляция, видеозапись будет?
да, будет! Ссылку добавим чуть позже в событие на TimePad

Kirill
12.03.2018
10:49:28
Привет, знаю, вопрос странный, но: есть тут гуру кишков jackson-а?)

Yevhen
12.03.2018
10:49:41
Привет, ребят так вы используете try with resources in kotlin ? c помощью экстеншн и лямбды?

Yevhen
12.03.2018
10:51:04
О! * Executes the given [block] function on this resource and then closes it down correctly whether an exception * is thrown or not. супер, спасибо

Admin
ERROR: S client not available

Kirill
12.03.2018
10:51:43
Какие гарантии jackson даёт по concurrency на кастомные deserializer-ы?

Руслан
12.03.2018
10:56:11
Скорее всего ожидается что ты сам напишешь thread safe код. Я вот сейчас к сожалению не за компом, но могу предложить способ относительно легко проверить данное предположение: пишется кастомный deserializator, в нем ставится брейкпоинт и запускается простейший main с десериализацией какого-то объекта чтобы он заиспользовался. Ну и по стеку смотришь, есть где-то какая-то синхронизации или другой способ обезопасить есть

Google
Quantum Harmonizer
12.03.2018
10:58:44
Думаю, что из какого потока позовёшь Jackson, в таком и вызовется десериализатор.

Vladislav
12.03.2018
10:59:36
Подскажите, пожалуйства, способ переписать такой код на котлин: public class TestLogger { interface Logger { void log(String message); } Logger getPrintlnLogger() { return message -> System.out.println(message); } }

Пытаюсь так: interface Logger { fun log(message: String) } fun getPrintlnLogger(): Logger { return { message: String -> println(message) } }

но не компилится

Vladislav
12.03.2018
11:00:19
Error:(40, 12) Kotlin: Type mismatch: inferred type is (String) -> Unit but Logger was expected

Vladislav
12.03.2018
11:01:18
Menu -> Code -> Convert Java File to Kotlin File
Не помогает, как раз так получилось в процессе конвертации

Kirill
12.03.2018
11:01:25
Либо оставляй в Jav-е, либо переписывай на лямбды

Vladislav
12.03.2018
11:01:49
Ну интерфейс я не могу менять на typealias

Bogdan
12.03.2018
11:01:59
Пытаюсь так: interface Logger { fun log(message: String) } fun getPrintlnLogger(): Logger { return { message: String -> println(message) } }
ты возращаешь котлиновскую лямду, джавовские по другому пишутся, кот знает

@Harmonizr

Kirill
12.03.2018
11:02:37
Ну интерфейс я не могу менять на typealias
тогда оставляй этот интерфейс в жавке

Vladislav
12.03.2018
11:03:07
Сейчас победил через анонимный объект. Но всё таки интересно как возвращать лямбду в таком случае?

Kirill
12.03.2018
11:03:44
пока никак

но там вроде где-то KEEP есть на это дело

Quantum Harmonizer
12.03.2018
11:03:58
Google
Quantum Harmonizer
12.03.2018
11:04:04
пока никак
да и не надо

Kirill
12.03.2018
11:05:15
Ну это спорно, был же холивар где-то выше)

Igor
12.03.2018
11:06:24
Ну это спорно, был же холивар где-то выше)
Напомни, а в скале есть SAM для скала-интерфейсов?

Страница 577 из 982