Разбираемся, как можно по простому ускорить вычисления с помощью параллельного выполнения на пуле потоков.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Распараллеливаем вычисления на пуле потоков.
Разбираемся, как можно по простому ускорить вычисления с помощью параллельного выполнения на пуле потоков.
Исходные коды:
https://github.com/Arhiser/java_tutorials/tree/master/src/ru/arhiser/multithreading/parallel2
Поддержать канал на Boosty:
https://…
Исходные коды:
https://github.com/Arhiser/java_tutorials/tree/master/src/ru/arhiser/multithreading/parallel2
Поддержать канал на Boosty:
https://…
👍17❤7
Что такое «fail-fast поведение»?
В Java Collections API некоторые итераторы ведут себя как fail-fast и выбрасывают
Реализация такого поведения осуществляется за счет подсчета количества модификаций коллекции (
• при изменении коллекции счетчик модификаций так же изменяется;
• при создании итератора ему передается текущее значение счетчика;
• при каждом обращении к итератору сохраненное значение счетчика сравнивается с текущим, и, если они не совпадают, возникает исключение.
fail-fast поведение означает, что при возникновении ошибки или состояния, которое может привести к ошибке, система немедленно прекращает дальнейшую работу и уведомляет об этом. Использование fail-fast подхода позволяет избежать недетерминированного поведения программы в течение времени.В Java Collections API некоторые итераторы ведут себя как fail-fast и выбрасывают
ConcurrentModificationException, если после его создания была произведена модификация коллекции, т.е. добавлен или удален элемент напрямую из коллекции, а не используя методы итератора.Реализация такого поведения осуществляется за счет подсчета количества модификаций коллекции (
modification count):• при изменении коллекции счетчик модификаций так же изменяется;
• при создании итератора ему передается текущее значение счетчика;
• при каждом обращении к итератору сохраненное значение счетчика сравнивается с текущим, и, если они не совпадают, возникает исключение.
👍18❤5
В данном видео рассмотрен пример создания веб-сервиса с использованием следующих технологий:
- Spring Boot 3
- Spring Cloud
- Spring Cloud AWS
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
- Docker
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Создание веб-сервиса с использованием Spring Boot 3 и AWS SQS
В данном видео рассмотрен пример создания веб-сервиса с использованием следующих технологий:
- Spring Boot 3
- Spring Cloud
- Spring Cloud AWS
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
- Docker
Дружное сообщество:
h…
- Spring Boot 3
- Spring Cloud
- Spring Cloud AWS
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
- Docker
Дружное сообщество:
h…
👍33❤6🔥1
Микросервисы. От архитектуры до релиза (2023) PDF
Микросервисная архитектура обеспечивает высокую скорость изменений и хорошую масштабируемость, а также позволяет создавать чистые эволюционирующие системы. Но реализовать свою первую микросервисную архитектуру непросто. Как сделать выбор из множества вариантов и обучить свою команду всем техническим деталям, чтобы максимально увеличить шансы на успех? В этой книге авторы, Ронни Митра и Иракли Надареишвили, предоставили пошаговое руководство для построения эффективной архитектуры микросервисов. Архитекторы и инженеры пройдут путь внедрения, основанный на методах и архитектурах, доказавших свою эффективность для микросервисных систем. Вы создадите операционную модель, проект микросервиса, инфраструктурную основу и два работающих микросервиса, а затем соедините эти компоненты в одну реализацию. Для любого, перед кем стоит задача создания микросервисов, руководство станет бесценным источником знаний.
Микросервисная архитектура обеспечивает высокую скорость изменений и хорошую масштабируемость, а также позволяет создавать чистые эволюционирующие системы. Но реализовать свою первую микросервисную архитектуру непросто. Как сделать выбор из множества вариантов и обучить свою команду всем техническим деталям, чтобы максимально увеличить шансы на успех? В этой книге авторы, Ронни Митра и Иракли Надареишвили, предоставили пошаговое руководство для построения эффективной архитектуры микросервисов. Архитекторы и инженеры пройдут путь внедрения, основанный на методах и архитектурах, доказавших свою эффективность для микросервисных систем. Вы создадите операционную модель, проект микросервиса, инфраструктурную основу и два работающих микросервиса, а затем соедините эти компоненты в одну реализацию. Для любого, перед кем стоит задача создания микросервисов, руководство станет бесценным источником знаний.
👍23❤6🔥3
Чем различаются Enumeration и Iterator.
Хотя оба интерфейса и предназначены для обхода коллекций между ними имеются существенные различия:
• с помощью
• в
•
Хотя оба интерфейса и предназначены для обхода коллекций между ними имеются существенные различия:
• с помощью
Enumeration нельзя добавлять/удалять элементы;• в
Iterator исправлены имена методов для повышения читаемости кода (Enumeration.hasMoreElements() соответствует Iterator.hasNext(), Enumeration.nextElement() соответствует Iterator.next() и т.д);•
Enumeration присутствуют в устаревших классах, таких как Vector/Stack, тогда как Iterator есть во всех современных классах-коллекциях.👍28❤5☃2
Как в JPA использовать AUTO_INCREMENT в MySQL?
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в структуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в структуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
YouTube
Как в JPA использовать AUTO_INCREMENT в MySQL?
#JPA #Spring #mysql
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в струтуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
Блог Vlad Mihalcea:
https://vladmihalcea.com/why-should…
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в струтуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
Блог Vlad Mihalcea:
https://vladmihalcea.com/why-should…
❤5👍5🔥2
Главное событие лета в Казани — IT Community Day Сбера 💻
Мы ждем вас 29 июля на первой большой ИТ конференции, которая пройдет в новом крутом технохабе Сбера и потрясающей крыше ИТ Парка им Б.Рамеева.
В программе:
👉 20 топовых спикеров Сбера на 3 параллельных сценах
👉 8 тематических стримов: от DS до DevOps, от Java до Soft Skills
👉 квиз и незабываемые активности на протяжении всего мероприятия
👉 нетворкинг, общение с крутыми спецами, HR Speed Dating
😎 After Party на крыше ИТ-парка
Встречаемся 29 июля в 12:00 по адресу: ул. Спартаковская, 2.
Обязательно зарегистрируйтесь по ссылке! 💚
Мы ждем вас 29 июля на первой большой ИТ конференции, которая пройдет в новом крутом технохабе Сбера и потрясающей крыше ИТ Парка им Б.Рамеева.
В программе:
👉 20 топовых спикеров Сбера на 3 параллельных сценах
👉 8 тематических стримов: от DS до DevOps, от Java до Soft Skills
👉 квиз и незабываемые активности на протяжении всего мероприятия
👉 нетворкинг, общение с крутыми спецами, HR Speed Dating
😎 After Party на крыше ИТ-парка
Встречаемся 29 июля в 12:00 по адресу: ул. Спартаковская, 2.
Обязательно зарегистрируйтесь по ссылке! 💚
👍10❤6🔥2
GraphQL with Java and Spring (2023) True PDF, ePUB
Learn first-hand from the founder of GraphQL Java and co-author of Spring for GraphQL how to build GraphQL services in Java.
This book is for anyone who wants to build a production GraphQL service with Java. By the end of this book, you will be confident building your own production GraphQL service with Spring for GraphQL, the official Spring integration built on top of the GraphQL Java engine. Spring for GraphQL makes it easier than ever to build a GraphQL service by eliminating boilerplate code and seamlessly integrating with the Spring ecosystem.
GraphQL Java is the dominant Java implementation of GraphQL, powering services at Twitter, AirBnB, Netflix, Atlassian, and many other companies. By the end of this book, you’ll be leveraging the same engine with Spring for GraphQL.
In this book, you’ll learn key GraphQL concepts, paired with practical advice from our experiences running production GraphQL services at scale.
Learn first-hand from the founder of GraphQL Java and co-author of Spring for GraphQL how to build GraphQL services in Java.
This book is for anyone who wants to build a production GraphQL service with Java. By the end of this book, you will be confident building your own production GraphQL service with Spring for GraphQL, the official Spring integration built on top of the GraphQL Java engine. Spring for GraphQL makes it easier than ever to build a GraphQL service by eliminating boilerplate code and seamlessly integrating with the Spring ecosystem.
GraphQL Java is the dominant Java implementation of GraphQL, powering services at Twitter, AirBnB, Netflix, Atlassian, and many other companies. By the end of this book, you’ll be leveraging the same engine with Spring for GraphQL.
In this book, you’ll learn key GraphQL concepts, paired with practical advice from our experiences running production GraphQL services at scale.
👍14❤6
Как создаются большие проекты
В данном видео концептуально разобран процесс создания "больших" проектов.
В данном видео концептуально разобран процесс создания "больших" проектов.
YouTube
Как создаются большие проекты
В данном видео концептуально разобран процесс создания "больших" проектов.
Дружное сообщество:
https://news.1rj.ru/str/pse_club
Материалы для разработчиков:
https://proselyte.net/
00:00:00 Введение
00:00:55 Бизнес, как основа проекта
00:02:12 Создание отдела разработки…
Дружное сообщество:
https://news.1rj.ru/str/pse_club
Материалы для разработчиков:
https://proselyte.net/
00:00:00 Введение
00:00:55 Бизнес, как основа проекта
00:02:12 Создание отдела разработки…
👍19🔥4🤩2
Фундаментальный подход к программной архитектуре: паттерны, свойства, проверенные методы (2023) PDF
Архитекторы ПО стабильно входят в десятку самых высокооплачиваемых профессий. Но до сих пор не было реального руководства, которое позволило бы разработчикам стать архитекторами. И вот наконец появилась книга, в которой дается всеобъемлющий обзор разнообразных аспектов архитектуры программного обеспечения. Начинающие и уже состоявшиеся архитекторы найдут в ней паттерны архитектур, определения компонентов, приемы построения эволюционных архитектур и множество других тем. Марк Ричардс и Нил Форд обладают бесценным практическим опытом, профессионально занимаются этой темой, уделяя особое внимание принципам построения архитектуры, применимым ко всем технологическим стекам. Они предлагают современный взгляд на архитектуру ПО с учетом всех нововведений последнего десятилетия.
Архитекторы ПО стабильно входят в десятку самых высокооплачиваемых профессий. Но до сих пор не было реального руководства, которое позволило бы разработчикам стать архитекторами. И вот наконец появилась книга, в которой дается всеобъемлющий обзор разнообразных аспектов архитектуры программного обеспечения. Начинающие и уже состоявшиеся архитекторы найдут в ней паттерны архитектур, определения компонентов, приемы построения эволюционных архитектур и множество других тем. Марк Ричардс и Нил Форд обладают бесценным практическим опытом, профессионально занимаются этой темой, уделяя особое внимание принципам построения архитектуры, применимым ко всем технологическим стекам. Они предлагают современный взгляд на архитектуру ПО с учетом всех нововведений последнего десятилетия.
👍17🤩4🔥3
Как между собой связаны Iterable и Iterator?
Интерфейс
Интерфейс
Iterable имеет только один метод - iterator(), который возвращает Iterator.👍21
Jakarta Bean Validation — это спецификация, описывающая API для валидации объектов в рамках Jakarta EE. Вы можете использовать данную спецификацию для валидации в проектах вне зависимости от используемого фреймворка или сервера приложений. Более того, вы можете использовать Jakarta Bean Validation в полностью самостоятельных проектах, не основанных на Jakarta EE или каком-либо фреймворке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Jakarta Bean Validation 3.0 - Jakarta EE
Jakarta Bean Validation — это спецификация, описывающая API для валидации объектов в рамках Jakarta EE. Вы можете использовать данную спецификацию для валидации в проектах вне зависимости от используемого фреймворка или сервера приложений. Более того, вы…
👍9🔥4
Java from EPAM: Учебно-методическое пособие, 2-е изд. (2021) PDF
Второе издание пособия предназначено для программистов, начинающих и продолжающих изучение технологий Java SE. В книге рассматриваются основы языка Java и концепции объектно-ориентированного и функционального программирования. Также изложены аспекты применения библиотек классов языка Java, включая файлы, коллекции, Stream API, сетевые и многопоточные приложения, а также взаимодействие с СУБД и XML. В конце каждой главы даются теоретические вопросы по изученной главе, тестовые вопросы по материалу главы и задания для выполнения. В приложениях приведены дополнительные материалы с кратким описанием технологий Log4J2 и TestNG.
Функциональное программирование (ФП) было добавлено в очередную версию Java и ориентировано на вычисления и обработку информации. Этот подход предполагает формирование функции как объекта и передачу этого объекта в метод для использования или, наоборот, сама функция есть возвращаемое методом значение.
Второе издание пособия предназначено для программистов, начинающих и продолжающих изучение технологий Java SE. В книге рассматриваются основы языка Java и концепции объектно-ориентированного и функционального программирования. Также изложены аспекты применения библиотек классов языка Java, включая файлы, коллекции, Stream API, сетевые и многопоточные приложения, а также взаимодействие с СУБД и XML. В конце каждой главы даются теоретические вопросы по изученной главе, тестовые вопросы по материалу главы и задания для выполнения. В приложениях приведены дополнительные материалы с кратким описанием технологий Log4J2 и TestNG.
Функциональное программирование (ФП) было добавлено в очередную версию Java и ориентировано на вычисления и обработку информации. Этот подход предполагает формирование функции как объекта и передачу этого объекта в метод для использования или, наоборот, сама функция есть возвращаемое методом значение.
👍18🔥3😁3
Сравните Iterator и ListIterator.
•
•
•
• При помощи
•
ListIterator расширяет интерфейс Iterator
• ListIterator может быть использован только для перебора элементов коллекции List;•
Iterator позволяет перебирать элементы только в одном направлении, при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();•
ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().• При помощи
ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.👍24🔥4❤1
Грокаем функциональное мышление (2023) PDF
Кодовые базы разрастаются, становясь всё сложнее и запутаннее, что не может не пугать разработчиков. Как обнаружить код, изменяющий состояние вашей системы? Как сделать код таким, чтобы он не увеличивал сложность и запутанность кодовой базы? Большую часть «действий», изменяющих состояние, можно превратить в «вычисления», чтобы ваш код стал проще и логичнее. Вы научитесь бороться со сложными ошибками синхронизации, которые неизбежно проникают в асинхронный и многопоточный код, узнаете, как компонуемые абстракции предотвращают дублирование кода, и откроете для себя новые уровни его выразительности. Книга предназначена для разработчиков среднего и высокого уровня, создающих сложный код. Примеры, иллюстрации, вопросы для самопроверки и практические задания помогут надежно закрепить новые знания.
Кодовые базы разрастаются, становясь всё сложнее и запутаннее, что не может не пугать разработчиков. Как обнаружить код, изменяющий состояние вашей системы? Как сделать код таким, чтобы он не увеличивал сложность и запутанность кодовой базы? Большую часть «действий», изменяющих состояние, можно превратить в «вычисления», чтобы ваш код стал проще и логичнее. Вы научитесь бороться со сложными ошибками синхронизации, которые неизбежно проникают в асинхронный и многопоточный код, узнаете, как компонуемые абстракции предотвращают дублирование кода, и откроете для себя новые уровни его выразительности. Книга предназначена для разработчиков среднего и высокого уровня, создающих сложный код. Примеры, иллюстрации, вопросы для самопроверки и практические задания помогут надежно закрепить новые знания.
👍26🔥3🤩2
Java — один из самых популярных языков программирования в мире. Хотите начать путь в IT с его изучения? Присоединяйтесь к практическому онлайн-интенсиву по Java-разработке 31 июля в 19:00 (МСК).
Мы расскажем, какие навыки нужны разработчику для трудоустройства, а также сравним возможности Java и Python.
При регистрации дарим гайд по профессии Java-разработчика: 👉https://epic.st/kbvlEF
💪Вы попробуете написать Telegram-бота, даже если никогда не программировали.
🔔Спикер — Даниил Пилипенко, основатель и директор центра подбора IT-специалистов SymbioWay. Более 19 лет работает в сфере Java и веб-разработки. За его плечами более 500 выступлений на семинарах и конференциях.
🎁Участвуйте, задавайте вопросы и получите сертификат на скидку 10 000 рублей на любой курс Skillbox. Всем дошедшим до конца интенсива дарим электронную книгу издательства МИФ «Разум под контролем» Роджера Сайпа и Робба Збиерски.
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Мы расскажем, какие навыки нужны разработчику для трудоустройства, а также сравним возможности Java и Python.
При регистрации дарим гайд по профессии Java-разработчика: 👉https://epic.st/kbvlEF
💪Вы попробуете написать Telegram-бота, даже если никогда не программировали.
🔔Спикер — Даниил Пилипенко, основатель и директор центра подбора IT-специалистов SymbioWay. Более 19 лет работает в сфере Java и веб-разработки. За его плечами более 500 выступлений на семинарах и конференциях.
🎁Участвуйте, задавайте вопросы и получите сертификат на скидку 10 000 рублей на любой курс Skillbox. Всем дошедшим до конца интенсива дарим электронную книгу издательства МИФ «Разум под контролем» Роджера Сайпа и Робба Збиерски.
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
👍4❤2
Что произойдет при вызове Iterator.next() без предварительного вызова Iterator.hasNext()?
Если итератор указывает на последний элемент коллекции, то возникнет исключение
Если итератор указывает на последний элемент коллекции, то возникнет исключение
NoSuchElementException, иначе будет возвращен следующий элемент.👍13
Модернизация Java Enterprise: облачные технологии для разработчиков (2023) PDF, ePUB
В разговорах о технологиях постоянно упоминаются контейнеры, микросервисы и распределенные системы, однако большинство приложений по-прежнему работают на базе монолитных архитектур, основанных на традиционных процессах разработки. Давайте поближе познакомимся с хорошо зарекомендовавшими себя моделями на основе Java и разберемся, как перенести эти монолитные приложения в будущее.
Опираясь на многолетний опыт модернизации приложений, Маркус Эйзеле и Натале Винто показывают, что необходимо сделать для обновления приложений Java, как разделить на части монолитные приложения и перейти на современный программный стек, работающий как в облаке, так и в локальной среде.
В разговорах о технологиях постоянно упоминаются контейнеры, микросервисы и распределенные системы, однако большинство приложений по-прежнему работают на базе монолитных архитектур, основанных на традиционных процессах разработки. Давайте поближе познакомимся с хорошо зарекомендовавшими себя моделями на основе Java и разберемся, как перенести эти монолитные приложения в будущее.
Опираясь на многолетний опыт модернизации приложений, Маркус Эйзеле и Натале Винто показывают, что необходимо сделать для обновления приложений Java, как разделить на части монолитные приложения и перейти на современный программный стек, работающий как в облаке, так и в локальной среде.
👍15🔥4❤1
❓Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!
👩💻 Android Developer - канал для андроид разработчиков! Статьи, вопросы и задачи с собеседований, лайфхаки.
👩💻 Kotlin Developer - самый топовый канал для котлин разработчика!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2🤩1
Сколько элементов будет пропущено, если Iterator.next() будет вызван после 10-ти вызовов Iterator.hasNext()?
Нисколько -
Нисколько -
hasNext() осуществляет только проверку наличия следующего элемента.👍21🔥5❤1
Более чем за десять лет работы со Spring Framework и Enterprise Java автор успел полюбить Spring Framework, возненавидеть и в итоге пересмотреть свои подходы к работе с ним. То же самое касается работы с рефлексией в целом и работы с АОП в частности.
Всё это из-за того, что магия фреймворков иногда ломается, и делает это очень неочевидно.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Когда ломается магия фреймворков...
Более чем за десять лет работы со Spring Framework и Enterprise Java я успел полюбить Spring Framework, возненавидеть и в итоге пересмотреть свои подходы к работе с ним. То же самое касается работы с рефлексией в целом и работы с АОП в частности.
Всё это…
Всё это…
👍13🔥6