Очередной #дайджест для джавистов
🔵 Modules Make javac Easy — про компиляцию и сборку Java-приложения не самым популярным способом в текущее время через javac
🔵 Model Data, Whole Data, and Nothing but the Data — в статье рассматривается принцип моделирования данных в ориентированном на данные программировании (DOP), который заключается в моделировании данных, всех данных и только данных
🔵 Scala toolig ecosystem со Scalar Conference 2024 — с каждым тулом идет в комплекте сводка о том, насколько этот инструмент жив и какие функции хотят добавить
🔵 Model Data Immutably and Transparently — принцип помогает избежать ошибок, связанных с изменением состояния объектов, используемых различными подсистемами
🔵 Мониторинг и профилирование Spring Boot за две строчки — механизм для мониторинга времени выполнения методов, используя аннотацию @ActuatorProfiling и Spring Boot Actuator для экспонирования данных профилирования через настраиваемые конечные точки
🔵 Modules Make javac Easy — про компиляцию и сборку Java-приложения не самым популярным способом в текущее время через javac
🔵 Model Data, Whole Data, and Nothing but the Data — в статье рассматривается принцип моделирования данных в ориентированном на данные программировании (DOP), который заключается в моделировании данных, всех данных и только данных
🔵 Scala toolig ecosystem со Scalar Conference 2024 — с каждым тулом идет в комплекте сводка о том, насколько этот инструмент жив и какие функции хотят добавить
🔵 Model Data Immutably and Transparently — принцип помогает избежать ошибок, связанных с изменением состояния объектов, используемых различными подсистемами
🔵 Мониторинг и профилирование Spring Boot за две строчки — механизм для мониторинга времени выполнения методов, используя аннотацию @ActuatorProfiling и Spring Boot Actuator для экспонирования данных профилирования через настраиваемые конечные точки
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Узнаем разницу между 2 датами, представленными в виде строк
Для вычисления разницы между двумя датами, представленными в виде строк, можно использовать классы java.time.LocalDate и java.time.temporal.ChronoUnit из пакета java.time.
В этом примере мы используем метод LocalDate.parse() для преобразования строковых значений в объекты типа LocalDate. Затем мы используем метод ChronoUnit.between() для вычисления разницы между двумя датами в днях, месяцах и годах.
Обратите внимание, что вы должны использовать формат даты «yyyy-MM-dd» для парсинга строковых значений даты. Если ваши строки даты имеют другой формат, вам может потребоваться использовать другой метод для преобразования их в объекты LocalDate.
Для вычисления разницы между двумя датами, представленными в виде строк, можно использовать классы java.time.LocalDate и java.time.temporal.ChronoUnit из пакета java.time.
В этом примере мы используем метод LocalDate.parse() для преобразования строковых значений в объекты типа LocalDate. Затем мы используем метод ChronoUnit.between() для вычисления разницы между двумя датами в днях, месяцах и годах.
Обратите внимание, что вы должны использовать формат даты «yyyy-MM-dd» для парсинга строковых значений даты. Если ваши строки даты имеют другой формат, вам может потребоваться использовать другой метод для преобразования их в объекты LocalDate.
🤔🤔 Эффективность Spring-приложений в рантайме. Текущее состояние дел и планы на будущее
В свете недавнего выхода Spring Framework 6.1 и Spring Boot 3.2, автор хотел бы поделиться обзором тех усилий, которые предпринимает команда Spring, чтобы позволить разработчикам оптимизировать эффективность их приложений во время выполнения.
В статье:
➕ Spring MVC вместе с Virtual Threads на JDK 21
➕ Развёртывание Spring-приложений в облаке с использованием GraalVM Native Image
➕ Восстановление контрольной точки
➕ Масштабирование приложений до нуля с помощью Spring и Project CRaC
➕ Будущее OpenJDK со Spring AOT и Project Leyden
Читать статью
#почитать
В свете недавнего выхода Spring Framework 6.1 и Spring Boot 3.2, автор хотел бы поделиться обзором тех усилий, которые предпринимает команда Spring, чтобы позволить разработчикам оптимизировать эффективность их приложений во время выполнения.
В статье:
➕ Spring MVC вместе с Virtual Threads на JDK 21
➕ Развёртывание Spring-приложений в облаке с использованием GraalVM Native Image
➕ Восстановление контрольной точки
➕ Масштабирование приложений до нуля с помощью Spring и Project CRaC
➕ Будущее OpenJDK со Spring AOT и Project Leyden
Читать статью
#почитать
Что такое Lambda-выражения?
Это способ написать анонимные функции (или функциональные объекты) в Java. Они были введены в Java 8 и позволяют передавать поведение как аргументы в методы. Они значительно упрощают работу с такими функциональными интерфейсами, как Runnable, Callable, Comparator и многими другими.
Преимущества:
👉 Краткость: Лямбда-выражения позволяют писать меньше кода.
👉 Читаемость: Код становится более читабельным и понятным.
👉 Поддержка функциональных интерфейсов: Лямбда-выражения работают с функциональными интерфейсами, делая работу с ними проще и интуитивно понятной.
👉 Повышенная производительность: В некоторых случаях лямбда-выражения могут улучшить производительность за счёт оптимизаций, выполненных компилятором.
Это способ написать анонимные функции (или функциональные объекты) в Java. Они были введены в Java 8 и позволяют передавать поведение как аргументы в методы. Они значительно упрощают работу с такими функциональными интерфейсами, как Runnable, Callable, Comparator и многими другими.
Преимущества:
👉 Краткость: Лямбда-выражения позволяют писать меньше кода.
👉 Читаемость: Код становится более читабельным и понятным.
👉 Поддержка функциональных интерфейсов: Лямбда-выражения работают с функциональными интерфейсами, делая работу с ними проще и интуитивно понятной.
👉 Повышенная производительность: В некоторых случаях лямбда-выражения могут улучшить производительность за счёт оптимизаций, выполненных компилятором.
🚧🚧 Тестирование асинхронного контракта Spring Boot приложения (Kafka Consumer+Producer)
Как написать интеграционный\сервисный\авто тест для Spring Boot приложения, которое взаимодействует с внешним миром исключительно с помощью Kafka. Сначала автор разбирает проблему, а затем поэтапно развивает тесты, чтобы привести их к состоянию defenition-of-done.
Читать статью
#гайд
Как написать интеграционный\сервисный\авто тест для Spring Boot приложения, которое взаимодействует с внешним миром исключительно с помощью Kafka. Сначала автор разбирает проблему, а затем поэтапно развивает тесты, чтобы привести их к состоянию defenition-of-done.
Читать статью
#гайд
Предположим, есть метод, который может выбросить IOException и FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?
Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).
Таким образом, исходя из факта, что FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException.
Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).
Таким образом, исходя из факта, что FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException.
Привет, друзья! 👋
Мы готовим статью о типичных ошибках начинающих разработчиков. И нам очень нужна ваша помощь! 🙏
Поделитесь своим опытом и мнением в комментариях:
❓С какими сложностями вы сталкивались в начале своего пути в разработке?
❓Какие ошибки допускали и как их исправляли?
❓Что помогло вам быстрее расти профессионально?
Самые интересные и полезные советы мы обязательно включим в статью, а их авторов упомянем в публикации! 😊
Мы готовим статью о типичных ошибках начинающих разработчиков. И нам очень нужна ваша помощь! 🙏
Поделитесь своим опытом и мнением в комментариях:
❓С какими сложностями вы сталкивались в начале своего пути в разработке?
❓Какие ошибки допускали и как их исправляли?
❓Что помогло вам быстрее расти профессионально?
Самые интересные и полезные советы мы обязательно включим в статью, а их авторов упомянем в публикации! 😊
#дайджест перед выходными
⤵️ Modules Make javac Easy: Dependencies and Tests — автор рассказал про то, как добавлять зависимости в проект и запускать тесты, не покидая терминал
⤵️ Конференция KotlinConf’24 — записи с конфы в Копенгагене
⤵️ Guide to Graal VM — рассказывают про GraalVM и преимущества, которые он предоставляет, затем небольшой бенчмарк со сравнением с популярными VM для Java
⤵️ flatmappers 019 — оригинальные подходы в сборке Scala проектов и Yтка-DB
⤵️ Middle-starter-pack по spring data — особенности использования Transactional в SpringBoot приложении (разбор типовых ошибок среднестатистического разработчика)
⤵️ Modules Make javac Easy: Dependencies and Tests — автор рассказал про то, как добавлять зависимости в проект и запускать тесты, не покидая терминал
⤵️ Конференция KotlinConf’24 — записи с конфы в Копенгагене
⤵️ Guide to Graal VM — рассказывают про GraalVM и преимущества, которые он предоставляет, затем небольшой бенчмарк со сравнением с популярными VM для Java
⤵️ flatmappers 019 — оригинальные подходы в сборке Scala проектов и Yтка-DB
⤵️ Middle-starter-pack по spring data — особенности использования Transactional в SpringBoot приложении (разбор типовых ошибок среднестатистического разработчика)
Forwarded from Библиотека питониста | Python, Django, Flask
🤖 Создание собственного ИИ-бота на Python за 33 строчки кода
В статье рассказываем, как создать собственный чат-бот на Python с помощью языковой модели falcon-7b-instruct, которая следует инструкциям. Доступ к модели мы получаем благодаря Hugging Face.
🔗 Читать статью
🔗 Зеркало
В статье рассказываем, как создать собственный чат-бот на Python с помощью языковой модели falcon-7b-instruct, которая следует инструкциям. Доступ к модели мы получаем благодаря Hugging Face.
🔗 Читать статью
🔗 Зеркало
💁💁 Spring Boot Starter: практически, принципиально и подробно
В этом цикле статей автор поделится выжимкой из материалов, накопленных в процессе создания микросервисов. Это будет полезно тем, кто только начинает разбираться, что же такое Spring Boot Starter и с чем его едят.
Первая часть посвящена созданию принципиального решения, которое позволит запустить стартер как подключаемую к другому Spring Boot-приложению библиотеку.
Во второй части будет разбор зависимостей, стандартных и кастомных аннотаций
#туториал
В этом цикле статей автор поделится выжимкой из материалов, накопленных в процессе создания микросервисов. Это будет полезно тем, кто только начинает разбираться, что же такое Spring Boot Starter и с чем его едят.
Первая часть посвящена созданию принципиального решения, которое позволит запустить стартер как подключаемую к другому Spring Boot-приложению библиотеку.
Во второй части будет разбор зависимостей, стандартных и кастомных аннотаций
#туториал
Forwarded from Азбука айтишника
Переменная в Java — это контейнер, в котором может храниться некоторое значение данных для дальнейшего использования в программе. Переменные в Java бывают двух видов: предназначенные для для маленьких данных (примитивные переменные) и для более сложных, тяжёлых (ссылочные переменные). Мы рассмотрим первый случай, когда переменные хранят именно само значение данных.
Кстати, прошлый пост про Java:
☕️🎓 Java — современный инструмент разработчика
#Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
microG Services — открытая реализация Play Services на Java и Kotlin
Это FLOSS (Free/Libre Open Source Software) фреймворк, позволяющий запускать приложения, разработанные для Google Play Services, на системах, где Play Services недоступны.
🔘 Wiki
#софт
Это FLOSS (Free/Libre Open Source Software) фреймворк, позволяющий запускать приложения, разработанные для Google Play Services, на системах, где Play Services недоступны.
🔘 Wiki
#софт