Тёмный
Рустам Курамшин
Рустам Курамшин
Рустам Курамшин
Подписаться
Рассказываю о backend-разработке на Java, Kotlin и Spring Boot
Hello, Kotlin (Основы Kotlin)
56:47
2 года назад
Комментарии
@andreykolesnikov960
@andreykolesnikov960 4 дня назад
при использовании Jmix в больших проектах столкнетесь с проблемами в производительности. для web-админки подойдет, да
@rustam-kuramshin
@rustam-kuramshin 4 дня назад
@@andreykolesnikov960 какие есть реальные кейсы из практики? Было бы интересно обсудить.
@user-cz8pg1xf2y
@user-cz8pg1xf2y 12 дней назад
А не подскажите примеры правильного развертывание spring boot в кубере? Через 2.5 недели хакатон, я девопс стажер друг бекендер на джаве, хотим заранее инфраструктуру готовить под хакатон) И поэтому хочется посмотреть примеры в гитхабе с понятным readme
@rustam-kuramshin
@rustam-kuramshin 12 дней назад
Достаточно запустить spring boot в docker-контейнере. Далее его развертывание в kubernetes мало чем отличается от других фреймворков. Почитать про особенности можно здесь docs.spring.io/spring-boot/how-to/deployment/cloud.html А в целом читайте туториалы как деплоить микросервисы в kubernetes. Их очееь много.
@user-pi2pg3nl3n
@user-pi2pg3nl3n 15 дней назад
круто, тебя очень интересно слушать, подача огонь!
@vitya1337
@vitya1337 17 дней назад
👍 это круто
@sergey_molotoff
@sergey_molotoff 17 дней назад
По-моему, лучший обзор на инструменты Spring Cloud. Спасибо!
@vladuxa2011
@vladuxa2011 17 дней назад
👍
@socialcatalyst2608
@socialcatalyst2608 19 дней назад
ребят, а как сваггер прокинуть через gateway?
@rustam-kuramshin
@rustam-kuramshin 12 дней назад
Привет. Это очень общий вопрос. В целом нужно в конфиге указать роут для прокидывания статики свагера с того сервиса кто эту статику раздает.
@vasyay5307
@vasyay5307 19 дней назад
"отвязать миграцию liquibase от релиза ваших сервисов" , да нет, всё это должно быть в одном релизе. Зачем отвязывать.
@rustam-kuramshin
@rustam-kuramshin 19 дней назад
Не для всех проектов это подходит
@user-gw6df6ns7e
@user-gw6df6ns7e 6 дней назад
Зависит от конкретного сервиса. Иногда достаточно автоматического базового подключения. Часто надо предусматривать скрипты отката.
@vasyay5307
@vasyay5307 6 дней назад
Возможность отката в идеале всегда, релиз мс + миграция. Если у вас логика вынесена в БД и вы катите миграцию без сервиса, значит у вас что-то не так.
@semzin
@semzin 19 дней назад
Посмотрел примеры Vaadin? На полных щах предлагают ui писать на Java, а не на темплейтах с маркапом?
@rustam-kuramshin
@rustam-kuramshin 19 дней назад
@@semzin vaadin это java-ориентированная фронтенд разработка, да. По сути это всё для бэкендеров сделано. Если есть фронты, то нужно делать на классическом фронтендовом стеке.
@dendr576
@dendr576 23 дня назад
Классное выступление, много полезной информации. Спасибо
@rustam-kuramshin
@rustam-kuramshin 23 дня назад
@@dendr576 спасибо, стараюсь )
@neonsun6162
@neonsun6162 Месяц назад
представляю как это всё звучит для людей, которые не в теме, столько английских слов, да еще с такой плотностью)
@rustam-kuramshin
@rustam-kuramshin Месяц назад
@@neonsun6162 )))
@TheSemenFarada
@TheSemenFarada Месяц назад
Такой вопрос - позволяет ли spring cloud как то показать граф зависимостей между микросервисами? Напермер что сервис1 обращаеться (посылает запросы) к сервису 2 , сервис 2 - к сервису 3 а сервис 3 - к сервису 1 и все они обращаються к сервису 4 ?
@rustam-kuramshin
@rustam-kuramshin Месяц назад
Нет. Для этого нужно идти в observability инструменты. Если говорить про последнии версии проектов в spring'е, то был сделае переход на open telemetry. Далее вы можете взять Jaeger для анализа трейсов OTel и будут вам карты микросервисов как здесь описано www.aspecto.io/blog/jaeger-tracing-the-ultimate-guide/
@rengerxavier2845
@rengerxavier2845 Месяц назад
Рустам, очень интересно про buildpacks с настройкой его для спринга, что там можно настроить, и можно ли настроить так, чтобы командой ./gradlew bootBuildImage запускало сборку в контейнере (независимо от окружения), и какие возможности настройки этого хозяйства есть. Искал в интернете, не особо чего нашел, в доке самого билдпакса, только как создавать свои билдеры, но как конфигурировать дефолтные и т.п. не видел...
@rustam-kuramshin
@rustam-kuramshin Месяц назад
Есть в доках Spring Boot раздел про maven и gradle плагины spring'а: docs.spring.io/spring-boot/gradle-plugin/packaging-oci-image.html и docs.spring.io/spring-boot/maven-plugin/build-image.html Там можно почитать про работу с buildpacks. Про packeto buildpacks для Java проектов можно почтить тут paketo.io/docs/howto/java/ В итоге есть очень много параметров для настройки.
@rengerxavier2845
@rengerxavier2845 Месяц назад
Спасибо друг, очень во время! Надо было собрать jmix приложение в докер образ, но хост корпоративного докер-дева старый (18 убунта) и новый nodeJs для сборки туда просто не встает, но с билдером, да еще и со слоями, чутка модифицировал Dockerfile, чтобы JAVA_OPTS пробрасывать в ентрипоинт и всё получилось! Лайк и подписка🤗🤗
@roman_biller
@roman_biller Месяц назад
респект!
@armenarz4062
@armenarz4062 Месяц назад
у меня всегда primefaces
@rustam-kuramshin
@rustam-kuramshin Месяц назад
По описанию интересный. Надо глянуть.
@swenbomwollen4263
@swenbomwollen4263 Месяц назад
Спасибо за видео! Из доклада не очень понял, а какие в итоге преимущества по сравнению с использованием чистого Ваадина? На сайте jmix в качестве преимуществ тоже в основном перечисляют фичи Ваадина, и с бутом+секьюрити Ваадин уже дружит.
@rustam-kuramshin
@rustam-kuramshin Месяц назад
Скорость разработки. Jmix не равен Vaadin + Spring Boot. Потому что jmix очень многое реализует за разработчика. На jmix можно за одну минуту нашелкать таблицу в дизайнере моделей и уже сразу автоматический к ней можно сгенертровать UI со списком и всеми формами. И это меньше что можно делать. На оф сайте в доках и примерах можно почитать.
@viktor_fadeev
@viktor_fadeev Месяц назад
Команда Jmix подготовила специальный раздел документации docs.jmix.ru/jmix/concepts/index.html с разъяснениями концепции фреймворка, принципов и ключевых фичей. Посмотрите раздел - там ответы
@user-ct3eh3tb7q
@user-ct3eh3tb7q Месяц назад
Ну че то пример на реакте написан как будто намеренно плохо что бы показать какой он якобы не читаемый . особенно блок try/catch внутри flatmap, есть же адекватные инструменты у данного апи для этих манипуляций которые читаемы и лаконичны
@user-ct3eh3tb7q
@user-ct3eh3tb7q Месяц назад
В остальном информации достаточно , много и достаточно подробно )
@ConfidenceGold
@ConfidenceGold Месяц назад
Хз, если чисто админку накинуть наверное пойдет. Но прям для Энтерпрайза будет дешевле фронт на реакте для гибкости и бэк на спринг буте заебенить
@rustam-kuramshin
@rustam-kuramshin Месяц назад
Как же дешевле, если больше кода писать нужно. Jmix используют в достаточно крупных компаниях.
@ascar66
@ascar66 Месяц назад
просто для банквоского внутреннего приложения не нужна красота потому что это скорее рабочий инструмент. Да даже 1с предприятие к примеру его задача быть надежным инструментом а не быть красивым
@volk_alen
@volk_alen Месяц назад
Очень подробно, понятно! Спасибо большое!
@maximtronin4510
@maximtronin4510 Месяц назад
Я использую jmix на многих проектах, крутой инструмент.
@rustam-kuramshin
@rustam-kuramshin Месяц назад
Согласен )
@konstantinchvilyov9602
@konstantinchvilyov9602 2 месяца назад
deferred [dɪˈfɜːd] отсроченный, отложенный, замедленный. defer [dɪˈfɜː] отсрочить, отложить.
@konstantinchvilyov9602
@konstantinchvilyov9602 2 месяца назад
MDC (Mapped Diagnostic Context)[mæpt][daɪəgˈnɒstɪk][ˈkɒntekst] - Среда Отображаемого Выявления
@konstantinchvilyov9602
@konstantinchvilyov9602 2 месяца назад
unconfined [ʌnkənˈfaɪnd] неограниченный
@konstantinchvilyov9602
@konstantinchvilyov9602 2 месяца назад
Intercepted [ɪntəˈseptɪd] перехваченный. Unintercepted - не перехваченный. Intercept [ˈɪntəsept] останавливать, прерывать, перехватывать, задерживать.
@konstantinchvilyov9602
@konstantinchvilyov9602 2 месяца назад
intrinsic [ɪnˈtrɪnsɪk] присущий; встроенный, внутренний, собственный
@konstantinchvilyov9602
@konstantinchvilyov9602 2 месяца назад
resume [rɪˈzjuːm] продолжить, возобновить, восстановить
@konstantinchvilyov9602
@konstantinchvilyov9602 2 месяца назад
continuation passing [ˈpɑːsɪŋ] style - способ переходящего продолжения
@konstantinchvilyov9602
@konstantinchvilyov9602 2 месяца назад
continuation [kəntɪnjʊˈeɪʃn] продолжение
@konstantinchvilyov9602
@konstantinchvilyov9602 2 месяца назад
promise [ˈprɒmɪs] обещание, обязательство
@viktor_fadeev
@viktor_fadeev 2 месяца назад
Ох, красиво ввернули про Jmix. Респект и уважуха от всей нашей дружной команды!
@user-ei8xn2bx2i
@user-ei8xn2bx2i 3 месяца назад
очень доступное видео/ Спасибо
@roman_biller
@roman_biller 3 месяца назад
круто! )
@viktor_fadeev
@viktor_fadeev 3 месяца назад
Выставочная зона в этом году клево организована. Места всем хватает
@rustam-kuramshin
@rustam-kuramshin 3 месяца назад
Эт точно
@konstantinchvilyov9602
@konstantinchvilyov9602 5 месяцев назад
Future [ˈfjuːʧə] - Будущее
@alexeis628
@alexeis628 5 месяцев назад
43:50 ну вообще у программиста есть возможность написать коммент. Пишите комменты чаще, чтобы понимать какой тип Вы ожидаете получить
@frednekrasov7019
@frednekrasov7019 5 месяцев назад
Мне кажется или тут почти все из пальца высасывают минусы.
@user-br4gt7xu2j
@user-br4gt7xu2j 6 месяцев назад
глядя на котлин, чувство что его придумали программисты, которым не давали говнокодить на джаве, но им очень сильно хотелось
@qrthack
@qrthack 6 месяцев назад
Такое ощущение, что Антон не особо любит Java, а Kotlin тем более
@rustam-kuramshin
@rustam-kuramshin 6 месяцев назад
:)
@qrthack
@qrthack 6 месяцев назад
@@rustam-kuramshin что посоветуете для того, чтобы легче было устроиться на работу, Java, C#, Golang? если знать на достойном уровне
@rustam-kuramshin
@rustam-kuramshin 6 месяцев назад
@@qrthack читать книги и писать код. Курсы и прочее не советую. По java и go много хороших книг. Остальное - практика. Сейчас из-за перегретого рынка любой человек, который мало мальски что-то знает, будет замтен на интервью.
@AntonArhipov
@AntonArhipov 4 месяца назад
Видимо Антон просто не любит программировать :)
@lonchakovav
@lonchakovav 6 месяцев назад
"(Kotlin) Более выразительный язык, больше возможностей отстрелить ногу" - э, погодите, стрелять в ногу, это фишка С++ :)
@user-dx9yq5js2c
@user-dx9yq5js2c 6 месяцев назад
Спасибо!
@devprototype
@devprototype 6 месяцев назад
Спасибо большое! Очень полезно!
@devprototype
@devprototype 6 месяцев назад
Спасибо большое! Очень полезно!
@aiislive
@aiislive 6 месяцев назад
А почему не Clojure?
@rustam-kuramshin
@rustam-kuramshin 6 месяцев назад
Видимо из-за его уровня популярности. Kotlin всё-таки сильно популярен. Про Clojure ничего не могу сказать, не изучал его.
@flowname
@flowname 7 месяцев назад
21:15, год-полтора спустя, JDK21 выкатил Loom, имеет вложенный паттерн-матчинг, рекорды используются во все концы, а Котлин отстаёт по фичам. Что и требовалось доказать. И да, для null-safety давно существуют бибилиотечные функциональные интерфейсы вроде Vavr.
@gregandark8571
@gregandark8571 3 месяца назад
Ny i cho?
@AlexJPep
@AlexJPep 7 месяцев назад
ого, ещё довоенное время...
@yantasheiko58
@yantasheiko58 8 месяцев назад
XD
@yantasheiko58
@yantasheiko58 8 месяцев назад
Супер понятно, спасибо! Отличный митап.
@bulatnikoffdmitrii4438
@bulatnikoffdmitrii4438 9 месяцев назад
Cахар это хорошо, но по сути, действительно, концептуально это ничего не решает. Корутины и в java есть, реактивные потоки, лямбды и тд. В чем плюсы котлина, я так и не понял, кроме того что компиляция происходит медленнее, и еще мне кажется что бОльшая свобода синтаксиса будет наталкивать на решения с "кривой" архитектурой , проще говоря будет больше говнокода, такое я видел в JS. А мне показалось, что котлин это вариант JS для JVM. И еще я заметил, что Антону было тяжко читать вопрос, где он сказал, что слишком много букв, это побочка от перехода на котлин с его сахаром?)
@petervakulin3987
@petervakulin3987 9 месяцев назад
Структуры нет, воды как в мировом океане... Текстовая выжимка этого выступления займет максимум пару страниц крупным кеглем. Бесполезно.