📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP
Spring по верхам: Разработка REST-сервиса
00:00 Вступление
02:13 Конфигурация проекта
06:48 Создание аннотированного контроллера и реализация API для получения списка задач
16:08 API для создания задачи, базовая валидация и интернационализация
34:54 API для получения задачи по идентификатору
источник
👉@BookJava
Добро пожаловать в мир облачных технологий! Хотите узнать, какие бывают облака?
Тогда приходите 10 июля в 20:00 на открытый урок «Введение в облака, создание кластера в Mongo DB Atlas» в OTUS.
Вебинар приурочен к старту онлайн-курса «Разработчик на Spring Framework» в OTUS и проведет его Дмитрий Коган, председатель совета предприятия DXC. Вместе мы исследуем различные типы облачных решений и их преимущества, а также настроим собственный кластер для своих проектов. Не упустите возможность получить ценные знания и познакомиться с экспертом.
Продолжить обучение на курсе возможно в рассрочку.
Для участия зарегистрируйтесь https://otus.pw/oMhj/
RSHB Backend Dev Meetup: — бесплатный митап для Java-разработчиков
🗓 6 июля в 19:00 (МСК, GMT+3)
🌐 Онлайн — трансляция на сайте
📍 Офлайн — в офисе РСХБ-Интех по адресу: Москва, Профсоюзная улица, дом 125а
В программе:
✔ Александр Нозик— «Такая разная разработка». Доклад об использовании технологий Kotlin-стека разными командами для разноплановых кейсов (пет-проект, стартап, аналитика, исследования и энтерпрайз).
✔ Иван Кочергин — «Микросервисы в банке: на чем их лучше писать? Java/Kotlin, а может Go?». Иван сравнит преимущества двух популярных платформ и составит непредвзятую картину, чтобы понять, на чем лучше писать микросервисы в банке.
✔ Илья Сазонов, Федор Сазонов — «Маппинг: убрать нельзя использовать». Спикеры расскажут о маппинге одних DTO в другие, как и главное зачем это делать, а также обсудят особенности юнит-тестирования.
Вы сможете задать вопросы спикерам и подискутировать с другими участниками. Авторы лучших вопросов получат подарки🎁
Участие бесплатное. Нужно только зарегистрироваться.
KeyStore Explorer - Создание самоподписанных сертификатов
В данном ролике я рассмотрю создание самоподписанных сертификатов при помощи утилиты KeyStore Explorer.
https://youtu.be/ixK9CWfSdQ8
👉@BookJava
Java. Представление отрицательных чисел. Преобразование цветной фотографии в черно-белую.
В этом видео я рассказываю о представлении в отрицательных чисел в компьютере на примере типа byte. Показываю, что можно получить, если забыть, что все целочисленные типы в языке программирования Java знаковые. В качестве практической части, пишем алгоритм для преобразования цветной фотографии в черно-белую.
источник
👉@BookJava
👨💻 Хотите усовершенствовать свои навыки Java с помощью Groovy?
Ответьте на 18 вопросов, чтобы проверить достаточно ли ваших навыков, чтобы работать с Groovy на практике и попасть на курс — «Groovy Developer» от OTUS.
На полном курсе вы научитесь применять Groovy-скрипты,
использовать статическую и динамическую типизацию кода, а также использовать средства языка для работы с БД.
👉 Пройти тест — https://otus.pw/n4Bj/
💣 После прохождения теста вы сможете присоединиться к курсу «Groovy Developer» в OTUS, где вы на живых вебинарах с экспертами-практиками получите глубокие знания о Groovy, его особенностях и возможностях.
Реклама. Информация о рекламодателе на сайте www.otus.ru.
👨💻 Как работать с архитектурой высоконагруженных систем?
Пройдите вступительный тест и ответьте на 29 вопросов, чтобы понять готовы ли вы стать архитектором, которые работают с высокими нагрузками и попасть на курс — «Highload Architect» от OTUS.
На полном курсе вы научитесь:
- Правильно использовать шаблоны: кеширование, реплицирование, шардирование, а также инструменты, такие как индексы, ClickHouse, Tarantool, RabbitMQ и Kafka, redis;
- Обеспечивать отказоустойчивость веб-приложений даже при падении серверов;
- Уметь создавать веб-приложения, которые легко масштабировать.
Время прохождения теста ограниченно: 25 минут
👉 Пройти тест — https://otus.pw/o0Ob/
💣 После прохождения у вас будет возможность записаться на курс по спец. цене и оформить рассрочку. А также вы получите доступ к записям 20 открытых уроков курса.
Реклама. Информация о рекламодателе на сайте www.otus.ru.
Сжатие указателей в Java
В статье речь пойдет о реализации сжатия указателей в Java Virtual Machine 64-bit, которое контролируется опцией UseCompressedOops и включено по-умолчанию для 64 битных систем начиная с Java SE 6u23.
https://habr.com/ru/articles/440166/
👉@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
Spring Profiles
В этом руководстве мы сосредоточимся на представлении профилей в Spring.
Профили являются основной особенностью фреймворка, позволяя нам сопоставлять наши beans с различными профилями - например, dev, test и prod.
Затем мы можем активировать разные профили в разных окружениях, чтобы загружать только те модули, которые нам нужны.
https://www.baeldung.com/spring-profiles
👉@BookJava
Коллеги, приглашаем вас на вебинар, где Валерий Харисов расскажет о том, как искать и находить неочевидные утечки исходного кода и содержащихся в них секретов.
🕚 29 июня в 15:00 (МСК)
Leak-Search — сервис сканирования публичных репозиториев на наличие утечек исходного кода, конфигураций и конфиденциальных данных компании.
Разработан и поддерживается командой по ИБ группы компаний QIWI
👨💻На вебинаре рассмотрим:
- как программный код и секреты компании попадают в сеть
- какие векторы утечек часто остаются вне фокуса
- сколько это может стоить бизнесу
- и главное, как не стать жертвой утечки данных
Все на реальных кейсах крупнейших российских и зарубежных компаний, утечки которых были найдены с помощью Leak-Search, либо известны публично.
Для участия на вебинаре зарегистрируйтесь по ссылке
https://link.webinar.fm/register/55392181/7xyczjsv
🕚Ждем вас 29 июня в 15:00 (МСК)
❗️На вебинаре вы получите доступ к пробному периоду❗️
🤪 Если вы пишете приложения на Java и выбираете архитектуру между монолитной и микросервисной, то курс «Микросервисы и API на Java и Kotlin» для вас!
Мы убеждены, что разрабатывать микросервисы интереснее, а работать с ними — проще! Почему?
✔️ Легче ловить сбои и приводить приложение в порядок
✔️ Отдельные компоненты можно масштабировать, при этом не придётся переписывать всю систему
✔️ Разные микросервисы — разные технологии разработки
✔️ Можно обновлять приложение по отдельным частям
Все эти темы и многие другие мы разбираем на курсе по микросервисам на Java.
🤑 И чтобы было легче вкатиться в занятия, мы дарим вам два бесплатных демо-урока. На них мы разберём отличия монолита от микросервиса, в каких условиях стоит выбирать ту или иную архитектуру ПО.
Переходите по ссылке и забирайте уроки, эти знания вам точно пригодятся в работе! Бесплатные уроки можно получить тут.
Что такое пакет? Перечислите различные преимущества пакетов.
Пакеты — это набор связанных классов и интерфейсов, которые связаны вместе. Используя пакеты, разработчики могут легко модулировать код и оптимизировать его повторное использование. Кроме того, код внутри пакетов может быть импортирован другими классами и использован повторно. Несколько его преимуществ:
• Пакеты на Java помогают избежать конфликтов имен.
• Они обеспечивают более легкий контроль доступа к коду.
• Пакеты также могут содержать скрытые классы, которые не видны внешним классам и используются только внутри пакета..
• Создает правильную иерархическую структуру, которая упрощает поиск связанных классов.
👉@BookJava
Проблема квадрата/прямоугольника, объяснение и решение
В ролике о принципе подстановки Барбары Лисков я привёл в качестве примера его нарушения проблему квадрата/прямоугольника, но не предложил способов её решения. В этом ролике я ещё раз рассказываю об этой проблеме и предлагаю решение.
https://www.youtube.com/watch?v=AILeiAJY_78
👉@BookJava
Мечтали о космосе, а работаете в опенспейсе?
Мы тоже… Но мечты же должны сбываться! Поэтому мы создали свои мультивселенные и решили провести там настоящие соревнования по спортивному хакингу IT’s Tinkoff CTF.
Путешественников ждут 30 порталов в новые измерения. Там предстоит пройти миссии, набрать максимальное количество баллов и, конечно, разгадать все пасхалки.
Задания будут интересны разработчикам, SRE- и QA-инженерам, аналитикам и другим ИТ-специалистам. А еще вы сможете потренироваться на тестовых заданиях и выбрать лигу по своим скиллам.
Лучшим командам — вселенский почет и денежные призы до 360 000 рублей!
Покорять мультивселенные отправимся 15 и 16 июля. Участвовать можно онлайн и очно в 14 ИТ-хабах Тинькофф по всей России. Офлайн-участников ждут квизы, настолки, крутой мерч и нетворкинг с экспертами.
🚀Переходите на IT’s Tinkoff CTF, читайте подробности и регистрируйтесь!
Да пребудут с вами силы мультивселенной капибары!
(Упс… кажется, мы спалили первую пасхалку, Хьюстон)
Ерид: LdtCKZmzw
Сортировка слиянием через рекурсию
В этот раз мы применим рекурсию для создания алгоритма сортировки слиянием.
В сети легко найти множество вариаций решения данной задачи. Код, который мы рассмотрим в этой статье, будет написан так, чтобы быть максимально простым для понимания начинающих разработчиков.
Освежим в памяти суть сортировки слиянием:
Изначальный массив делится пополам до тех пор, пока длина "половинок" не станет равна 1. Это - базовый случай. Затем элементы двух "половинок" сравниваются и заносятся в результирующий массив в порядке возрастания.
https://habr.com/ru/articles/710620/
👉@BookJava
Java
В нативный код из уютного мира Java: путешествие туда и обратно
Иван Углянский - Java
Загадки JPA и их разоблачение
Андрей Беляев - Java
источник
👉@BookJava
Вопросы с реального собеседования 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
👨💻 Хотите освоить лучшие инструменты по разработке микросервисной архитектуры?
Ответьте на 11 вопросов, чтобы проверить достаточно ли ваших навыков, чтобы строить архитектуру микросервисов и попасть на курс — «Microservice Architecture» от OTUS.
На полном курсе вы научитесь проектировать сложный бэкенд и работать с легаси-проектами, разбираться с трудными ситуациями и находить нестандартные решения. Все это на практике, с реальными кейсами и под руководством команды экспертов!
👉 Пройти тест — https://otus.pw/8P4D/
💣 После прохождения у вас будет возможность записаться на курс по спец. цене и оформить рассрочку. А также вы получите доступ к записям 27 открытых уроков курса.
Реклама. Информация о рекламодателе на сайте www.otus.ru.
Реализация gRPC с помощью Java и Spring Boot
https://medium.com/turkcell/grpc-implementation-with-spring-boot-7d6f98349d27
👉@BookJava
Java Collections Framework. Вопросы для собеседования.
https://github.com/enhorse/java-interview/blob/master/jcf.md
👉@BookJava
Нельзя так просто взять и вычислить абсолютное значение
Кажется, задача вычисления абсолютного значения (или модуля) числа совершенно тривиальна. Если число отрицательно, давайте сменим знак. Иначе оставим как есть. На Java это будет выглядеть примерно так:public static double abs(double value) {
if (value < 0) {
return -value;
}
return value;
}
https://bookflow.ru/nelzya-tak-prosto-vzyat-i-vychislit-absolyutnoe-znachenie/
👉@BookJava
💪 Пройди тест по Java и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса🎁 .
🚀Успей присоединиться к группе, курс стартует 30 июня!
✍️ ПРОЙТИ ТЕСТ: https://otus.pw/VlGLx/Нативная интеграция. Информация о продукте www.otus.ru
Погрузиться в мир Javа и написать свою первую программу? Уже через 14 дней подготовительного курса!
Приходите с любым бэкграундом: нам не важны возраст, пол, образование и текущая профессия. Всего 990 ₽ и ваше жгучее желание начать.
✅ Вас ждет 62 урока теории и практики прямо в браузере, вебинары, лайвкодинг и первая собственная программа на Java, написанная под руководством опытного наставника и сертификат по окончании.
⏰ Начало уже 4 июля!
Java (Средний уровень)
Урок 1 - Обучение Java (средний уровень). Урок 1 - Строковые операторы
Урок 2 - Строковые операторы в Java (часть 2)
Урок 3 - Рекурсия в Java
Урок 4 - Введение в коллекции в Java. ArrayList
Урок 5 - Коллекции ArrayList и iterator в Java
Урок 6 - Коллекции LinkedList в Java
Урок 7 - Коллекции LinkedList в Java
Урок 8 - Коллекции в Java. Конвертация списка в массив
Урок 9 - Коллекции в Java. Сортировка списка
Урок 10 - Коллекции в Java. Метод для вывода списка в консоль
Все видео доступны на youtube
👉@BookJava
План подготовки к собеседованию на позицию Java разработчика
Каждый раз, готовясь к собеседованиям на позицию «Java разработчик», я понимаю, что мне бы очень помог конкретный план подготовки. Поэтому все свои записи, накопившиеся в ходе прохождения собеседований, было решено структурировать и опубликовать. Надеюсь, кому-то этот план будет полезен.
И я намеренно не пишу, для кого предназначен этот план подготовки: для senior, middle или junior разработчика — все зависит от конкретной вакансии и от требований работодателя. Поэтому опирайтесь на этот план, но фильтруйте и в то же время не воспринимайте его как исчерпывающее руководство.
https://habr.com/ru/articles/473872/
👉@BookJava
Шпаргалка по паттернам проектирования
👉@BookJava
⚡️ Пройди тест по Java ⚡️
💣 Все, кто успешно пройдет тест, получат доступ к записям открытых уроков курса для знакомства с форматом обучения и спец.цену на курс.
Что даст обучение на курсе:
- Сможете создавать современные java-приложения
- Поймете основы функционирования JVM (сборка мусора, byteCode)
- Освоите приемы применения многопоточности.
- Самостоятельно решать задачи уровня Middle+
📌ПРОЙТИ ТЕСТ - https://otus.pw/VlGLx/
💪🏻Хочешь протестировать учебный процесс заранее? Регистрируйся на бесплатное демо-занятие:
📢📢 Регистрация на вебинар 21 Июня в 20:00 - «Конечные автоматы»Нативная интеграция. Информация о продукте www.otus.ru
Spring Security в деталях
Аутентификация - Spring Security в деталях
Получение информации о пользователе - Spring Security в деталях
Ещё один способ получения аутентифицированного пользователя #java #springsecurity
Точки входа аутентификации - Spring Security в деталях
Источники информации о пользователях - Spring Security в деталях
Устаревшие DSL в Spring Security 6.1
Отладка контекста безопасности - Spring Security в деталях
DSL и конфигураторы контекста безопасности - Spring Security в деталях
Фильтры безопасности - Spring Security в деталях
источник
👉@BookJava
Подборка GitHub-репозиториев для Java-разработчиков
Java Design Patterns - то типовые и повторно используемые шаблоны для решения частых проблем в проектировании приложений.
https://github.com/iluwatar/java-design-patterns
Realworld – это GitHub-репозиторий, с которым нужно ознакомиться всем разработчикам, особенно Full-stack.
https://github.com/gothinkster/realworld
Algorithms - правильные алгоритмы позволяют улучшить производительность приложения.
https://github.com/TheAlgorithms/Java
Awesome Java - есть практически все по Java, а сам материал подается в форме справочника.
https://github.com/akullpp/awesome-java
RxJava Android Samples – это реализация Java ReactiveX, в которой реактивное программирование предлагается через наблюдаемые объекты (Observables).
https://github.com/kaushikgopal/RxJava-Android-Samples
👉@BookJava