Size: a a a

Programming Offtop

2020 May 11

(

( in Programming Offtop
да кстати
источник

QH

Quantum Harmonizer in Programming Offtop
(
@Harmonizr во, вот так хочу в котлине
val booksListing: Endpoint[(BooksFromYear, Limit, AuthToken), String, List[Book], Nothing] = endpoint
   .get
   .in(("books" / path[String]("genre") / path[Int]("year")).mapTo(BooksFromYear))
   .in(query[Int]("limit").description("Maximum number of books to retrieve"))
   .in(header[String]("X-Auth-Token"))
   .errorOut(stringBody)
   .out(jsonBody[List[Book]])

отправка:
val booksListingRequest: Request[Either[String, List[Book]], Nothing] = booksListing
 .toSttpRequest(uri"http://localhost:8080")
 .apply(BooksFromYear("SF", 2016), 20, "xyz-abc-123")

если чё https://github.com/softwaremill/tapir
Офигенная идея с оператором деления, спасибо
источник

AL

Alexander Levin in Programming Offtop
Т.е. конкретно тут даже без произвольных кастомных операторов можно жить (хотя наверное тебя могут сильно пнуть за использование div как просто "слеш удобно юзать")
источник

AL

Alexander Levin in Programming Offtop
(
вроде тайп-фемили только нужны, чтобы типы эффективно траверсить
Давай минимальный вариант ещё посмотрим, может всё в кодген можно отправить, лол
источник

AL

Alexander Levin in Programming Offtop
Т.е. in должен расширять список параметров. Сейчас это засчёт имплиситов держится вроде, можно 22+ экстеншна накинуть, лол, больше параметров никому не надо.
/ должен структуру обобщённую расширять. Также делаем 22+ функции.
mapTo должен уметь конвертить обобщённую структуру в конкретную. Говорим, что литерал тайпы нужны (иначе нетипобезопасно как-то), а конвертация должна быть сгенерена заранее в классе.

@happy_bracket что там ещё неочевидного заковыристого?
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexander Levin
Т.е. конкретно тут даже без произвольных кастомных операторов можно жить (хотя наверное тебя могут сильно пнуть за использование div как просто "слеш удобно юзать")
Хз, постоянно обмазываю работу с FS слешами-дивами
источник

(

( in Programming Offtop
Alexander Levin
Давай минимальный вариант ещё посмотрим, может всё в кодген можно отправить, лол
больше никому не надо (битрикс выглядывает из-за угла)
источник

AL

Alexander Levin in Programming Offtop
(
больше никому не надо (битрикс выглядывает из-за угла)
Выстави в грейдл конфиг чиселку на количество генерённых функций
источник

(

( in Programming Offtop
Alexander Levin
Т.е. in должен расширять список параметров. Сейчас это засчёт имплиситов держится вроде, можно 22+ экстеншна накинуть, лол, больше параметров никому не надо.
/ должен структуру обобщённую расширять. Также делаем 22+ функции.
mapTo должен уметь конвертить обобщённую структуру в конкретную. Говорим, что литерал тайпы нужны (иначе нетипобезопасно как-то), а конвертация должна быть сгенерена заранее в классе.

@happy_bracket что там ещё неочевидного заковыристого?
да это всё можно сделать, просто потом Endpoint<...> должен суметь выставить метод call, в котором все те параметры перечислены
источник

d

dimiii in Programming Offtop
(
@Harmonizr во, вот так хочу в котлине
val booksListing: Endpoint[(BooksFromYear, Limit, AuthToken), String, List[Book], Nothing] = endpoint
   .get
   .in(("books" / path[String]("genre") / path[Int]("year")).mapTo(BooksFromYear))
   .in(query[Int]("limit").description("Maximum number of books to retrieve"))
   .in(header[String]("X-Auth-Token"))
   .errorOut(stringBody)
   .out(jsonBody[List[Book]])

отправка:
val booksListingRequest: Request[Either[String, List[Book]], Nothing] = booksListing
 .toSttpRequest(uri"http://localhost:8080")
 .apply(BooksFromYear("SF", 2016), 20, "xyz-abc-123")

если чё https://github.com/softwaremill/tapir
*божественно*
источник

AL

Alexander Levin in Programming Offtop
Andrew Mikhaylov
Хз, постоянно обмазываю работу с FS слешами-дивами
Не, я в целом особо не против, но с другой стороны помнится, как я сильно удивился в топике про "добавьте побитовые операторы" где все такие "нейтив, интероп с си, очень нужны побитовые операции нормальные", что там кто-то в открытую сказал "Да, добавьте пожалуйста, я хочу в channel таким образом накидывать элементы" или что-то такое.
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexander Levin
Не, я в целом особо не против, но с другой стороны помнится, как я сильно удивился в топике про "добавьте побитовые операторы" где все такие "нейтив, интероп с си, очень нужны побитовые операции нормальные", что там кто-то в открытую сказал "Да, добавьте пожалуйста, я хочу в channel таким образом накидывать элементы" или что-то такое.
Всегда есть люди, которые готовы это абьюзить 🤷‍♂
Как по мне, главное, чтобы после взгляда на код с использованием оператора без заглядывания в его доку / код было понятно, что происходит. Слеш при работе с путями под это попадает, крестовый >> на стримах и подобном нет (ну кроме как для людей с бекграундом в крестах, конечно).
источник

d

dimiii in Programming Offtop
Scientists Find The First Animal That Doesn't Need Oxygen to Survive
https://www.sciencealert.com/scientists-find-the-first-animal-that-doesn-t-need-oxygen-to-survive
источник

d

dimiii in Programming Offtop
No shit это Нобелевка
источник

AN

Alexander Nozik in Programming Offtop
dimiii
Обидно, когда язык дизайнят оглядываясь на текстовый редактор, да?
Да, а фонарики надо дизайнить опираясь на динамо-машину, потому что батарейки - это вендор лок.
источник

AN

Alexander Nozik in Programming Offtop
Alexander Levin
Literal types вроде нужен ещё, нет?
Очень ограничено. И на самом деле довольно легко эмулируется там, где его нет
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexander Nozik
Да, а фонарики надо дизайнить опираясь на динамо-машину, потому что батарейки - это вендор лок.
Не совсем точная аналогия, всё же на батарейки есть стандарт.
источник

d

dimiii in Programming Offtop
Alexander Nozik
Да, а фонарики надо дизайнить опираясь на динамо-машину, потому что батарейки - это вендор лок.
Вообще прозрачная аналогия
источник

AM

Andrew Mikhaylov in Programming Offtop
На IDE из популярных стандартов я пока только LSP видел, и тот всё равно на вендор-лок тянет.
источник

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
Не совсем точная аналогия, всё же на батарейки есть стандарт.
Первое, что в голову пришло. Но уверен, что можно придумать более точную аналгоию. На самом деле на вскоде тоже можно на котлин вполне писать. Просто проектировать языки без учета IDE - это странно
источник