Size: a a a

Java Web and more

2020 August 13

d

dennis Ig in Java Web and more
Переслано от Max Lazeba
Для своего кода эта фича вообще имба
Не уверен что оно заведется с тулами которые хотят генерировать врапперы или ещё чё
Я просто хз как moshi устроен
источник

d

dennis Ig in Java Web and more
Переслано от Max Lazeba
Ну собсна sealed class нужен только чтобы гарантировать что там ничего другого не прилетит. Если не влом иметь else бранч то вроде и пофиг
источник

d

dennis Ig in Java Web and more
у меня есть смутное ощущение, что это слегка overkill для такой простой задачи)

но смотрю примеры, и там как раз очень похожие use cases
источник

d

dennis Ig in Java Web and more
всё работает) единственное, не очень приятно, что

> 2. All the subclasses of a sealed class must be declared within the same file where the sealed class is declared.

а вдруг у меня 200 разновидностей команд?) всё в один .kt файл предлагают положить?)
источник

BU

Bekdaulet Ushkempiro... in Java Web and more
Всем привет!
Кто знает, как правильно реализовывать многопользовательский чат (личные, беседы/группы) с помощью WebSocket (spring-boot). То есть, как правильно хранить данные в базе, как правильно отображать, отмечать чат непрочитанным, их количество итд? В интернете нет особо полной информации по этому поводу. Буду рад помощи 😁
Может есть какая-то библиотека готовая с чатом?)
источник
2020 August 14

OP

Oleg Pavl in Java Web and more
Bekdaulet Ushkempirov
Всем привет!
Кто знает, как правильно реализовывать многопользовательский чат (личные, беседы/группы) с помощью WebSocket (spring-boot). То есть, как правильно хранить данные в базе, как правильно отображать, отмечать чат непрочитанным, их количество итд? В интернете нет особо полной информации по этому поводу. Буду рад помощи 😁
Может есть какая-то библиотека готовая с чатом?)
У Вайбера должна быть готовая библиотека с чатом, спроси, может поделятся) Остальное на три статьи на Хабре тянет. Конкретнее вопросы задавай. Как правильно написать вотсапп - плохой вопрос по-моему.
источник

А

Андрій in Java Web and more
На гите есть
источник

А

Андрій in Java Web and more
Bekdaulet Ushkempirov
Всем привет!
Кто знает, как правильно реализовывать многопользовательский чат (личные, беседы/группы) с помощью WebSocket (spring-boot). То есть, как правильно хранить данные в базе, как правильно отображать, отмечать чат непрочитанным, их количество итд? В интернете нет особо полной информации по этому поводу. Буду рад помощи 😁
Может есть какая-то библиотека готовая с чатом?)
источник

AE

Alexandr Emelyanov in Java Web and more
dennis Ig
Внезапно … простой (?) вопрос для тех, кто Kotlin копал.

Есть JSON API. У него есть конкретный набор команд. Для каждой команды есть Request и Response. Для них генерируем JsonAdapter’ы для Moshi.

Например:



@JsonClass(generateAdapter = true)
class LoginV1Request (
   val command: String = "login",
   val protocolVersion: Int = 1
): AbstractRequest()
{
   @Transient val Response = LoginV1Response::class
}


@JsonClass(generateAdapter = true)
class LoginV1Response (
   val status: String,
   val responseData: Map<String,String>,
   val exception: Map<String,String>
): AbstractResponse()


---

Хотелось бы по типу Request’а сразу получать класс соответвующего ему Response. Можно ли это как-то сделать без использования ::class и Reflection?

Пишут, что Reflection в Kotlin очень дорогой, и его использование подключает гигантский JAR.
Спроси тут @kotlin_lang

Не уверен насчёт силедов. Мне кажется без рефлексии и дженериков или меты не обойтись
источник

AE

Alexandr Emelyanov in Java Web and more
В котлин на уровне языка нет пар классов
источник

AE

Alexandr Emelyanov in Java Web and more
dennis Ig
Внезапно … простой (?) вопрос для тех, кто Kotlin копал.

Есть JSON API. У него есть конкретный набор команд. Для каждой команды есть Request и Response. Для них генерируем JsonAdapter’ы для Moshi.

Например:



@JsonClass(generateAdapter = true)
class LoginV1Request (
   val command: String = "login",
   val protocolVersion: Int = 1
): AbstractRequest()
{
   @Transient val Response = LoginV1Response::class
}


@JsonClass(generateAdapter = true)
class LoginV1Response (
   val status: String,
   val responseData: Map<String,String>,
   val exception: Map<String,String>
): AbstractResponse()


---

Хотелось бы по типу Request’а сразу получать класс соответвующего ему Response. Можно ли это как-то сделать без использования ::class и Reflection?

Пишут, что Reflection в Kotlin очень дорогой, и его использование подключает гигантский JAR.
Если не секрет, какова цель такого связывания?
источник

AE

Alexandr Emelyanov in Java Web and more
как webshtorm относится к этому чату?
источник

К

Кирилл in Java Web and more
Подскажите, как можно в спринг сесуриту настроить аутентификацию несколькими способами. К примеру, нужен доступ к одной ручке с фронта и из других сервисов. С фронта аутентификация предполагается по кукам, из других сервисов по токену. Пока что получается так, что все сервисы проходят через все фильтры, что нехорошо.
Любым полезным ссылкам или наводкам буду благодарен.
источник

А

Артем in Java Web and more
Кирилл
Подскажите, как можно в спринг сесуриту настроить аутентификацию несколькими способами. К примеру, нужен доступ к одной ручке с фронта и из других сервисов. С фронта аутентификация предполагается по кукам, из других сервисов по токену. Пока что получается так, что все сервисы проходят через все фильтры, что нехорошо.
Любым полезным ссылкам или наводкам буду благодарен.
вот если первую фразу написать в гугл начиная сразу после "как можно в" находит просто кучу ссылок с ответом на твой вопрос.
например вот
источник

А

Анна in Java Web and more
#вакансия #java #Spring #мск #москва #спб #краснодар #офис #fulltime
Локация: Москва, Санкт-Петербург, Краснодар
Формат работы: офис
Занятость: полная
ЗП: оклад 90 000 - 260 000 руб. (net)
Компания: ООО "БИЗНЕС ИНТЕГРАЦИЯ"

Собеседование проводится удаленно в Zoom

Мы создаем высоконагруженные сервисы, которыми ежедневно пользуются почти 100 миллионов человек в России. У нас распределенная команда и сейчас, в связи с разширением планов по автоматизации, мы в поисках Java-разработчиков уровня от Middle до Senior на проект одного из крупнейших банков РФ.

🔹 Требования:
- Знание Java 8+;
- Опыт работы с реляционными БД (Oracle) Hibernate, Liquibase;
- Понимание принципов DevOps, опыт работы с основными инструментами (Jenkins, Git, Maven)
- Опыт использования Spring, Spring boot Frameworks
- Опыт многопоточного программирования
- Понимание принципов SOAP, REST, JMS
- Навыки написания интеграционных и юнит-тестов.

🔹 Будет плюсом:
- Понимаете основы микросервисной архитектуры и знаете паттерны проектирования;
- Имеете опыт в автоматизации тестирования backend-приложений;
- Работали с Apache Kafka / Kafka Streams;
- Знакомы с ELK — Elasticsearch, Logstash, Kibana.
- Понимание основ микросервисной архитектуры и знание паттернов;
- Опыт работы с Apache Kafka / Kafka Streams;
- Опыт работы с ELK - Elasticsearch, Logstash, Kibana.

🔹 Мы предлагаем:
- Полностью «белая» заработная плата, оформление в соответствии с ТК РФ с первого дня работы;
- ДМС;
- Комфортный офис;
- Работа в команде опытных и прокачанных специалистов, у которых, поверьте, есть чему поучиться.

📧Контакты:
telegram: @it_hr_Anna
e-mail: anna.harina@businessintegration.ru
источник

d

dennis Ig in Java Web and more
По поводу вчерашнего вопроса. Решение оказалось ещё проще.

Так как нам нужно не только посылать команды, но и здесь же обрабатывать ответ от них, класс ответа можно сразу указывать при выполнении команды.

val responseLogin = executeCommand<ApiResponse.LoginV1Response>(ApiCommand.LoginV1Command())


А саму функцию executeCommand можно объявить как INLINE, и тогда можно использовать “REIFIED type parameter”, и благодаря этому в теле функции узнавать, что именно за тип ожидается в ответе:

internal inline fun <reified T: ApiResponse> executeCommand(command: ApiCommand): T {
       val adapterCommand = moshi.adapter<ApiCommand>(command::class.java)
       val adapterResponse = moshi.adapter<T>(T::class.java)


всё просто! (на самом деле нет)

чуть более полный пример: https://gist.github.com/wildraid/908edf129a2afc77373caeaea67f077b
источник
2020 August 15

C

Captcha bot in Java Web and more
Berry John, если ты не бот, нажми "два". Ботов удалено: 140.
источник

C

Captcha bot in Java Web and more
Mika Hahn, если ты не бот, нажми "четыре". Ботов удалено: 140.
источник

C

Captcha bot in Java Web and more
جمانة يوسف, если ты не бот, нажми "четыре". Ботов удалено: 140.
источник

C

Captcha bot in Java Web and more
Mika Hahn, если ты не бот, нажми "четыре". Ботов удалено: 140.
источник