169 похожих чатов

Окей Тогда я ещё скажу своё решение, что на счёт него я

сделал минимальный билдер класс и теперь оно делается так
Payload { data("text"); metadata(byteArrayOf(1, 2, 3)) }
и тогда у data/metadata пару оверлоадов + можно достаточно просто это дело расширять под свои нужды
лучше это, или хуже 15 оверлоадов или BRP.fromString("text") и тд, что думаете?
учитывая, что это публичный апи либы

28 ответов

11 просмотров

Если назвать это buildPayload, то очень даже норм. А там в теории может появиться что-то ещё?

Oleg-Yukhnevich Автор вопроса
Vladimir Petraković
Если назвать это buildPayload, то очень даже норм....

да вот например там ещё compositeMetadata билдер https://github.com/rsocket/rsocket-kotlin/blob/enhancement/metadata-and-payload-api/playground/src/commonMain/kotlin/Metadata.kt#L41

Oleg-Yukhnevich Автор вопроса
Vladimir Petraković
Если назвать это buildPayload, то очень даже норм....

вот кстати с buildPayload - это да, что-то я забыл про это

Oleg Yukhnevich
да вот например там ещё compositeMetadata билдер h...

Так всё уже готово, в чём тогда вопрос? 😄

Oleg-Yukhnevich Автор вопроса
Vladimir Petraković
Так всё уже готово, в чём тогда вопрос? 😄

оно не готово ещё, в этом и суть, что хотелось бы узнать другие возможные варианты

Oleg Yukhnevich
оно не готово ещё, в этом и суть, что хотелось бы ...

DSL - беспроигрышный вариант в котлине. А этот BRP - это ваш класс или из джавовой либы?

Жаль, что в дслке нет возможности зафорсить наличие вызова конкретного метода, как обязательного data у вас, но в остальном это вполне логичное решение. В джаве, я думаю, я б такую задачу билдером и решал, аналогия вполне прямая в котлин получается.

Oleg-Yukhnevich Автор вопроса
Andrew Mikhaylov
Жаль, что в дслке нет возможности зафорсить наличи...

в теории, data может быть пустой) поэтому указание только metadata - валидный кейс

Oleg Yukhnevich
из ktor-io)

Тогда я бы сделал конструктор с data и metadata, принимающими этот класс. Если что всегда можно накинуть ему в компаньон методы для создания из разных других типов.

Oleg Yukhnevich
в теории, data может быть пустой) поэтому указание...

А, ладно) Я по оригинальному посту подумал иначе.

Oleg Yukhnevich
в теории, data может быть пустой) поэтому указание...

Пустая data по дефолту - это сомнительное поведение. Если такое хочется, мне кажется, можно и явно указать.

Oleg-Yukhnevich Автор вопроса
Vladimir Petraković
Тогда я бы сделал конструктор с data и metadata, п...

я сейчас смотрю в сторону 2-ух ф-ий одна принимает 2 BRP вторая - билдер

Oleg-Yukhnevich Автор вопроса
Andrew Mikhaylov
А, ладно) Я по оригинальному посту подумал иначе.

оно просто имеет значение в малых кейсах единственное, не совсем валидный кейс наверно это Payload {} - но опять же, сомнительно, что кто-то такое будет делать

Oleg-Yukhnevich Автор вопроса
Vladimir Petraković
Пустая data по дефолту - это сомнительное поведени...

может быть и лучше падать сразу, по выходу из билдера, если нет explicit data, не знаю

Oleg Yukhnevich
может быть и лучше падать сразу, по выходу из билд...

Мне кажется, намного лучше. Чем быстрее упадёт код, который делает не то, что задумано, тем лучше. А иначе это какой-то protobuf style.

Oleg-Yukhnevich Автор вопроса
Oleg-Yukhnevich Автор вопроса
Andrew Mikhaylov
Жаль, что в дслке нет возможности зафорсить наличи...

я кстати вспомнил, что видел что-то на счёт этого толи в котлин репозитории, толи что в контрактах то есть там можно было объявить контракт на то, что данная ф-ия будет вызвана в данном контексте например AT_LEAST_ONCE или типа того так что может в какой-то версии котлина мы дождёмся такого :)

Oleg Yukhnevich
я кстати вспомнил, что видел что-то на счёт этого ...

В контрактах такое есть, но это скорее для ситуаций вроде val v: Int run { v = 42 } Но да, кто знает, может, докрутят :)

Oleg-Yukhnevich Автор вопроса
Andrew Mikhaylov
В контрактах такое есть, но это скорее для ситуаци...

я видел это где-то в ветке котлина, либо в репозитории каком-то от JB то есть типа research :)

Oleg-Yukhnevich Автор вопроса
Andrew Mikhaylov
А, значит чёт другое)

нашёл! https://github.com/demiurg906/kotlin-contracts-samples/blob/master/src/main/kotlin/samples/SafeBuilders.kt

Oleg Yukhnevich
нашёл! https://github.com/demiurg906/kotlin-contra...

Симпатишно :) Там, похоже, ещё и механизм пропагации контрактов изнутри наружу прототипировался)

Oleg Yukhnevich
нашёл! https://github.com/demiurg906/kotlin-contra...

Ух, огнище, вот бы сделали такое

Oleg-Yukhnevich Автор вопроса
Andrew Mikhaylov
Симпатишно :) Там, похоже, ещё и механизм пропагац...

да там вообще много всего я так понимаю хотели на контрактах сделать А потом появились 3 компилятора, которые надо в один* объединить и походу весь ресёрч остановился надеюсь когда будет stable IR то начнётся жара

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта