Вопросы с реального собеседования Senior Java Developer
00:00 Приветствие
01:34 Введение
02:23 Разбор вопросов и ответов
03:10 Может ли разработчик управлять памятью в Java?
03:40 Как потоки связаны с памятью?
07:28 Spring Context и зачем он нужен?
08:10 Как работает аннотация @ Transactional?
09:45 Как работает транзакция?
10:30 Как работает TDD?
14:17 Выводы
https://www.youtube.com/watch?v=sMGYAucH9yY
👉@BookJava
00:00 Приветствие
01:34 Введение
02:23 Разбор вопросов и ответов
03:10 Может ли разработчик управлять памятью в Java?
03:40 Как потоки связаны с памятью?
07:28 Spring Context и зачем он нужен?
08:10 Как работает аннотация @ Transactional?
09:45 Как работает транзакция?
10:30 Как работает TDD?
14:17 Выводы
https://www.youtube.com/watch?v=sMGYAucH9yY
👉@BookJava
YouTube
Вопросы с реального собеседования Senior Java Developer
Сегодня мы рассмотрим обзор реального интервью на позицию Senior Java Developer.
Поговорим о вопросах и ответах, а главное что из этого всего получилось.
Погнали!
Программа
00:00 Приветствие
01:34 Введение
02:23 Разбор вопросов и ответов
03:10 Может ли…
Поговорим о вопросах и ответах, а главное что из этого всего получилось.
Погнали!
Программа
00:00 Приветствие
01:34 Введение
02:23 Разбор вопросов и ответов
03:10 Может ли…
👍5
RSHB Backend Dev Meetup: — бесплатный митап для Java-разработчиков
🗓 6 июля в 19:00 (МСК, GMT+3)
🌐 Онлайн — трансляция на сайте
📍 Офлайн — в офисе РСХБ-Интех по адресу: Москва, Профсоюзная улица, дом 125а
В программе:
✔ Александр Нозик— «Такая разная разработка». Доклад об использовании технологий Kotlin-стека разными командами для разноплановых кейсов (пет-проект, стартап, аналитика, исследования и энтерпрайз).
✔ Иван Кочергин — «Микросервисы в банке: на чем их лучше писать? Java/Kotlin, а может Go?». Иван сравнит преимущества двух популярных платформ и составит непредвзятую картину, чтобы понять, на чем лучше писать микросервисы в банке.
✔ Илья Сазонов, Федор Сазонов — «Маппинг: убрать нельзя использовать». Спикеры расскажут о маппинге одних DTO в другие, как и главное зачем это делать, а также обсудят особенности юнит-тестирования.
Вы сможете задать вопросы спикерам и подискутировать с другими участниками. Авторы лучших вопросов получат подарки🎁
Участие бесплатное. Нужно только зарегистрироваться.
🗓 6 июля в 19:00 (МСК, GMT+3)
🌐 Онлайн — трансляция на сайте
📍 Офлайн — в офисе РСХБ-Интех по адресу: Москва, Профсоюзная улица, дом 125а
В программе:
✔ Александр Нозик— «Такая разная разработка». Доклад об использовании технологий Kotlin-стека разными командами для разноплановых кейсов (пет-проект, стартап, аналитика, исследования и энтерпрайз).
✔ Иван Кочергин — «Микросервисы в банке: на чем их лучше писать? Java/Kotlin, а может Go?». Иван сравнит преимущества двух популярных платформ и составит непредвзятую картину, чтобы понять, на чем лучше писать микросервисы в банке.
✔ Илья Сазонов, Федор Сазонов — «Маппинг: убрать нельзя использовать». Спикеры расскажут о маппинге одних DTO в другие, как и главное зачем это делать, а также обсудят особенности юнит-тестирования.
Вы сможете задать вопросы спикерам и подискутировать с другими участниками. Авторы лучших вопросов получат подарки🎁
Участие бесплатное. Нужно только зарегистрироваться.
🔥3
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Сортировка слиянием через рекурсию
В этот раз мы применим рекурсию для создания алгоритма сортировки слиянием.
В сети легко найти множество вариаций решения данной задачи. Код, который мы рассмотрим в этой статье, будет написан так, чтобы быть максимально простым для понимания начинающих разработчиков.
Освежим в памяти суть сортировки слиянием:
Изначальный массив делится пополам до тех пор, пока длина "половинок" не станет равна 1. Это - базовый случай. Затем элементы двух "половинок" сравниваются и заносятся в результирующий массив в порядке возрастания.
https://habr.com/ru/articles/710620/
👉@BookJava
В этот раз мы применим рекурсию для создания алгоритма сортировки слиянием.
В сети легко найти множество вариаций решения данной задачи. Код, который мы рассмотрим в этой статье, будет написан так, чтобы быть максимально простым для понимания начинающих разработчиков.
Освежим в памяти суть сортировки слиянием:
Изначальный массив делится пополам до тех пор, пока длина "половинок" не станет равна 1. Это - базовый случай. Затем элементы двух "половинок" сравниваются и заносятся в результирующий массив в порядке возрастания.
https://habr.com/ru/articles/710620/
👉@BookJava
👍5
Media is too big
VIEW IN TELEGRAM
Spring по верхам: Разработка REST-сервиса
00:00 Вступление
02:13 Конфигурация проекта
06:48 Создание аннотированного контроллера и реализация API для получения списка задач
16:08 API для создания задачи, базовая валидация и интернационализация
34:54 API для получения задачи по идентификатору
источник
👉@BookJava
00:00 Вступление
02:13 Конфигурация проекта
06:48 Создание аннотированного контроллера и реализация API для получения списка задач
16:08 API для создания задачи, базовая валидация и интернационализация
34:54 API для получения задачи по идентификатору
источник
👉@BookJava
👍5
Как за полчаса написать простую читалку книг FB2 для десктопа на Java
Недавно мне для личных целей потребовалось написать читалку FB2. И сразу я столкнулась с тем, что информации по теме минимум. Палочка-выручалочка под названием ChatGPT выдал что-то невразумительное в ответ на довольно подробный запрос. К тому же, никаких готовых библиотек, чтобы по-быстренькому наваять ридер, я также не смогла обнаружить. Хотя искала долго и упорно, как Чубакка расческу.
https://habr.com/ru/articles/732412/
👉@BookJava
Недавно мне для личных целей потребовалось написать читалку FB2. И сразу я столкнулась с тем, что информации по теме минимум. Палочка-выручалочка под названием ChatGPT выдал что-то невразумительное в ответ на довольно подробный запрос. К тому же, никаких готовых библиотек, чтобы по-быстренькому наваять ридер, я также не смогла обнаружить. Хотя искала долго и упорно, как Чубакка расческу.
https://habr.com/ru/articles/732412/
👉@BookJava
👍8
Apache Kafka - это распределённая платформа потоковой передачи данных с открытым исходным кодом.
Её используют LinkedIn, Netflix и тысячи других компаний для создания высокопроизводительных конвейеров данных, потоковой аналитики и критически важных приложений.
— Как эффективно использовать Apache Kafka в своих проектах?
— Как применять best practices от лидеров индустрии?
— Как избежать распространённых ошибок?
Читайте в канале Рецепты Kafka
Её используют LinkedIn, Netflix и тысячи других компаний для создания высокопроизводительных конвейеров данных, потоковой аналитики и критически важных приложений.
— Как эффективно использовать Apache Kafka в своих проектах?
— Как применять best practices от лидеров индустрии?
— Как избежать распространённых ошибок?
Читайте в канале Рецепты Kafka
👍2
Еще один путь снизить боль при работе с Java проектами и их документированием
За время карьеры, чаще всего сталкивался с ситуацией — когда получаешь проект в котором непонятно, где «вход», где «выход» и один только вопрос — «куда ткнуть?!». Товарищи, давшие проект, говорят — «это делал Вася, но он уже уволился, а на звонки не отвечает и никто не знает что к чему». Знакомая ситуация? Так же, после перебросок между многочисленными проектами бывало — когда смотришь непонимающе на код, а в коммитах автором видишь своё имя, но уже не помнишь вообще что к чему и как писал. Знакомо? В какой‑то момент меня стала доставать такая ситуация и я сделал себе небольшую автоматизацию, что бы снизить количество проблем и ненужных нагрузок на мозг, это — карта проекта.
https://habr.com/ru/articles/732564/
👉@BookJava
За время карьеры, чаще всего сталкивался с ситуацией — когда получаешь проект в котором непонятно, где «вход», где «выход» и один только вопрос — «куда ткнуть?!». Товарищи, давшие проект, говорят — «это делал Вася, но он уже уволился, а на звонки не отвечает и никто не знает что к чему». Знакомая ситуация? Так же, после перебросок между многочисленными проектами бывало — когда смотришь непонимающе на код, а в коммитах автором видишь своё имя, но уже не помнишь вообще что к чему и как писал. Знакомо? В какой‑то момент меня стала доставать такая ситуация и я сделал себе небольшую автоматизацию, что бы снизить количество проблем и ненужных нагрузок на мозг, это — карта проекта.
https://habr.com/ru/articles/732564/
👉@BookJava
👍6
Миллиарды сообщений в минуту по протоколу TCP/IP
Основные выводы
Согласованность данных имеет решающее значение при обмене данными между программными компонентами на разных машинах, чтобы обеспечить сохранность информации.
Обмен данными с низкой задержкой требует иного подхода, чем обычные форматы.
Библиотека Chronicle Wire с открытым исходным кодом обеспечивает высокоэффективные средства сериализации и десериализации данных для передачи в и из Chronicle Queue.
Недавние дополнения к библиотеке расширяют возможности ее использования с каналами связи TCP/IP, обеспечивая чрезвычайно высокую пропускную способность.
Использование Wire через TCP/IP открывает возможность облачно-ориентированного (cloud native) развертывания приложений на основе Chronicle.
https://www.infoq.com/articles/billions-messages-minute/
👉@BookJava
Основные выводы
Согласованность данных имеет решающее значение при обмене данными между программными компонентами на разных машинах, чтобы обеспечить сохранность информации.
Обмен данными с низкой задержкой требует иного подхода, чем обычные форматы.
Библиотека Chronicle Wire с открытым исходным кодом обеспечивает высокоэффективные средства сериализации и десериализации данных для передачи в и из Chronicle Queue.
Недавние дополнения к библиотеке расширяют возможности ее использования с каналами связи TCP/IP, обеспечивая чрезвычайно высокую пропускную способность.
Использование Wire через TCP/IP открывает возможность облачно-ориентированного (cloud native) развертывания приложений на основе Chronicle.
https://www.infoq.com/articles/billions-messages-minute/
👉@BookJava
InfoQ
Billions of Messages Per Minute Over TCP/IP
Chronicle Wire offers an alternative way of transferring data between systems, delivering more messages, faster, than common JSON/XML approaches. This approach to data serialization improves both latency and throughput.
👍4🤔1
Метод compareTo()
В Java метод compareTo() получает значение 0, если аргумент является строкой лексически равной данной строке; значение меньше 0, если аргумент является строкой лексически большей, чем сравниваемая строка; и значение больше 0, если аргумент является строкой лексически меньшей этой строки.
👉@BookJava
В Java метод compareTo() получает значение 0, если аргумент является строкой лексически равной данной строке; значение меньше 0, если аргумент является строкой лексически большей, чем сравниваемая строка; и значение больше 0, если аргумент является строкой лексически меньшей этой строки.
👉@BookJava
👍3
Подборка Telegram каналов для программистов
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
Excel лайфхак📌
https://t.me/Excel_lifehack
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
Excel лайфхак📌
https://t.me/Excel_lifehack
🔥1
Media is too big
VIEW IN TELEGRAM
Техническое интервью Java Developer - Сергей Гонтаренко
00:00 Введение
02:38 Почему Сергей выбрал Java?
05:20 Кроссплатформенность Java
06:24 Типы данных
08:00 Wrapper Classes (Классы обертки)
09:45 Ссылочные типы данных
11:40 Инкапсуляция
18:50 Метод vs Конструктор
21:38 Интерфейс vs Абстрактный класс
31:20 Collections. HashSet vs TreeSet
38:46 JDK, JRE, JVM
40:15 Как хранить и обрабатывать пароль работая с Java
44:28 HashMap vs HashTable
45:24 Техническая задача на реализацию Immutable Class
50:15 Enum (перечисления)
52:20 Техническая задача на работу с Enum
01:03:10 Spring. Spring Scope
01:04:55 Техническая задача на знание аннотаций в Spring
01:21:55 Базы данных. Left, Right, Inner Join
01:24:05 Техническая задача на знание баз данных
01:41:28 Заключение
источник
👉@BookJava
00:00 Введение
02:38 Почему Сергей выбрал Java?
05:20 Кроссплатформенность Java
06:24 Типы данных
08:00 Wrapper Classes (Классы обертки)
09:45 Ссылочные типы данных
11:40 Инкапсуляция
18:50 Метод vs Конструктор
21:38 Интерфейс vs Абстрактный класс
31:20 Collections. HashSet vs TreeSet
38:46 JDK, JRE, JVM
40:15 Как хранить и обрабатывать пароль работая с Java
44:28 HashMap vs HashTable
45:24 Техническая задача на реализацию Immutable Class
50:15 Enum (перечисления)
52:20 Техническая задача на работу с Enum
01:03:10 Spring. Spring Scope
01:04:55 Техническая задача на знание аннотаций в Spring
01:21:55 Базы данных. Left, Right, Inner Join
01:24:05 Техническая задача на знание баз данных
01:41:28 Заключение
источник
👉@BookJava
👍8❤1
Top Core Java Interview Questions for Freshers and Experienced
https://www.edureka.co/blog/interview-questions/java-interview-questions/
👉@BookJava
https://www.edureka.co/blog/interview-questions/java-interview-questions/
👉@BookJava
👍3❤1
Media is too big
VIEW IN TELEGRAM
Java. Префиксное дерево. Основные операции, сохранение в файл, практическое применение.
В данном видео я рассказываю о префиксных деревьях. Разбираем, что из себя представляет префиксное дерево, для чего оно применяется. Изучаем и реализуем основные операции с префиксным деревом на языке программирования Java. Кроме этого я показываю как сохранить дерево в файл и потом загрузить обратно. С помощью этого проверяю, насколько выгодней может быть хранение строк в префиксном дереве на примере автомобильных номеров.
00:00 - Вступление
00:26 - Применение в приложении
01:58 - Построение дерева и операции с ним
06:33 - Построение префиксного дерева на Java
11:22 - Операции с префиксным деревом на Java
16:31 - Сохранение дерева в файл
20:51 - Загрузка дерева из файла
25:32 - Экономия по сравнению со списком
27:12 - Замечание о Null-безопасности
28:26 - Заключение
источник
👉@BookJava
В данном видео я рассказываю о префиксных деревьях. Разбираем, что из себя представляет префиксное дерево, для чего оно применяется. Изучаем и реализуем основные операции с префиксным деревом на языке программирования Java. Кроме этого я показываю как сохранить дерево в файл и потом загрузить обратно. С помощью этого проверяю, насколько выгодней может быть хранение строк в префиксном дереве на примере автомобильных номеров.
00:00 - Вступление
00:26 - Применение в приложении
01:58 - Построение дерева и операции с ним
06:33 - Построение префиксного дерева на Java
11:22 - Операции с префиксным деревом на Java
16:31 - Сохранение дерева в файл
20:51 - Загрузка дерева из файла
25:32 - Экономия по сравнению со списком
27:12 - Замечание о Null-безопасности
28:26 - Заключение
источник
👉@BookJava
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Принцип инверсии зависимости - SOLID в деталях
Принцип инверсии зависимости гласит: "Код, реализующий высокоуровневую политику, не должен зависеть от кода, реализующего низкоуровневые детали. Напротив, детали должны зависеть от политики". В этом ролике я постарался наглядно продемонстрировать применение этого принципа.
В серии роликов «SOLID в деталях» я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
источник
👉@BookJava
Принцип инверсии зависимости гласит: "Код, реализующий высокоуровневую политику, не должен зависеть от кода, реализующего низкоуровневые детали. Напротив, детали должны зависеть от политики". В этом ролике я постарался наглядно продемонстрировать применение этого принципа.
В серии роликов «SOLID в деталях» я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
источник
👉@BookJava
👍2
lfa Backend Stories Meetup #2 🔥
26 июля встречаемся на митапе для бэкенд-разработчиков: эксперты из Альфы и Авито обсудят межсерверное взаимодействие и архитектурные паттерны, которые могут упростить жизнь разработчику.
🔺 Александр Карташов, Senior Java Developer, расскажет про технологии межсервисного взаимодействия на примере проектов Альфа-Банка.
🔺 Василий Рыбин, Java Developer, познакомит с архитектурным паттерном API Gateway.
🔺 Павел Агалецкий, Lead Engineer в Авито, рассмотрит механики валидации контрактов внутренних API и протокол межсервисного взаимодействия в Авито.
🔺 Екатерина Попкова, Java/Kotlin Developer, расскажет, что такое Сага и как его можно реализовать на Camunda Platform 8.
✔️ Зарегистрироваться на митап и узнать больше о программе
26 июля встречаемся на митапе для бэкенд-разработчиков: эксперты из Альфы и Авито обсудят межсерверное взаимодействие и архитектурные паттерны, которые могут упростить жизнь разработчику.
🔺 Александр Карташов, Senior Java Developer, расскажет про технологии межсервисного взаимодействия на примере проектов Альфа-Банка.
🔺 Василий Рыбин, Java Developer, познакомит с архитектурным паттерном API Gateway.
🔺 Павел Агалецкий, Lead Engineer в Авито, рассмотрит механики валидации контрактов внутренних API и протокол межсервисного взаимодействия в Авито.
🔺 Екатерина Попкова, Java/Kotlin Developer, расскажет, что такое Сага и как его можно реализовать на Camunda Platform 8.
✔️ Зарегистрироваться на митап и узнать больше о программе
👍1
Media is too big
VIEW IN TELEGRAM
Создание аннотации в java [Java Annotations | Reflection api]
Создаем собственные аннотации. Изучаем из чего состоит аннотация, для чего они нужны и как их обрабатывать. Николай Бунис, senior инженер, расскажет вам про основные составляющие аннотации, ее жизненный цикл и область применения. Используя Reflection Api разберемся как создать свою аннотацию и напишем обработчик наших аннотаций.
В качестве примера возьмем всем знакомую ситуацию когда нужно провалидировать поля класса на минимальную и максимальную длину, соответствие email шаблону и тд. Существует 2 основных варианта как это сделать. Первый это писать каждый раз логику валидации для каждого конкретного класса. Ну а второй вариант это сделать обработчик аннотаций и аннотировать поля класса. Таким образом логика будет написана единожды. Именно этот пример мы и будем разбирать в нашем видео.
источник
👉@BookJava
Создаем собственные аннотации. Изучаем из чего состоит аннотация, для чего они нужны и как их обрабатывать. Николай Бунис, senior инженер, расскажет вам про основные составляющие аннотации, ее жизненный цикл и область применения. Используя Reflection Api разберемся как создать свою аннотацию и напишем обработчик наших аннотаций.
В качестве примера возьмем всем знакомую ситуацию когда нужно провалидировать поля класса на минимальную и максимальную длину, соответствие email шаблону и тд. Существует 2 основных варианта как это сделать. Первый это писать каждый раз логику валидации для каждого конкретного класса. Ну а второй вариант это сделать обработчик аннотаций и аннотировать поля класса. Таким образом логика будет написана единожды. Именно этот пример мы и будем разбирать в нашем видео.
источник
👉@BookJava
👍6
Тимлид в команду разработки на Java
Гибридный формат в городах РФ, Сербии, Казахстана, Армении, Беларуси.
Инфраструктура Яндекса — это набор сервисных провайдеров, на основе которых строится runtime облака, хранилища, системы офлайн-вычислений и другие продукты компании. Все провайдеры объединены проектной, ресурсной и ролевой моделью — это позволяет быстрее запускать новые продукты и гарантировать стабильность работы уже существующих. Наша команда разрабатывает базовые сервисы, которые реализуют эти модели и связывают всю инфраструктуру воедино, позволяют группировать ресурсы по проектам, предоставлять к ним доступы.
Ищем опытного тимлида в команду разработки на Java, который поможет спроектировать и реализовать новые компоненты системы, будет руководить командой, нанимать новых инженеров и развивать их.
Наш стек: Java 11, Spring Boot, Reactor, HTTP и gRPC API, Kotlin, PostgreSQL.
Мы ждем, что вы:
- разрабатывали на Java больше трех лет;
- пишете эффективный и понятный код;
- управляли командой разработки; нанимали людей и знаете, как правильно развивать разработчиков;
- можете вести за собой младших участников команды, делиться с ними знаниями и опытом;
- знаете, как устроены веб-сервисы;
- работали с реляционными и нереляционными базами данных и понимаете их устройство, *nix-подобными ОС.
- знаете популярные Java-библиотеки и фреймворки (Spring Boot, jUnit, Netty, Reactor);
Условия:
- сильная команда, с которой можно расти;
- зарплата на уровне рынка и выше;
- премии каждые полгода для всех, кто успешно прошёл ревью;
- расширенная программа ДМС: оплата 80% стоимости ДМС для супругов и детей;
- гибкий график работы.
Откликнуться: https://goo.su/5inhyN или в ТГ: @Karm_Anna
Гибридный формат в городах РФ, Сербии, Казахстана, Армении, Беларуси.
Инфраструктура Яндекса — это набор сервисных провайдеров, на основе которых строится runtime облака, хранилища, системы офлайн-вычислений и другие продукты компании. Все провайдеры объединены проектной, ресурсной и ролевой моделью — это позволяет быстрее запускать новые продукты и гарантировать стабильность работы уже существующих. Наша команда разрабатывает базовые сервисы, которые реализуют эти модели и связывают всю инфраструктуру воедино, позволяют группировать ресурсы по проектам, предоставлять к ним доступы.
Ищем опытного тимлида в команду разработки на Java, который поможет спроектировать и реализовать новые компоненты системы, будет руководить командой, нанимать новых инженеров и развивать их.
Наш стек: Java 11, Spring Boot, Reactor, HTTP и gRPC API, Kotlin, PostgreSQL.
Мы ждем, что вы:
- разрабатывали на Java больше трех лет;
- пишете эффективный и понятный код;
- управляли командой разработки; нанимали людей и знаете, как правильно развивать разработчиков;
- можете вести за собой младших участников команды, делиться с ними знаниями и опытом;
- знаете, как устроены веб-сервисы;
- работали с реляционными и нереляционными базами данных и понимаете их устройство, *nix-подобными ОС.
- знаете популярные Java-библиотеки и фреймворки (Spring Boot, jUnit, Netty, Reactor);
Условия:
- сильная команда, с которой можно расти;
- зарплата на уровне рынка и выше;
- премии каждые полгода для всех, кто успешно прошёл ревью;
- расширенная программа ДМС: оплата 80% стоимости ДМС для супругов и детей;
- гибкий график работы.
Откликнуться: https://goo.su/5inhyN или в ТГ: @Karm_Anna
💩12👍4👎1
Как прочитать криптографический ключ?
Для чтения криптографического ключа необходимо использовать классы Java Cryptography Architecture (JCA). Пример кода для чтения криптографического ключа из файла вида PKCS#8 с помощью этих классов может выглядеть следующим образом:
// Используем ключ для выполнения криптографических операций
👉@BookJava
Для чтения криптографического ключа необходимо использовать классы Java Cryptography Architecture (JCA). Пример кода для чтения криптографического ключа из файла вида PKCS#8 с помощью этих классов может выглядеть следующим образом:
// Загружаем публичный ключ из файла
FileInputStream fis = new FileInputStream("public.pem");
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
byte[] keyBytes = new byte[dis.available()];
dis.readFully(keyBytes);
dis.close();
// Преобразуем байты в объект PublicKey
X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
PublicKey publicKey = kf.generatePublic(spec);
// Используем ключ для выполнения криптографических операций
👉@BookJava
👍4