Size: a a a

Kotlin Community

2019 November 08

OY

Oleg Yukhnevich in Kotlin Community
Именно его сами запросы
Не учитывая то, что можно просто брать сгенеренный им sql и юзать другой драйвер
источник

BP

Bogdan Panchenko in Kotlin Community
Oleg Yukhnevich
И кстати
Джук не полностью ли на jdbc?
все на jdbc, нет асинхроных драайверов, только начали появлятся
источник

BP

Bogdan Panchenko in Kotlin Community
Oleg Yukhnevich
Именно его сами запросы
Не учитывая то, что можно просто брать сгенеренный им sql и юзать другой драйвер
можно @dmsol скидывал пример в @kotlin_jvm
источник

OY

Oleg Yukhnevich in Kotlin Community
@Get(value = "/users/demo», produces = MediaType.APPLICATION_JSON)
public Flowable<User> getDemoUsers() {
   var jooqQuery = dslContext.select(USERS.ID, USERS.EMAIL)
                             .from(USERS)
                             .where(USERS.EMAIL.contains("@demo"))
                             .orderBy(USERS.ID);
   var query = jooqQuery.getSQL();
   var values = jooqQuery.getBindValues();


   return Flowable.fromFuture(connection.inTransaction(c -> connection.sendPreparedStatement(query, values)))
                  .flatMap(result -> Flowable.fromIterable(() -> result.getRows().iterator()))
                  .map(r -> new User(r.getLong(USERS.ID.getName()), r.getString(USERS.EMAIL.getName())))
                  .doOnError(error -> {
                      throw new RuntimeException(error);
                  });
}
источник

OY

Oleg Yukhnevich in Kotlin Community
я нашёл только как раз как я написал, берётся sql из jooq и отдаётся в асинхронный драйвер
(но это уже не совсем котлин)
источник

AN

Alexander Nozik in Kotlin Community
Oleg Yukhnevich
но да, развивается медленно)
Либная команда на котлине - человек 6. Как они должны все успевать? Вот кто найдет ещё спонсора - будет быстрее.
источник

AO

Alexey Otts in Kotlin Community
Alexander Nozik
Либная команда на котлине - человек 6. Как они должны все успевать? Вот кто найдет ещё спонсора - будет быстрее.
6 человек это прилиная такая команда так то
источник

SB

Sergey Bezrukov in Kotlin Community
Oleg Yukhnevich
@Get(value = "/users/demo», produces = MediaType.APPLICATION_JSON)
public Flowable<User> getDemoUsers() {
   var jooqQuery = dslContext.select(USERS.ID, USERS.EMAIL)
                             .from(USERS)
                             .where(USERS.EMAIL.contains("@demo"))
                             .orderBy(USERS.ID);
   var query = jooqQuery.getSQL();
   var values = jooqQuery.getBindValues();


   return Flowable.fromFuture(connection.inTransaction(c -> connection.sendPreparedStatement(query, values)))
                  .flatMap(result -> Flowable.fromIterable(() -> result.getRows().iterator()))
                  .map(r -> new User(r.getLong(USERS.ID.getName()), r.getString(USERS.EMAIL.getName())))
                  .doOnError(error -> {
                      throw new RuntimeException(error);
                  });
}
В сравнении с

@Get(value = "/users/demo», produces = MediaType.APPLICATION_JSON)
public List<User> getDemoUsers() {
   userRepo.findByEmailLikeOrderById("%@demo%");
}

выглядит как-то не очень )  Не понимаю всеобщего хайпа вокруг асинхрона, а 99.9% случаев задача экономии тредов перед приложением вообще не стоит.
источник

AO

Alexey Otts in Kotlin Community
Sergey Bezrukov
В сравнении с

@Get(value = "/users/demo», produces = MediaType.APPLICATION_JSON)
public List<User> getDemoUsers() {
   userRepo.findByEmailLikeOrderById("%@demo%");
}

выглядит как-то не очень )  Не понимаю всеобщего хайпа вокруг асинхрона, а 99.9% случаев задача экономии тредов перед приложением вообще не стоит.
Ну тут же всё просто, если твое приложение укладывается в минимально разумное количество потоков по запросам, то асинк тебе не нужен
источник

AO

Alexey Otts in Kotlin Community
Про асинк то в чате трындят те у кого не укладывается
источник

АО

Алексей Овсянников in Kotlin Community
Alexey Otts
Про асинк то в чате трындят те у кого не укладывается
И потекут реки памяти, да омоют граничные берега:)
источник

AO

Alexey Otts in Kotlin Community
Я слишком слаб чтобы понять эту метафору 🌚
источник

SB

Sergey Bezrukov in Kotlin Community
Alexey Otts
Про асинк то в чате трындят те у кого не укладывается
По-моему про асинк сейчас трындят все, кому не лень и пытаются его запихнуть чуть ли не в hello world уже.  Хотя на деле он мало кому нужен - кода больше, диагностика и багфикс сложнее, а где-то там в конце тоннеля всё равно маячит БД, пусть и с "асинхронными" драйверами.
Хотя тут это наверное оффтоп. Пардон.
источник

BP

Bogdan Panchenko in Kotlin Community
Sergey Bezrukov
По-моему про асинк сейчас трындят все, кому не лень и пытаются его запихнуть чуть ли не в hello world уже.  Хотя на деле он мало кому нужен - кода больше, диагностика и багфикс сложнее, а где-то там в конце тоннеля всё равно маячит БД, пусть и с "асинхронными" драйверами.
Хотя тут это наверное оффтоп. Пардон.
Я не пихаю) пока нагрузка на бд и на сервер маленькая
источник

АО

Алексей Овсянников in Kotlin Community
Sergey Bezrukov
По-моему про асинк сейчас трындят все, кому не лень и пытаются его запихнуть чуть ли не в hello world уже.  Хотя на деле он мало кому нужен - кода больше, диагностика и багфикс сложнее, а где-то там в конце тоннеля всё равно маячит БД, пусть и с "асинхронными" драйверами.
Хотя тут это наверное оффтоп. Пардон.
источник

АО

Алексей Овсянников in Kotlin Community
там всё равно про то же трындёж был
источник

AO

Alexey Otts in Kotlin Community
Sergey Bezrukov
По-моему про асинк сейчас трындят все, кому не лень и пытаются его запихнуть чуть ли не в hello world уже.  Хотя на деле он мало кому нужен - кода больше, диагностика и багфикс сложнее, а где-то там в конце тоннеля всё равно маячит БД, пусть и с "асинхронными" драйверами.
Хотя тут это наверное оффтоп. Пардон.
А почему просто не сделать сразу "хорошо" если вы это можете, я не очень понимаю в чём сложность отладки асинка
источник

АО

Алексей Овсянников in Kotlin Community
Alexey Otts
А почему просто не сделать сразу "хорошо" если вы это можете, я не очень понимаю в чём сложность отладки асинка
Бытует мнение, что он не очень хорошо работает с поворотами экрана, течёт по памяти и вообще бяка. Но я так давно его не пользовал, что даже хз сейчас
источник

АО

Алексей Овсянников in Kotlin Community
лично меня чем корутины устраивают - сказал запустить что-то на контексте по-умолчанию и забыл, а он там уже разрулит как-то
источник

АО

Алексей Овсянников in Kotlin Community
Не устраивает количество потоков? сделал свой диспетчер для запуска
источник