middlejava
376 members
6 photos
4 videos
47 files
230 links
Канал о backend и Java. Здесь вы найдёте статьи, книги, вакансии, описание работы с фреймворками и библиотеками Spring, Hibernate, JOOQ, Lombok и др., учебные задачи, анонсы мероприятий.
По всем вопросам прошу связываться по email middle.java@mail.ru
Download Telegram
to view and join the conversation
05 jpoint_2019.rar
1.3 GB
#jpoint2019 #conference

Доклады с конференции Jpoint 2019

Часть 5 из 6

t.me/middle_java
06 jpoint_2019.rar
674.1 MB
#jpoint2019 #conference

Доклады с конференции Jpoint 2019

Часть 6 из 6

t.me/middle_java
#bug #softwaredevelopment #buglifecycle

LifeCycle Of A Testing Bug

A software bug is an error or fault in a computer program making it behave in unexpected ways. Bugs can be present at any stage during SDLC (Software development LifeCycle), or at the designing phase, development phase, user acceptance testing phase or even by the user.
Defect Life Cycle, also called the Bug Life Cycle, is a specific convention of states through which a bug passes beginning from the phase of discovery to defect fixation. The number of states that a defect is meant to pass through varies from organization to organization and project to project. The following are the basic stages in the lifecycle of a bug.

\\\\\

Жизненный цикл тестового бага

Программный баг - это ошибка или падение компьютерной программы, заставляющее ее вести себя неожиданным образом. Баги могут присутствовать на любом этапе SDLC (жихненный цикл разработки программного обеспечения): на этапе проектирования, разработки, приемочного тестирования или даже быть обнаруженными пользователем.
"Жизненный цикл дефекта", или "Жизненный цикл бага", представляет собой специальное соглашение о состояниях, через которые проходит баг, начиная с фазы обнаружения и заканчивая исправлением бага. Количество состояний, которые должен пройти баг, варьируется от организации к организации и от проекта к проекту. Ниже приведены основные этапы жизненного цикла бага.

https://www.lambdatest.com/blog/lifecycle-of-a-testing-bug

t.me/middle_java
#java #spring

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


Highlights:
-- A cache-friendly approach to creating S3 signed URLs
-- A database migration testing library for JUnit
-- And a discussion of testing in statically-typed vs dynamically-typed languages

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

t.me/middle_java
#tutorial #jooq #spring

Using jOOQ With Spring

jOOQ is a library which helps you to get back in control of your SQL. It can generate code from your database and lets you build typesafe database queries by using its fluent API.
jOOQ helps you to solve the performance problems caused by ORM tools because you (and not the ORM tool) decide what kind of SQL queries your applications executes against its database.
The following five part tutorial will help you get started with jOOQ.

\\\\\

Использование jOOQ со Spring

jOOQ - это библиотека, которая помогает вам взять под контроль SQL. Она может генерировать код на основе базы данных и позволяет строить к ней типобезопасные запросы с помощью гибкого API.
jOOQ помогает решить проблемы с производительностью, вызванные инструментами ORM, потому что вы (а не ORM) решаете, какие SQL-запросы приложения выполняют к базе данных.
Следующее руководство из пяти частей поможет вам начать работу с jOOQ.

https://www.petrikainulainen.net/using-jooq-with-spring

t.me/middle_java
#kafka #elk #logging

Kafka Logging with the ELK Stack

Kafka and the ELK Stack — usually these two are part of the same architectural solution, Kafka acting as a buffer in front of Logstash to ensure resiliency. This article explores a different combination — using the ELK Stack to collect and analyze Kafka logs.

\\\\\

Логгирование Kafka с помощью стека ELK

Kafka и стек ELK - обычно эти два компонента являются частью одного архитектурного решения: Kafka выступает в качестве буфера перед Logstash для обеспечения отказоустойчивости. В этой статье рассматривается другая комбинация - использование стека ELK для сбора и анализа журналов Kafka.

https://logz.io/blog/kafka-logging

t.me/middle_java
вакансии-2019-06-18.pdf
204.4 KB
#job #java

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

-- Java Developer
-- Senior Java Developer
-- Front-End Разработчик (React Js)
-- Системный аналитик
-- Специалист по тестированию

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

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

t.me/middle_java
#clickhouse #centos

How To Install and Use ClickHouse on CentOS 7

ClickHouse is an open-source, column-oriented analytics database created by Yandex for OLAP and big data use cases. ClickHouse's support for real-time query processing makes it suitable for applications that require sub-second analytical results. ClickHouse's query language is a dialect of SQL that enables powerful declarative querying capabilities while offering familiarity and a smaller learning curve for the end user.

\\\\\

Неплохой тьюториал про конфигурирование и использование ClickHouse в CentOS 7.

ClickHouse - это колоночная аналитическая СУБД с открытым кодом, созданная Яндексом для OLAP и обработки больших данных. Поддержка ClickHouse обработки запросов в режиме реального времени делает его подходящим для приложений, которые требуют аналитических результатов за доли секунды. Язык запросов ClickHouse - это диалект SQL, который обеспечивает мощные возможности декларативных запросов, делая обучения конечного пользователя более комфортным и быстрым.

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-clickhouse-on-centos-7

t.me/middle_java
#monitoring #grafana #prometheus

The combination of Prometheus and Grafana is becoming a more and more common monitoring stack used by DevOps teams for storing and visualizing time series data. Prometheus acts as the storage backend and Grafana as the interface for analysis and visualization.

Prometheus collects metrics from monitored targets by scraping metrics from HTTP endpoints on these targets. But what about monitoring Prometheus itself?

Like any server running processes on a host machine, there are specific metrics that need to be monitored such as used memory and storage as well as general ones reporting on the status of the service. Conveniently, Prometheus exposes a wide variety of metrics that can be easily monitored. By adding Grafana as a visualization layer, we can easily set up a monitoring stack for our monitoring stack.

Let’s take a closer look.

\\\\\\

Prometheus и Grafana становятся все более распространенным стеком мониторинга, используемым командами DevOps для хранения и визуализации time series данных. Prometheus выступает в качестве хранилища данных, а Grafana - в качестве интерфейса для анализа и визуализации.

Prometheus собирает метрики от отслеживаемых целей, вытаскивая метрики из HTTP endpoints этих целей. Но как насчет мониторинга самого Prometheus?

Как и на любом сервере, выполняющем процессы на хост-машине, существуют определенные показатели, которые необходимо отслеживать, такие как используемая память и диски, а также общие показатели, сообщающие о состоянии сервиса. Prometheus предоставляет широкий спектр показателей, которые можно легко контролировать. Добавив Grafana в качестве слоя визуализации, мы можем легко настроить стек мониторинга для нашего стека мониторинга.

Давайте глянем поближе.

https://logz.io/blog/prometheus-monitoring/

https://t.me/middle_java
#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