middlejava
275 members
5 photos
4 videos
43 files
219 links
Канал о backend и Java. Здесь вы найдёте статьи, книги, вакансии, описание работы с фреймворками и библиотеками Spring, Hibernate, JOOQ, Lombok и др., учебные задачи, анонсы мероприятий.
По всем вопросам прошу связываться по email middle.java@mail.ru
Download Telegram
to view and join the conversation
#tutorial #java #switch

Java theory and practice: Effective use of the new switch statement and expression in Java SE 12

"...Extend the switch statement so that it can be used as either a statement or an expression, and that both forms can use either a “traditional” or “simplified” scoping and control flow behavior. These changes will simplify everyday coding, and also prepare the way for the use of pattern matching in switch..."

\\\\\

Теория и практика Java: эффективное использование нового оператора и выражения switch в Java SE 12

"...Расширить оператор switch, чтобы его можно было использовать и как оператор, и как выражение, и чтобы обе эти формы могли использовать и «традиционную», и «упрощенную» области видимости и поведение потока исполнения программы. Эти изменения упростят повседневное кодирование, а также подготовят почву для использования в switch сопоставления паттернов..."

https://developer.ibm.com/tutorials/java-theory-and-practice-6

t.me/middle_java
Pro_Spring_4_Spring_4_для_профессионалов.pdf
104.6 MB
#books #spring

Spring 4 для профессионалов, 4-е издание

Автор: Крис Шефер, Кларенс Хо, Роб Харроп
Год: 2015
Издательство: Вильямс
ISBN: 978-5-8459-1992-2
Страниц: 752
Язык: Русский
Формат: PDF
Размер: 105 Mb

t.me/middle_java
#java #spring

Weekly Java news by Eugene.
Еженедельная подборка новостей по Java от Евгения.


Highlights:
-- A complete rundown of cool​ Multiline String Literals in Java 13 as proposed in JEP-355
-- An overview of the query hints available in JPA/Hibernate
-- And a look at four design patterns for enhancing a system's resilience

https://www.baeldung.com/java-weekly-287

t.me/middle_java
#kubernetes #containers #tutorial

Learning Path: Kubernetes

If you're new to Kubernetes and container orchestration and want to begin learning about it, this learning path covers everything from basic prerequisites to more advanced skills needed for containerization.

\\\\\

Учебный путь: Kubernetes

Если вы новичок в Kubernetes и оркестровке контейнеров и хотите начать изучать эти темы, то данная серия уроков охватывает все: от базовых предпосылок до более продвинутых навыков, необходимых для контейнеризации.

https://developer.ibm.com/series/kubernetes-learning-path/

t.me/middle_java
#microservices #outboxpattern #designpatterns

The Outbox Pattern

Sometimes, when processing a business operation, you need to communicate with an external component in the Fire-and-forget mode.
To do this we can implement the Outbox Pattern.

\\\\\

Шаблон проектирования "Исходящие сообщения"

Иногда при обработке бизнес-операции вам необходимо установить связь с внешним компонентом в режиме Fire-and-Forgot (отправить и забыть).
Для этого мы можем использовать паттерн проектирования "Outbox" ("Исходящие сообщения").

http://www.kamilgrzybek.com/design/the-outbox-pattern

t.me/middle_java
#microservices #outboxpattern #designpatterns #hibernate

Microservices & Data – Implementing the Outbox Pattern with Hibernate

When you apply the Outbox pattern, you split the communication between your microservice and the message broker into two parts. The key element is that your service provides an outbox within its database.

\\\\\

Микросервисы и данные - реализация шаблона "Исходящие сообщения" с помощью Hibernate

Применяя шаблон "Исходящие сообщения", вы разделяете взаимодействие между вашим микросервисом и брокером сообщений на две части. Ключевым элементом является то, что ваш сервис размещает исходящие соощения в своей базе данных.

https://thoughts-on-java.org/outbox-pattern-hibernate

t.me/middle_java
#tutorial #microprofile #microservice #istio

Use MicroProfile OpenTracing and distributed tracing with Istio to enhance system observability.

In this code pattern, we’ll look at how Open Liberty, MicroProfile, and Open Tracing work alongside Istio to create an end-to-end view of requests flowing through a simulated manufacturing facility, based off of the original instrument craft shop. You’ll have an understanding of distributed tracing and a way to capture, visualize, and tell the story of what happens to an individual request.

In this pattern, we'll go through these steps:

- Installing Istio, enabling tracing and providing access to a dashboard.
- Add MicroProfile and OpenTracing to Open Liberty project.
- Run a simple microservice based application and explore a distributed tracing UI.
- Investigate application failures using information from distributed tracing.

\\\\\

Использование MicroProfile OpenTracing и распределенной трассировки с Istio для повышения наблюдаемости системы.

В этом тьюториале мы рассмотрим, как Open Liberty, MicroProfile и Open Tracing работают вместе с Istio для создания end-to-end представления запросов, проходящих через моделируемую компанию на базе мастерской по изготовлению инструментов. У вас будет понимание распределенной трассировки и способах захвата, визуализации запросов и понимания того, что происходит с отдельным запросом.

Мы выполним следующие шаги:

- Установка Istio, включение трассировки и предоставление доступа к панели инструментов.
- Добавление MicroProfile и OpenTracing в проект Open Liberty.
- Запуск простого приложения на основе микросервиса и изучение пользовательского интерфейса распределенной трассировки.
- Исследование сбоев приложений, на основе информации из распределенной трассировки.

https://github.com/IBM/opentracing-istio-troubleshooting/blob/master/README.md

https://t.me/middle_java
#java #spring

Weekly Java news by Eugene.
Еженедельная подборка новостей по Java от Евгения.

Highlights:

-- A mechanism for executing Gradle builds inside a Maven project

-- A basic example of an API gateway and service discovery using Spring Cloud Gateway

-- And while encrypted DNS is becoming more prevalent, it still presents many challenges

https://www.baeldung.com/java-weekly-288

t.me/middle_java
SQL-sbornik_retseptov_O_39_Reilly_260419092328.pdf
3.5 MB
#books #sql #russian

SQL. Сборник рецептов — Энтони Молинаро

Автор: Энтони Молинаро
Издательство: Символ-Плюс
Год: 2009
ISBN: 978-5-93286-125-7, 5-93286-125-8
PDF: 3 Мб

t.me/middle_java
#companyculture #peopleoperations

Presentation: Building and Scaling a High-Performance Culture

Randy Shoup discusses team
Autonomy - how high-performing companies own their destiny from idea to development to deployment to operations;
Trust - how we need to foster a culture of trust among the individuals on a team, and between the teams themselves;
Pragmatism in the product development process - how we need to define the problem we are solving, and solve it in the simplest way possible.

\\\\\

Презентация: создание и расширение культуры высокопроизводительной работы

Randy Shoup ведёт беседу про:
Автономность - как высокопроизводительные компании управляют своей судьбой, от идеи до разработки и от развертывания до эксплуатации;
Доверие - как нам нужно развивать культуру доверия между людьми в команде и между самими командами;
Прагматизм в процессе разработки продукта - как мы должны определять проблему, которую решаем, и решать ее самым простым способом.

https://www.infoq.com/presentations/autonomy-trust-pragmacy-teams

t.me/middle_java
вакансии-2019-07-10.pdf
304.9 KB
#job #java

В Сбербанке открыты новые вакансии:

Москва:
-- Java-разработчик
-- Старший инженер по разработке (системный аналитик)
-- Главный инженер по разработке (Инженер по сопровождению)

Санкт-Петербург:
-- Главный инженер по разработке (Java)

Подробное описание в приложенном файле.

Если интересно, то прошу присылать резюме на ящик middle.java@mail.ru

t.me/middle_java
#hibernatetips #tutorial

Question:
I need to map tables of a legacy database using the SINGLE_TABLE strategy. But these tables don’t contain a discriminator column, and I can’t change the table definition.
Is there any other way to define the mapping to a specific subclass?


Solution:
Yes, Hibernate provides a proprietary annotation that allows you to provide an SQL snippet that returns a discriminator value. So, you don’t necessarily need a discriminator column.
Read more...

\\\\\

Вопрос:
Мне нужно смапить таблицы старой базы данных, используя стратегию SINGLE
_TABLE. Но в этих таблицах нет столбца дискриминатора, а определение таблицы я изменить не могу.
Есть ли другой способ определить маппинг на конкретный подкласс?


Решение:
Да, Hibernate предоставляет специальную аннотацию, позволяющую создать фрагмент кода SQL, возвращающий значение дискриминатора. Таким образом, столбец дискриминатора не обязателен нужен .
Читать далее...

https://thoughts-on-java.org/hibernate-tips-single_table-strategy-without-discriminator-column/#more-21972

https://t.me/middle_java
#java #spring

Weekly Java news by Eugene.
Еженедельная подборка новостей по Java от Евгения.


Highlights:

-- An overview of Kotlin scope functions

-- A new option in the Spring Initializr - gives us​ a peek at generated projects

-- And a collection of resources to kickstart your journey into AWS

https://www.baeldung.com/java-weekly-289

t.me/middle_java
Spring_Boot_2_Recipes.pdf
8.5 MB
#books #sql

Spring Boot 2 Recipes,
Marten Deinum,
2018

Solve all your Spring Boot 2 problems using complete and real-world code examples. When you start a new project, you’ll be able to copy the code and configuration files from this book, and then modify them for your needs. This can save you a great deal of work over creating a project from scratch.
Using a problem-solution approach, Spring Boot 2 Recipes quickly introduces you to Pivotal’s Spring Boot 2 micro-framework, then dives into code snippets on how to apply and integrate Spring Boot 2 with the Spring MVC web framework, Spring Web Sockets, and microservices. You’ll also get solutions to common problems with persistence, integrating Spring Boot with batch processing, algorithmic programming via Spring Batch, and much more. Other recipes cover topics such as using and integrating Boot with Spring’s enterprise services, Spring Integration, testing, monitoring and more.

t.me/middle_java
#java #lombok #fluxtion #java10

In this article, I am combining two products, Lombok and Fluxtion, to demonstrate how tools can reduce both the code written and time to delivery while improving the readability of the code. The use of var from Java 10 improves the situation even further. Both products and var use inference at build time to accelerate development.

\\\\\

В этой статье я объединю два продукта - Lombok и Fluxtion, чтобы продемонстрировать, как эти инструменты могут сократить и объем кода и время его доставки, одновременно улучшая читаемость кода. Использование var из Java 10 еще больше улучшает ситуацию. Lombok, Fluxtion и var используют вывод типов во время сборки для ускорения разработки.

https://dzone.com/articles/simplify-event-processing-with-lombok-and-fluxtion

t.me/middle_java
#interview

Какие вопросы задавать программистам на собеседовании

Часто, при собеседовании кандидатов на позиции программистов сосредотачиваются на технических вопросах, наподобие, «Зачем нужен виртуальный деструктор?», предлагают разобрать фрагмент кода с хитрым синтаксисом, который редко встречается в реальной жизни или просто дают тестовое задание. В результате студент-олимпиадник может отлично пройти интервью, а человек с 10 годами работы нет. Между тем, далеко не факт, что студент, начитавшийся книжек, будет эффективно работать, а не тратить время на рассказы начальству «как правильно программировать» и разработку очередного красивого четырехколесного велосипеда.
Конечно, технические вопросы на собеседовании задавать нужно, но не менее полезно спросить о подходах к разработке, которые использовались на прошлых местах работы и поинтересоваться мнением кандидата о том, как правильно делать, а как нет. Человек, который работал в команде с хорошо поставленными процессами, вероятно, избавлен от привычек выкладывать несобирающийся код, ломать тесты и заниматься излишним рефакторингом.

https://pmlife.ru/opyt/voprosy-programmistam-na-sobesedovanii

t.me/middle_java
#java #spring

Weekly Java news by Eugene.
Еженедельная подборка новостей по Java от Евгения.


Highlights:

-- A guide to enabling and working with Java Preview Features

-- An interesting report on current trends in Java technology adoption

-- And Spring Tools 4.3.1 is released

https://www.baeldung.com/java-weekly-290

t.me/middle_java