Java библиотека для работы с внешним сервисом по протоколу RESTful API
Для работы с внешними сервисами по протоколу RESTful API обычно бывает вполне достаточно встроенных средств языка Java или внешних библиотек, используемых в коде приложения там, где это необходимо. Пример - библиотека java.net.http.HttpClient, пользоваться ей очень легко. Для Spring Framework все еще лучше - встроенный RestTemplate позволяет делать почти все. Однако, иногда в разработке может возникнуть ситуация, когда этого недостаточно.
Читать статью
Для работы с внешними сервисами по протоколу RESTful API обычно бывает вполне достаточно встроенных средств языка Java или внешних библиотек, используемых в коде приложения там, где это необходимо. Пример - библиотека java.net.http.HttpClient, пользоваться ей очень легко. Для Spring Framework все еще лучше - встроенный RestTemplate позволяет делать почти все. Однако, иногда в разработке может возникнуть ситуация, когда этого недостаточно.
Читать статью
👍3🔥2😱1
Как стать уверенным разработчиком на главном языке «энтерпрайза» Java? Например, записаться на курс по Java-разработке от Хекслета: https://clck.ru/iLDdu
Курс поможет освоить язык, алгоритмы и структуры данных, работу с микросервисами, фреймворком Spring Boot, базами данных и инфраструктурой.
На Хекслете курс спроектирован так, что его невозможно просто «отсидеть» или «прослушать». Именно поэтому студенты могут получить оффер ещё во время обучения, а некоторые работодатели указывают их курсы как преимущество при найме. Узнайте подробнее о программе.
Курс поможет освоить язык, алгоритмы и структуры данных, работу с микросервисами, фреймворком Spring Boot, базами данных и инфраструктурой.
На Хекслете курс спроектирован так, что его невозможно просто «отсидеть» или «прослушать». Именно поэтому студенты могут получить оффер ещё во время обучения, а некоторые работодатели указывают их курсы как преимущество при найме. Узнайте подробнее о программе.
👍7
Что возможно стоит знать начинающему Spring java backend разработчику о работе с PostgreSQL
Дисклеймер: в данной статье много воды, отражены мысли и опыт воспаленного мозга, потому заранее предупреждаю, что можете потерять просто свое время зря. Из java тут вообще мало. Возможно данная статья будет полезна начинающим разработчикам.
Данная заметка - микс различных приемов работы с базой данных, мейнтененса, встречающихся проблем. В общем это чистой воды винегрет и что-то вроде шпаргалки. Я не являюсь гуру PostgreSQL, но могу поделиться своими наработками, которые использую достаточно часто являясь простым java разработчиком. Может кому-то что-то пригодиться.
Читать статью
Дисклеймер: в данной статье много воды, отражены мысли и опыт воспаленного мозга, потому заранее предупреждаю, что можете потерять просто свое время зря. Из java тут вообще мало. Возможно данная статья будет полезна начинающим разработчикам.
Данная заметка - микс различных приемов работы с базой данных, мейнтененса, встречающихся проблем. В общем это чистой воды винегрет и что-то вроде шпаргалки. Я не являюсь гуру PostgreSQL, но могу поделиться своими наработками, которые использую достаточно часто являясь простым java разработчиком. Может кому-то что-то пригодиться.
Читать статью
👍8
JEP 405: Record Classes to Extend Pattern Matching in Java
JEP 405, Record Patterns (Preview), has been promoted from Proposed to Target to Targeted for JDK 19. Under the umbrella of Project Amber, this JEP proposes to enhance the language with record patterns to deconstruct record values. Record patterns may be used in conjunction with type patterns to "enable a robust, declarative, and composable form of data navigation and processing."
Читать статью
JEP 405, Record Patterns (Preview), has been promoted from Proposed to Target to Targeted for JDK 19. Under the umbrella of Project Amber, this JEP proposes to enhance the language with record patterns to deconstruct record values. Record patterns may be used in conjunction with type patterns to "enable a robust, declarative, and composable form of data navigation and processing."
Читать статью
InfoQ
JEP 405: Record Classes to Extend Pattern Matching in Java
JEP 405, Record Patterns (Preview), has been promoted from Proposed to Target to Targeted for JDK 19. Under the umbrella of Project Amber, this JEP proposes to enhance the language with record patterns to deconstruct record values. Record patterns may be…
👍5🔥1
gRPC — безопасность или жесть?
Встроенные в gRPC способы проверки прав справляются со своими задачами, но накладывают ряд ограничений и не дают возможность писать сложные варианты проверок без «оригинальных» инженерных решений. А тот, кто хоть раз грешил обходом ограничений, знает, чем это чревато.
В одном из проектов мы решили попробовать упростить процесс валидации данных при внешней интеграции, соблюдая все правила безопасности. Шалость удалась:)
Наш backend-разработчик — Александр — нашел-таки то самое «оригинальное» инженерное решение. Решили поделиться с вами, чтобы и вам страдать не приходилось.
Читать статью
Встроенные в gRPC способы проверки прав справляются со своими задачами, но накладывают ряд ограничений и не дают возможность писать сложные варианты проверок без «оригинальных» инженерных решений. А тот, кто хоть раз грешил обходом ограничений, знает, чем это чревато.
В одном из проектов мы решили попробовать упростить процесс валидации данных при внешней интеграции, соблюдая все правила безопасности. Шалость удалась:)
Наш backend-разработчик — Александр — нашел-таки то самое «оригинальное» инженерное решение. Решили поделиться с вами, чтобы и вам страдать не приходилось.
Читать статью
Telegraph
gRPC — безопасность или жесть?
Встроенные в gRPC способы проверки прав справляются со своими задачами, но накладывают ряд ограничений и не дают возможность писать сложные варианты проверок без «оригинальных» инженерных решений. А тот, кто хоть раз грешил обходом ограничений, знает, чем…
👍5
Сегодня паттерн Посетитель в Java уже не нужен – лучше использовать переключатели паттернов
В современном языке Java паттерн Посетитель (Visitor) уже не нужен. Он отлично компенсируется использованием запечатанных типов и переключателей, использующих сопоставление с шаблоном – в таком случае те же цели достигаются проще и меньшим объемом кода.
Всякий раз, оказываясь в ситуации, где мог бы применяться паттерн Посетитель, подумайте, не воспользоваться ли вместо него более современными возможностями языка Java. Разумеется, эти возможности могут использоваться и в других обстоятельствах, но в этой статье мы обсудим сравнительно узкую тему: чем заменить паттерн Посетитель. Для этого я начну с максимально краткого введения и приведу пример, а затем объясню, как достичь тех же целей более простым (и кратким) кодом.
Читать статью
В современном языке Java паттерн Посетитель (Visitor) уже не нужен. Он отлично компенсируется использованием запечатанных типов и переключателей, использующих сопоставление с шаблоном – в таком случае те же цели достигаются проще и меньшим объемом кода.
Всякий раз, оказываясь в ситуации, где мог бы применяться паттерн Посетитель, подумайте, не воспользоваться ли вместо него более современными возможностями языка Java. Разумеется, эти возможности могут использоваться и в других обстоятельствах, но в этой статье мы обсудим сравнительно узкую тему: чем заменить паттерн Посетитель. Для этого я начну с максимально краткого введения и приведу пример, а затем объясню, как достичь тех же целей более простым (и кратким) кодом.
Читать статью
Telegraph
Сегодня паттерн Посетитель в Java уже не нужен – лучше использовать переключатели паттернов
В современном языке Java паттерн Посетитель (Visitor) уже не нужен. Он отлично компенсируется использованием запечатанных типов и переключателей, использующих сопоставление с шаблоном – в таком случае те же цели достигаются проще и меньшим объемом кода. Всякий…
👍4
JEP 428: Structured Concurrency to Simplify Java Multithreaded Programming
JEP 428, Structured Concurrency (Incubator), has been promoted from Proposed to Target to Targeted status for JDK 19. Under the umbrella of Project Loom, this JEP proposes simplifying multithreaded programming by introducing a library to treat multiple tasks running on different threads as an atomic operation. As a result, it will streamline error handling and cancellation, improve reliability, and enhance observability. This is still an incubating API.
Читать статью
JEP 428, Structured Concurrency (Incubator), has been promoted from Proposed to Target to Targeted status for JDK 19. Under the umbrella of Project Loom, this JEP proposes simplifying multithreaded programming by introducing a library to treat multiple tasks running on different threads as an atomic operation. As a result, it will streamline error handling and cancellation, improve reliability, and enhance observability. This is still an incubating API.
Читать статью
👍6
Обзор с примерами ожидаемых фич в Java 19
Хотя выпуск Java 19 выйдет 20 сентября 2022 г, мы уже знаем, какие фичи он будет в себя включать!
В этой статье мы рассмотрим ожидаемые нововведения на примерах, чтобы понять, насколько ценными они могут быть для ваших проектов.
Читать статью
Хотя выпуск Java 19 выйдет 20 сентября 2022 г, мы уже знаем, какие фичи он будет в себя включать!
В этой статье мы рассмотрим ожидаемые нововведения на примерах, чтобы понять, насколько ценными они могут быть для ваших проектов.
Читать статью
👍7🔥4
Apache Kafka для магазинов
Всем привет! Меня зовут Игорь, я работаю системным архитектором в CSI. Хочу поделиться историей появления в нашем стеке технологий надежного и универсального брокера сообщений. Расскажу, как и для чего мы его используем, поделюсь полезными нюансами и примером с сетью Fix Price. Статей про Apache Kafka уже более, чем достаточно, но наш кейс немного отличается от стандартного использования. Надеюсь, опыт пригодится кому-то ещё.
Читать статью
Всем привет! Меня зовут Игорь, я работаю системным архитектором в CSI. Хочу поделиться историей появления в нашем стеке технологий надежного и универсального брокера сообщений. Расскажу, как и для чего мы его используем, поделюсь полезными нюансами и примером с сетью Fix Price. Статей про Apache Kafka уже более, чем достаточно, но наш кейс немного отличается от стандартного использования. Надеюсь, опыт пригодится кому-то ещё.
Читать статью
👍2🔥2
🎉 Среди студентов МГУ прошло голосование на 4 лучших телеграм-канала по программированию. Поздравляем победителей:
Зерокодинг– здесь вас научат создавать приложения, сайты и мобильные игры без навыков программирования. За вас всё сделает компуктер.
Python и 1000 программ – канал для всех, кто хочет освоить самый перспективный язык 2022 года. Гайды для новичков, фишки, программы и многое другое.
Этичный хакер – настоящая кость в горле интернет-мошенников. Читайте бесплатные статьи по кибербезу, защите персональных данных и борьбе с вирусами.
IT-сенсэй – идеальный канал, если вы пока не знаете, чем хотите заниматься в айти и не определились с языком. Фишки, шпаргалки, программы для новичков.
Зерокодинг– здесь вас научат создавать приложения, сайты и мобильные игры без навыков программирования. За вас всё сделает компуктер.
Python и 1000 программ – канал для всех, кто хочет освоить самый перспективный язык 2022 года. Гайды для новичков, фишки, программы и многое другое.
Этичный хакер – настоящая кость в горле интернет-мошенников. Читайте бесплатные статьи по кибербезу, защите персональных данных и борьбе с вирусами.
IT-сенсэй – идеальный канал, если вы пока не знаете, чем хотите заниматься в айти и не определились с языком. Фишки, шпаргалки, программы для новичков.
👍4
Результаты опроса о технологии доступа к БД Java
Java имеет множество сред доступа к данным, и в этой статье мы рассмотрим, какую технологию баз данных Java предпочитают разработчики и по каким причинам.
Читать статью
Java имеет множество сред доступа к данным, и в этой статье мы рассмотрим, какую технологию баз данных Java предпочитают разработчики и по каким причинам.
Читать статью
👍7
Spring for GraphQL Version 1.0 Released
Less than two years after its inception, Spring for GraphQL 1.0 has been released.
The project integrates Spring and GraphQL Java and was developed in collaboration between both teams.
GraphQL is an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. It was developed by Facebook and publicly released in 2015.
Читать статью
Less than two years after its inception, Spring for GraphQL 1.0 has been released.
The project integrates Spring and GraphQL Java and was developed in collaboration between both teams.
GraphQL is an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. It was developed by Facebook and publicly released in 2015.
Читать статью
👍5🔥2
Баг с псионическими сигнатурами в Java
В классическом научно-фантастическом сериале BBC Доктор Кто часто используется следующий сюжетный приём: Доктору удаётся избежать неприятностей, показав удостоверение личности, которое на самом деле совершенно пустое. Разумеется, удостоверение сделано из специальной «психобумаги», заставляющей смотрящего на неё человека видеть то, что удобно для Доктора: пропуск, ордер или что-то ещё.
Читать статью
В классическом научно-фантастическом сериале BBC Доктор Кто часто используется следующий сюжетный приём: Доктору удаётся избежать неприятностей, показав удостоверение личности, которое на самом деле совершенно пустое. Разумеется, удостоверение сделано из специальной «психобумаги», заставляющей смотрящего на неё человека видеть то, что удобно для Доктора: пропуск, ордер или что-то ещё.
Читать статью
Telegraph
Баг с псионическими сигнатурами в Java
В классическом научно-фантастическом сериале BBC Доктор Кто часто используется следующий сюжетный приём: Доктору удаётся избежать неприятностей, показав удостоверение личности, которое на самом деле совершенно пустое. Разумеется, удостоверение сделано из…
🔥4👍2
Сколько нужно времени, чтобы освоить востребованную профессию Java-программиста? Всего 10 месяцев! И начать можно бесплатно - https://clck.ru/qLRBk
Научим:
=> Писать код на Java, использовать фреймворки Javalin, Spring
=> Применять принципы ООП, работать с базами данным, SQL
=> Настраивать окружение: IDEA, Gradle/Maven, JDK
=> Пользоваться командной строкой и Git
Поможем:
=> Наработать практику — вы сделаете 5 проектов на GitHub
=> Грамотно оформить резюме
=> Подготовиться к собеседованиям
А еще порекомендуем в хорошие компании и познакомим с сообществом из 28 тысяч айтишников. Присоединяйтесь!
Научим:
=> Писать код на Java, использовать фреймворки Javalin, Spring
=> Применять принципы ООП, работать с базами данным, SQL
=> Настраивать окружение: IDEA, Gradle/Maven, JDK
=> Пользоваться командной строкой и Git
Поможем:
=> Наработать практику — вы сделаете 5 проектов на GitHub
=> Грамотно оформить резюме
=> Подготовиться к собеседованиям
А еще порекомендуем в хорошие компании и познакомим с сообществом из 28 тысяч айтишников. Присоединяйтесь!
👍6
Как сделать ссылки на методы дружелюбными для отладки
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.
Читать статью
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя для переменной, а ещё старожилы говорят, что они несколько оптимальнее, чем лямбда-выражения. Однако со временем энтузиазм ослаб. Одна из проблем со ссылками на методы — затруднённая отладка ошибок.
Читать статью
Telegraph
Как сделать ссылки на методы дружелюбными для отладки
В Java 8 появилось два вида функциональных выражений — лямбда-выражения вида s -> System.out.println(s) и ссылки на методы вида System.out::println. Поначалу ссылки на методы вызывали больше энтузиазма: они часто компактнее, вам не требуется придумывать имя…
👍4
Начните изучать Java бесплатно с нашим курсом «Основы языка Java».
Курс ориентирован на студентов, не знакомых с профессией и желающих понять его основы. Вы сможете рассмотреть такие необходимые понятия, как работа с ошибками, отладка, использование основных конструкций языка.
Всего 29 уроков, 105 проверочных тестов и 34 упражнения в тренажере.
Переходите прямо сейчас: https://clck.ru/rFPyL
Курс ориентирован на студентов, не знакомых с профессией и желающих понять его основы. Вы сможете рассмотреть такие необходимые понятия, как работа с ошибками, отладка, использование основных конструкций языка.
Всего 29 уроков, 105 проверочных тестов и 34 упражнения в тренажере.
Переходите прямо сейчас: https://clck.ru/rFPyL
👍6
Spring Boot 2.7.0 Released with Support for GraphQL, Podman and Cache2k
VMware has released Spring Boot 2.7.0, the latest and final branch of the 2.x series. Spring Boot 3.0, planned for November 2022, will be the next version.
This latest version of Spring Boot includes support for Spring for GraphQL 1.0; support for the Podman container engine as an alternative to Docker Engine when building images using Cloud Native Buildpacks; dependency management and auto-configuration for Cache2k; and new test annotations for ElasticSearch and CouchBase.
Читать статью
VMware has released Spring Boot 2.7.0, the latest and final branch of the 2.x series. Spring Boot 3.0, planned for November 2022, will be the next version.
This latest version of Spring Boot includes support for Spring for GraphQL 1.0; support for the Podman container engine as an alternative to Docker Engine when building images using Cloud Native Buildpacks; dependency management and auto-configuration for Cache2k; and new test annotations for ElasticSearch and CouchBase.
Читать статью
👍5
Релиз интегрированной среды разработки NetBeans 14
Организации Apache Software Foundation выпустила новую версию интегрированной среды разработки Apache NetBeans 14, которая предоставляет поддержку языков программирования Java SE, Java EE, PHP, C/C++, JavaScript и Groovy.
Изменения 14-ой версии, полезные для Java:
- доступна сборка с использованием JDK17 и улучшена поддержка новых выпусков Java;
- улучшенная поддержка системы сборки Gradle и Maven;
Читать статью
Организации Apache Software Foundation выпустила новую версию интегрированной среды разработки Apache NetBeans 14, которая предоставляет поддержку языков программирования Java SE, Java EE, PHP, C/C++, JavaScript и Groovy.
Изменения 14-ой версии, полезные для Java:
- доступна сборка с использованием JDK17 и улучшена поддержка новых выпусков Java;
- улучшенная поддержка системы сборки Gradle и Maven;
Читать статью
👍3🔥2😁2
Java News Roundup: NetBeans 14, End-of-Life for Spring Tool Suite 3, Hibernate 6.1, TornadoVM
This week's Java roundup for June 13th, 2022 features news from JDK 19, JDK 20, Spring Framework 5.3.21, Spring CVE-2022-22979 report, Spring Cloud 2022.0.0-M3, Spring Tools 4.15, end-of-life for Spring Tool Suite 3, Hibernate 6.1.0-Final, Apache NetBeans 14, Apache Tomcat 8.5.81, Piranha 22.6.0, TornadoVM 0.14, JDKMon updates, JobRunr 5.1.4, JReleaser early-access.
Читать статью
This week's Java roundup for June 13th, 2022 features news from JDK 19, JDK 20, Spring Framework 5.3.21, Spring CVE-2022-22979 report, Spring Cloud 2022.0.0-M3, Spring Tools 4.15, end-of-life for Spring Tool Suite 3, Hibernate 6.1.0-Final, Apache NetBeans 14, Apache Tomcat 8.5.81, Piranha 22.6.0, TornadoVM 0.14, JDKMon updates, JobRunr 5.1.4, JReleaser early-access.
Читать статью
👍6
Создание пользовательских аннотаций в Java
В предыдущей статье мы говорили о том, что такое аннотации и как пользоваться готовыми аннотациями в Java. Но Java также дает возможность создавать собственные аннотации для улучшения кода. Чтобы сгенерировать любую пользовательскую аннотацию, необходимо использовать мета-аннотации. В этой статье объясняется, как создавать мета- и пользовательские аннотации и украшать ими объекты.
Читать статью
В предыдущей статье мы говорили о том, что такое аннотации и как пользоваться готовыми аннотациями в Java. Но Java также дает возможность создавать собственные аннотации для улучшения кода. Чтобы сгенерировать любую пользовательскую аннотацию, необходимо использовать мета-аннотации. В этой статье объясняется, как создавать мета- и пользовательские аннотации и украшать ими объекты.
Читать статью
Telegraph
Создание пользовательских аннотаций в Java
В предыдущей статье мы говорили о том, что такое аннотации и как пользоваться готовыми аннотациями в Java. Но Java также дает возможность создавать собственные аннотации для улучшения кода. Чтобы сгенерировать любую пользовательскую аннотацию, необходимо…
👍3🔥2
Программирование, ориентированное на данные (Data Oriented Programming)
В последние годы проект Amber привнес в Java ряд новых функций: local variable type inference, text blocks, records, sealed classes, pattern matching и многое другое. Хотя каждая из этих функций является автономной, они также предназначены для совместной работы. В частности, records, sealed classes и pattern matching работают вместе, чтобы облегчить программирование, ориентированное на данные.
В этой статье мы рассмотрим, что подразумевается под этим термином и как он может повлиять на то, как мы программируем на Java.
Читать статью
В последние годы проект Amber привнес в Java ряд новых функций: local variable type inference, text blocks, records, sealed classes, pattern matching и многое другое. Хотя каждая из этих функций является автономной, они также предназначены для совместной работы. В частности, records, sealed classes и pattern matching работают вместе, чтобы облегчить программирование, ориентированное на данные.
В этой статье мы рассмотрим, что подразумевается под этим термином и как он может повлиять на то, как мы программируем на Java.
Читать статью
👍5