Рецензия на книгу “Программируем на Java: практический подход к созданию надежных и эффективных приложений”
Теперь и на русском языке! Аарон Плоетц представил свое практическое руководство по Java 21 — вполне себе современному изданию, наполненному реальными примерами, охватывающими всю экосистему: от базовых конструкций языка и новых возможностей версии 21, через работу с реляционными и NoSQL‑базами (PostgreSQL и Cassandra), до создания GUI‑веб‑приложений на Spring Boot и Vaadin, и даже простых игр с анимацией. Книга получила высокие оценки читателей на Амазон — 4.2 звезд из 5.
https://habr.com/ru/companies/ssp-soft/articles/929472/
👉 @java_360
Теперь и на русском языке! Аарон Плоетц представил свое практическое руководство по Java 21 — вполне себе современному изданию, наполненному реальными примерами, охватывающими всю экосистему: от базовых конструкций языка и новых возможностей версии 21, через работу с реляционными и NoSQL‑базами (PostgreSQL и Cassandra), до создания GUI‑веб‑приложений на Spring Boot и Vaadin, и даже простых игр с анимацией. Книга получила высокие оценки читателей на Амазон — 4.2 звезд из 5.
«В э той книге я вернулся к своим программным истокам. Вдохновившись книгой Дэвида Лиена Learning BASIC for the Tandy 1000/2000, я решил создать пошаговое руководство по изучению Java. Хотя я ориентировался на начинающих, мне было важно включить и практические аспекты — решение реальных задач с использованием современной Java, а также таких фреймворков, как Spring Boot и Vaadin. С учетом моего опыта работы с базами данных, я добавил главы о работе с PostgreSQL и Apache Cassandra, а также об их облачных сервисах, таких как ElephantSQL и DataStax Astra DB. Моя цель — сделать книгу полезной и для тех, кто только начинает, и для опытных разработчиков, работающих с Java в корпоративной среде».
— Аарон Плоетц, автор
https://habr.com/ru/companies/ssp-soft/articles/929472/
👉 @java_360
❤2👍1
🔧 Сложности с масштабированием консьюмеров в RabbitMQ? Узнайте, как избежать ошибок, которые могут привести к потерям в порядке обработки сообщений.
📅 На открытом уроке 21 августа в 20:00 МСК разберём реальные кейсы и покажем, как правильно масштабировать консьюмеры, сохраняя порядок обработки. Узнаете, какие проблемы могут возникнуть при некорректном масштабировании и как их решить.
🎯 Получите ценные знания по прогнозированию и устранению проблем, повысите производительность системы и избегайте критических ошибок.
🚀 Зарегистрируйтесь на вебинар и получите в подарок записи трёх уроков по «Symfony», а также скидку на полный курс «Symfony Framework». Подарки доступны всем участникам! Регистрация по ссылке:
https://vk.cc/cOz3jA
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
📅 На открытом уроке 21 августа в 20:00 МСК разберём реальные кейсы и покажем, как правильно масштабировать консьюмеры, сохраняя порядок обработки. Узнаете, какие проблемы могут возникнуть при некорректном масштабировании и как их решить.
🎯 Получите ценные знания по прогнозированию и устранению проблем, повысите производительность системы и избегайте критических ошибок.
🚀 Зарегистрируйтесь на вебинар и получите в подарок записи трёх уроков по «Symfony», а также скидку на полный курс «Symfony Framework». Подарки доступны всем участникам! Регистрация по ссылке:
https://vk.cc/cOz3jA
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
❤1
🔹Изучаем Java
Авторы: Кэти Сьерра, Берт Бэйтс
Английское название: Head First Java
Уровень: новичок
Книга от издательства O'Relly поможет изучить основы Java: переменные, типы данных, условные операторы, циклы и другие ключевые концепции. Темы для более продвинутых программистов тоже найдутся. Например, многопоточность, работа с файлами и сетью.
В Head First Java нетрадиционный подход к обучению. Авторы используют иллюстрации, загадки и задания для проверки, чтобы читателю было интересно и просто учиться. Например, объясняют принципы наследования и полиморфизма с помощью весёлых историй и практических примеров.
🔹Java. Полное руководство
Автор: Герберт Шилдт
Уровень: новичок
В книге рассказывается об основах языка — синтаксисе и переменных, и о более сложных темах — многопоточности и сетевых соединениях. В учебнике есть много примеров кода, которые помогают понять концепции Java. Это особенно ценно для тех, кто только начинает кодить на языке.
🔹Современный язык Java. Лямбды, потоки и функциональное программирование
Авторы: Рауль-Габриэль Урма, Марио Фуско, Алан Майкрофт
Английское название: Modern Java in Action. Lambdas, Streams, Functional and Reactive Programming
Уровень: новичок
Книга поможет освоить новые функции Java 8. Одна из них — лямбда-выражения. Они полезны, когда нужно выполнить какую-то операцию на массиве данных или обработать поток данных. Создавать отдельную функцию для каждой операции не нужно — лямбда-выражения позволяют выполнить операцию прямо в месте ее использования. В итоге код становится более компактным и читаемым.
Новичкам лучше брать более старую редакцию книги, которая вышла под названием «Java 8 в действии: лямбды, потоки и функциональный стиль». В ней меньше материала, поэтому его легче усвоить.
🔹Структуры данных и алгоритмы в Java
Автор: Роберт Лафоре
Английское название: Data Structures and Algorithms in Java
Уровень: опытный
Автор предлагает изучить структуру данных и алгоритмов на примерах из Java. Он рассматривает основные структуры данных: списки, деревья и хеш-таблицы, а также классические алгоритмы сортировки и поиска. В книге есть советы по выбору подходящей структуры данных или алгоритма для конкретной задачи. В конце каждой главы — упражнения для самопроверки.
👉 @java_360
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
20 августа (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Автор: Steven S. Skiena (20202)
Книга является наиболее полным руководством по разработке эффективных алгоритмов.
Первая часть книги содержит практические рекомендации по разработке алгоритмов: приводятся основные понятия, дается анализ алгоритмов, рассматриваются типы структур данных, основные алгоритмы сортировки, операции обхода графов и алгоритмы для работы со взвешенными графами, примеры использования комбинаторного поиска, эвристических методов и динамического программирования.
Вторая часть книги содержит обширный список литературы и каталог из 75 наиболее распространенных алгоритмических задач, для которых перечислены существующие программные реализации.
В третьем издании расширен набор рандомизированных алгоритмов, алгоритмов хеширования, аппроксимации и квантовых вычислений. Добавлено более 100 новых задач, даны ссылки к реализациям на C, C++ и Java.
Книгу можно использовать в качестве справочника по алгоритмам для программистов, исследователей и в качестве учебного пособия для студентов соответствующих специальностей.
👉 @java_360
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Автор: Edward Lavieri (2024)
Автор подробно рассматривает оптимизацию работы JVM, управление памятью, стратегии многопоточности и эффективное взаимодействие с базами данных.
Книга подходит разработчикам Java среднего уровня и выше, стремящимся повысить производительность своих приложений с помощью практических стратегий и современных инструментов.
Основные темы
— Оптимизация сборки мусора и JIT-компилятора
— Эффективное использование структур данных и циклов
— Применение object pooling и стратегий неизменяемости
— Предотвращение утечек памяти и оптимизация работы с базами данных
— Использование ИИ для повышения производительности Java-приложений
👉 @java_360
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
Pro Jakarta EE 10: Open Source Enterprise Java-based Cloud-native Applications Development
Автор: Peter Späth (2023)
Эта книга поможет вам создавать более сложные корпоративные облачные и другие приложения на базе Java, которые могут работать в корпоративных и других критически важных средах. В книге рассматривается большинство ключевых API или функций Jakarta EE 10, включая JSF, JSP, JPA, CDI, REST, Microprofiles, WebSockets и многие другие. Попутно интегрируются и используются различные открытые проекты Apache, Eclipse и другие для более полного представления рабочих процессов и лечения в целом.
Скачать
👉 @java_360
Автор: Peter Späth (2023)
Эта книга поможет вам создавать более сложные корпоративные облачные и другие приложения на базе Java, которые могут работать в корпоративных и других критически важных средах. В книге рассматривается большинство ключевых API или функций Jakarta EE 10, включая JSF, JSP, JPA, CDI, REST, Microprofiles, WebSockets и многие другие. Попутно интегрируются и используются различные открытые проекты Apache, Eclipse и другие для более полного представления рабочих процессов и лечения в целом.
Скачать
👉 @java_360
❤2👍1
📕 Архитектура и написание backend тестов для разработчиков Java, QA инженеров, автоматизаторов, QA Lead и DevOps-специалистов
На открытом уроке 17 сентября в 20:00 мск мы погрузимся в тонкости построения архитектуры надежных и понятных backend-тестов:
📗 На вебинаре разберём:
1. Использование Java и RestAssured для API-тестирования, приёмы структурирования и переиспользования кода.
2. Архитектурные принципы построения надёжных тестов.
📘 В результате на практике освоите построение надежных backend-тестов, научитесь писать чистый, гибкий и поддерживаемый код на Java с RestAssured и получите архитектурные шаблоны и рабочие примеры для своих проектов.
👉 Регистрация и подробности о курсе Java QA Engineer. Professional: https://vk.cc/cPz9jL
Все участники открытого урока получат скидку на курс "Java QA Engineer. Professional"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке 17 сентября в 20:00 мск мы погрузимся в тонкости построения архитектуры надежных и понятных backend-тестов:
📗 На вебинаре разберём:
1. Использование Java и RestAssured для API-тестирования, приёмы структурирования и переиспользования кода.
2. Архитектурные принципы построения надёжных тестов.
📘 В результате на практике освоите построение надежных backend-тестов, научитесь писать чистый, гибкий и поддерживаемый код на Java с RestAssured и получите архитектурные шаблоны и рабочие примеры для своих проектов.
👉 Регистрация и подробности о курсе Java QA Engineer. Professional: https://vk.cc/cPz9jL
Все участники открытого урока получат скидку на курс "Java QA Engineer. Professional"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤1
Modernizing Enterprise Java: A Concise Cloud Native Guide for Developers
Авторы: Markus Eisele, Natale Vinto (2021)
В то время как контейнеры, микросервисы и распределенные системы занимают всё внимание в обсуждениях в мире технологий, большинство приложений, используемых сегодня, по-прежнему работают с монолитными архитектурами, которые соответствуют традиционным подходам к разработке. Эта практическая книга помогает изучить давно устоявшиеся модели на основе Java и демонстрирует, как успешно преобразовать эти монолитные приложения в более современные.
Во время чтения книги вы:
✔️Изучите основы облачных приложений, чтобы понять, какие части Java-приложений и платформ вашей организации необходимо перенести и модернизировать;
✔️Поймёте, как корпоративные спецификации Java могут помочь вам в переходе проектов и команд;
✔️Создадите облачную платформу;
✔️Узнаете, как дополнить традиционное корпоративное Java-приложение компонентами поверх контейнеров и Kubernetes.
Скачать
👉 @java_360
Авторы: Markus Eisele, Natale Vinto (2021)
В то время как контейнеры, микросервисы и распределенные системы занимают всё внимание в обсуждениях в мире технологий, большинство приложений, используемых сегодня, по-прежнему работают с монолитными архитектурами, которые соответствуют традиционным подходам к разработке. Эта практическая книга помогает изучить давно устоявшиеся модели на основе Java и демонстрирует, как успешно преобразовать эти монолитные приложения в более современные.
Во время чтения книги вы:
✔️Изучите основы облачных приложений, чтобы понять, какие части Java-приложений и платформ вашей организации необходимо перенести и модернизировать;
✔️Поймёте, как корпоративные спецификации Java могут помочь вам в переходе проектов и команд;
✔️Создадите облачную платформу;
✔️Узнаете, как дополнить традиционное корпоративное Java-приложение компонентами поверх контейнеров и Kubernetes.
Скачать
👉 @java_360
👍3
😉 Как за 15 минут превратить таблицы БД в JPA-сущности?
В новом видео показываем, как быстро сгенерировать JPA-сущности из БД, организовать работу со Spring Data JPA и упростить написание Liquibase-скриптов.
Кроме создания с нуля также показали как автоматически вносить изменения из БД в уже существующие JPA-сущности.
🧩СМОТРЕТЬ НА YOUTUBE
🧩СМОТРЕТЬ В VK ВИДЕО
🧩СМОТРЕТЬ НА RUTUBE
#реклама
О рекламодателе
В новом видео показываем, как быстро сгенерировать JPA-сущности из БД, организовать работу со Spring Data JPA и упростить написание Liquibase-скриптов.
Кроме создания с нуля также показали как автоматически вносить изменения из БД в уже существующие JPA-сущности.
🧩СМОТРЕТЬ НА YOUTUBE
🧩СМОТРЕТЬ В VK ВИДЕО
🧩СМОТРЕТЬ НА RUTUBE
#реклама
О рекламодателе
❤2
Многопоточность в Java
В Java многопоточность реализована через класс
🔵 1. Создание и запуск потока
- Поток может быть создан двумя способами:
- Наследование от класса Thread:
- Реализация интерфейса
🔵 2. Основные методы класса
-
-
-
-
-
🔵 3. Синхронизация
- Чтобы избежать проблем с конкурентным доступом к данным, используется синхронизация:
Это гарантирует, что только один поток может выполнить код внутри синхронизированного блока.
🔵 4. Пул потоков
- Для управления большим количеством потоков используется пул потоков, который управляется через
🔵 5. Состояния потока
Потоки могут находиться в разных состояниях:
- NEW: Поток создан, но не запущен.
- RUNNABLE: Поток готов к выполнению.
- WAITING: Поток ожидает другого потока.
- TIMED_WAITING: Поток ожидает в течение определенного времени.
- TERMINATED: Поток завершен.
🔵 6. Проблемы многопоточности
- Состояние гонки (Race condition) — ситуация, когда несколько потоков одновременно пытаются изменить данные, что может привести к некорректным результатам.
- Блокировки — проблемы с мертвыми блокировками (deadlocks), когда потоки навсегда блокируются, ожидая друг друга.
🔵 7. Современные подходы и классы
-
-
🔵 8. Параллельное выполнение коллекций
- Коллекции в Java также могут работать с потоками через
Многопоточность — мощный инструмент для улучшения производительности приложений, но требует внимательности при реализации, чтобы избежать ошибок, таких как мертвые блокировки или некорректный доступ к данным.
👉 @java_geek
В Java многопоточность реализована через класс
Thread
и интерфейс Runnable
. Вот основные моменты, которые могут быть полезны при работе с многопоточностью:- Поток может быть создан двумя способами:
- Наследование от класса Thread:
class MyThread extends Thread {
public void run() {
// Код, выполняемый в потоке
}
}
MyThread t = new MyThread();
t.start();
- Реализация интерфейса
Runnable
:
class MyRunnable implements Runnable {
public void run() {
// Код, выполняемый в потоке
}
}
Thread t = new Thread(new MyRunnable());
t.start();
Thread
-
start()
— запуск потока.-
sleep(long millis)
— приостановка потока на определенное время.-
join()
— ожидание завершения потока.-
interrupt()
— прерывание потока.-
isAlive()
— проверка, работает ли поток.- Чтобы избежать проблем с конкурентным доступом к данным, используется синхронизация:
synchronized (this) {
// Критическая секция
}
Это гарантирует, что только один поток может выполнить код внутри синхронизированного блока.
- Для управления большим количеством потоков используется пул потоков, который управляется через
ExecutorService
. Пример:
ExecutorService executor = Executors.newFixedThreadPool(10);
executor.submit(() -> {
// Задача для потока
});
executor.shutdown();
Потоки могут находиться в разных состояниях:
- NEW: Поток создан, но не запущен.
- RUNNABLE: Поток готов к выполнению.
- WAITING: Поток ожидает другого потока.
- TIMED_WAITING: Поток ожидает в течение определенного времени.
- TERMINATED: Поток завершен.
- Состояние гонки (Race condition) — ситуация, когда несколько потоков одновременно пытаются изменить данные, что может привести к некорректным результатам.
- Блокировки — проблемы с мертвыми блокировками (deadlocks), когда потоки навсегда блокируются, ожидая друг друга.
-
ForkJoinPool
— используется для параллельного выполнения задач с разделением на подзадачи.-
CountDownLatch
, CyclicBarrier
, Semaphore
— различные утилиты для синхронизации между потоками.- Коллекции в Java также могут работать с потоками через
parallelStream()
:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.parallelStream().forEach(System.out::println);
Многопоточность — мощный инструмент для улучшения производительности приложений, но требует внимательности при реализации, чтобы избежать ошибок, таких как мертвые блокировки или некорректный доступ к данным.
👉 @java_geek
Please open Telegram to view this post
VIEW IN TELEGRAM
Жёсткие разговоры: увольнения, фидбек и конфликты без боли
Тимлид — это не только про релизы и уютные ретро. Настоящее лидерство проявляется там, где нужно решать непростые задачи: увольнять, давать честный фидбек, гасить конфликты и держать команду в тонусе.
Многие лиды признаются: именно сложные разговоры становятся главной ловушкой. Кто-то избегает их, кто-то слишком «давит», а кто-то теряется и теряет авторитет. На открытом вебинаре мы разберём:
✔️ как проводить сложные коммуникации и оставаться профессионалом;
✔️ где проходит грань между твёрдостью и человечностью;
✔️ техники, которые помогут безболезненно пройти через «неудобные» разговоры.
➡️ Встречаемся 2 октября, 20:00 МСК. Записывайтесь — и вы получите не только полезные практики, но и скидку на курс «Team Lead»: https://vk.cc/cPMgi6
Тимлид — это не только про релизы и уютные ретро. Настоящее лидерство проявляется там, где нужно решать непростые задачи: увольнять, давать честный фидбек, гасить конфликты и держать команду в тонусе.
Многие лиды признаются: именно сложные разговоры становятся главной ловушкой. Кто-то избегает их, кто-то слишком «давит», а кто-то теряется и теряет авторитет. На открытом вебинаре мы разберём:
✔️ как проводить сложные коммуникации и оставаться профессионалом;
✔️ где проходит грань между твёрдостью и человечностью;
✔️ техники, которые помогут безболезненно пройти через «неудобные» разговоры.
➡️ Встречаемся 2 октября, 20:00 МСК. Записывайтесь — и вы получите не только полезные практики, но и скидку на курс «Team Lead»: https://vk.cc/cPMgi6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576