10986
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP
Как нельзя называть переменные?
Этот вопрос подразумевает ответ из двух частей. Нужно указать, какие есть технические ограничения, и какие стилистические. Стиль – слишком большая тема, не специфичная только для Java, не будем на ней останавливаться.
Технически компилятор налагает одинаковые ограничения на имена как переменных, так и классов, методов, и всего остального. Эти имена обобщенно называются идентификаторы.
Ограничений всего три:
1. Имя целиком не должно совпадать с зарезервированным словом;
2. Первый символ должен проходить проверку методом Character.isJavaIdentifierStart();
3. Остальные символы должны проходить проверку Character.isJavaIdentifierPart().
На практике проверки означают, что имя должно состоять из таких символов Unicode, как:
• Буквы (разных языков)
• Символы валют (такие как $)
• Соединительные символы (такие как _)
• Диакритика (combining mark, non-spacing mark)
• Методы, проходящие Character.isIdentifierIgnorable() (непечатаемые символы, в идентификаторе игнорируются компилятором)
• Цифры, числовые символы (такие как римские числа)
Последний пункт недопустим для первого символа имени. Тип конкретного символа можно узнать методом Character.getType().
Интересно зарезервированное слово var. Оно стоит особняком от других ключевых слов, потому что является зарезервированным только в контексте типа. Использовать var в качестве имени переменной можно.
👉@BookJava
👉 Хотите узнать, как эффективно обрабатывать элементы коллекций в Java? Ваша работа с автотестами требует улучшений?
Ждем вас на открытом вебинаре «Stream API и функциональные интерфейсы в Java» 20 августа в 20:00 мск, где мы разберём:
- обработку элементов коллекций с помощью Stream API;
- обработку функциональных интерфейсов при написании автотестов;
- ответы на все возникающие вопросы.
Спикер Павел Балахонов — ведущий инженер по автоматизированному тестированию на проекте VK Private Cloud Solutions, опытный ментор и преподаватель.
👉 Встречаемся в преддверии старта курса «Java QA Engineer. Professional». Все участники вебинара получат специальную цену на обучение! Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/czrrC2
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Советы по Spring Batch 💡
Оптимизируйте свои шаги в @SpringBatch с помощью параметра `startLimit` и определите, сколько раз можно запустить шаг. 🔥
#Java #SpringBatch
👉@BookJava
Аудит в Spring Data MongoDB💡
Используйте аннотации @CreatedBy, @LastModifiedBy, @CreatedDate и @LastModifiedDate для автоматического отслеживания времени создания и изменения сущностей, а также пользователя, ответственного за изменения. 🔥
#SpringData
👉@BookJava
👩💻 Знакомство с Java Instrumentation API & Java agent
Ждем вас на открытом уроке, где вы узнаете, что такое Java Instrumentation API и для чего нужны агенты. В онлайне изучим агент, позволяющий изменять код бизнес-классов для добавления дополнительных trace-логов для отладки приложения.
Вебинар подходит Java-разработчикам, которые сталкиваются с вопросами производительности приложений.
После занятия вы сможете писать и подключать Java-агенты самостоятельно, а также будете иметь представление о возможностях Java Instrumentation API.
Встречаемся 22 августа в 20:00 мск.
Спикер — Tech Lead в одном из крупнейших российских банков и кандидат технических наук.
👉 Запишитесь на вебинар и прокачайте свои навыки работы с Java: https://vk.cc/cziWV9Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Совет по Spring MongoDB 💡
Определение выражений сортировки с использованием type-safe API 🔥
👉@BookJava
В чём разница между jar и war?
jar и war – расширения платформо-независимых файлов-архивов Java-приложения. Кроме них есть еще третий формат, ear. Все эти форматы – на самом деле просто zip-архивы с классами и другими частями приложения. Вы можете переименовать такой файл в .zip, разархивировать, и посмотреть, что внутри.
JAR – Java Archive. Содержит файлы классов, ресурсы, зависимые библиотеки, и другие необходимые для приложения файлы. Может содержать точку входа, и использоваться как цель для исполнения команды java.
WAR – Web Archive. Технически имеет ту же структуру, но другую роль – архив JavaEE web-компонента. Обычно содержит jar-ы с реализацией, JSP, статические файлы фронт-энда, и мета-информацию для сервлет-контейнера (web.xml). В основном используется как деплоймент web-приложения в сервлет-контейнер. С приходом Servlet API 3.0 и embedded-контейнеров, всё больше становится принято запаковывать и web-компоненты в самодостаточные jar (Лозунг Spring Boot: Make jar, not war).
EAR – Enterprise Archive. Для разработчиков, начавших карьеру уже во времена Spring Framework, может показаться совсем экзотичным. Это собранное воедино монолитное JavaEE приложение. Содержит дескрипторы деплоймента и JavaEE модули (веб-модули, EJB, клиентские модули, адаптеры ресурсов). Деплоится в JavaEE Application Server.
Все три типа файлов собираются утилитой jar из JDK.
👉@BookJava
📚 Пройди тест на знание Java и получи доступ к 7️⃣2️⃣ открытым урокам по Java
Два открытых урока можно посмотреть без регистрации и оценить формат обучения. Для доступа ко всем открытым урокам из курса «Java Developer. Professional» от OTUS необходимо пройти входное тестирование: ответить на 20 вопросов и уложиться в тайминг.
📊 -Курс рассчитан на профессионалов с практическим опытом работы на Java.
На курсе вы освоите:
- создание современных Java-приложений;
- основы функционирования JVM (сборка мусора, byteCode);
- приемы применения многопоточности;
- решение задач уровня Middle+;
- современные фреймворки Spring WebFlux, Kafka, реактивный Postgres и Kubernetes;
- написание кода чище и быстрее.
Забудьте о скучном обучении — здесь вас ждут настоящие челленджи и нестандартные практические решения. А еще сильные проекты для портфолио и карьерный сапорт! 📅 Старт группы уже 29 августа 2024г. Доступна рассрочка на обучение.
➡️ НАЧАТЬ ТЕСТИРОВАНИЕРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Советы по Spring Boot💡
Улучшите сборку образа контейнера @springboot с помощью #Jlink!
https://paketo.io/docs/howto/java/#install-a-minimal-jre-with-jlink
#SpringBoot #Java
👉@BookJava
🚀 Совет по Java API 🚀
java.nio.file.WatchService - мониторинг событий файловой системы в реальном времени. Обнаружение изменений файлов и директорий независимо от платформы. 🔥
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/file/WatchService.html
#Java #JavaAPI
👉@BookJava
⚡️ Узнайте, как манипулировать байт кодом Java-приложений!
На открытом уроке курса «Java Developer. Advanced» разберем, как просматривать и читать байт код классов и для чего это может быть нужно. Научитесь создавать утилиты для изменения байт кода существующих классов в runtime. Это знание поможет вам улучшить производительность ваших приложений и решать сложные задачи.
Вебинар будет полезен Java-разработчикам, которые сталкиваются с вопросами производительности приложений.
Встречаемся 7 августа в 20:00 мск.
Спикер — Tech Lead в одном из крупнейших российских банков и кандидат технических наук.
👉 Регистрируйтесь прямо сейчас, чтобы посетить бесплатное занятие: https://vk.cc/cz2mFeРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Совет по JPA 🚀
Упростите свои #Java модели данных, встраивая сложные типы непосредственно в ваши сущности с помощью аннотации @Embedded в @JPA! Это идеально подходит для многократно используемых компонентов, таких как адреса. 🔥
#Hibernate #SpringBoot #JavaDevelopment #ORM
👉@BookJava
👩💻 Что такое Reflection API и как с этим работать?
Ждем вас на открытом вебинаре, где мы познакомимся с механизмом рефлексии в языке Java и посмотрим, где он применяется.
После занятия вы сможете лучше понять, как работают современные фреймворки, использующие аннотации.
Встречаемся 7 августа в 20:00 мск.
Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cyTdb8Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Раскатили фан на полную
17 августа в Москве в музее-заповеднике «Коломенское» пройдет ИТ-пикник — фестиваль для опытных ИТ-специалистов, их близких и друзей. Будет больше 17-ти ИТ-партнеров фестиваля. В программе воркшопы, лекции от спикеров известных компаний, нетворкинг, выступления топовых музыкантов и детская зона.
Придут Леонид Агутин, TRITIA, Дайте танк (!), Драгни, Найк Борзов и Нееет, ты что. А вы придете?
Успейте зарегистрироваться
erid:2VtzqwV23tw
Реклама. АО "ТБанк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Советы по Spring🚀
Ведение журнала HTTP-запросов с помощью фильтра CommonsRequestLoggingFilter.
Включите ведение журнала запросов с помощью фильтра CommonsRequestLoggingFilter для получения подробной информации о входящих запросах.
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/filter/CommonsRequestLoggingFilter.html
#SpringTip #Java
👉@BookJava
Совет по SpringFramework 💡
Самый простой способ создания динамических SQL-запросов в JPA - это Query By Example. Вы создаете объект-пример, который оборачиваете в пример, а затем передаете его в ваш @SpringData
хранилищу. JPA создаст WHERE только с теми полями, которые вы задали.
👉 @BookJava
🚀 Совет по API Java 🚀
java.util.IdentityHashMap
В отличие от HashMap, этот класс использует равенство ссылок (==), а не равенство объектов (equals()) для определения уникальности ключей, что делает его подходящим для конкретных случаев использования. 🔥
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/IdentityHashMap.html
👉@BookJava
👩💻 Обобщения в Java — что это и как эффективно с ними работать?
Ждем вас на открытом вебинаре, где мы познакомимся с одной из базовых тем языка Java — Обобщения (Generics).
Изучим, для чего они нужны, где они применяются в стандартной Java-библиотеке, а также как их можно использовать в своем коде.
Встречаемся 21 августа в 20:00 мск.
Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/czow16Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Совет по Spring Boot💡
Улучшите сборку образа контейнера @springboot с помощью #Jlink! 🔥
https://paketo.io/docs/howto/java/#install-a-minimal-jre-with-jlink
#SpringBoot #Java
👉@BookJava
Совет по @SpringData: при использовании интерфейсных проекций вы можете получить доступ к вложенным объектам, добавив `path` к методу getter. Посмотрите, как метод getDepartmentDeptName получает deptName из сущности Department.
#Java
👉@BookJava
API-тесты требуют слишком много времени и усилий? Хотите узнать, как автоматизировать тестирование и сделать его более эффективным?
Ждем вас на открытом вебинаре 13 августа в 20:00 мск, где мы разберём:
- что такое Rest Assured и как он работает;
- методики написания API-автотестов на Rest Assured;
- ответы на все возникающие вопросы.
Спикер Павел Балахонов — ведущий инженер по автоматизированному тестированию на проекте VK Private Cloud Solutions, опытный ментор и преподаватель.
Встречаемся в преддверии старта курса «Java QA Engineer. Professional». Все участники вебинара получат специальную цену на обучение!
Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://clck.ru/3CQ6BX/?erid=2VtzqwFXTyE
Spring Data JDBC. Проблемы известные, проблемы неизвестные
Михаил Поливаха
Spring Data JDBC — относительно новый модуль Spring Data. У него своя концепция, свои фичи, свои баги и проблемы. Часть этих проблем известна аудитории и описана в документации. Однако иногда документация врет или недоговаривает. К тому же есть некоторые неочевидные детали реализации, которые могут смутить пользователей библиотеки. Это касается многих аспектов — от генерации SQL до маппинга сущностей.
Во время доклада мы посмотрели на ряд подобных сюрпризов, обсудим, баг это или фича и что разработчики планируют с этим делать. Также рассмотрели текущее состояние проекта Spring Data JDBC — над чем идет работа, что исправляется, а что пока нет.
источник
👉@BookJava
Структурированная конкуренция
Структурированная конкуренция рассматривает группы связанных задач, выполняющихся в разных потоках, как единое целое. Она упрощает обработку ошибок и отмену задач, повышает надежность, улучшает наблюдаемость и отлично сочетается с виртуальными потоками. В этом сеансе мы познакомим вас с этой концепцией и с API, который в настоящее время находится в предварительном просмотре и поддерживает эту функцию.
источник
👉@BookJava
Начните обучение в магистратуре в Центральном университете уже на 3-м курсе бакалавриата!
Центральный университет — современный вуз, созданный при поддержке ведущих компаний России: Т-Банка, Авито и других.
Учебу реально совместить с последними курсами бакалавриата или действующей работой. Обучение занимает 20 часов в неделю в вечернее время в первый год, а занятия проводят в центре Москвы профессоры из МГУ, МФТИ, РЭШ и практики из индустрии. Обучение в университете построено по принципам ИТ-компаний, со средой, способствующей росту и развитию.
У каждого студента будет:
⚫️личный ментор по траектории обучения;
⚫️доступ к карьерному центру с коучами и консультантами;
⚫️опыт работы в проектах 30+ компаний-партнеров уже во время обучения;
⚫️диплом гособразца.
Участвуйте в онлайн-отборе, чтобы выиграть грант на обучение до 1,2 млн рублей. Больше подробностей про университет и конкурс грантов по ссылке!
erid:2Vtzqumm2GB
Реклама, АНО ВО «Центральный университет», ИНН 774341802
Адаптер (Adapter) — объект, обеспечивающий взаимодействие двух других объектов, один из которых использует, а другой предоставляет несовместимый с первым интерфейс.
Мост (Bridge) — структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо.
Компоновщик (Composite) — объект, который объединяет в себе объекты, подобные ему самому.
Декоратор (Decorator) — класс, расширяющий функциональность другого класса без использования наследования.
Фасад (Facade) — объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое.
Приспособленец (Flyweight) — это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым.
Заместитель (Proxy) — объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него.
👉@BookJava
Совет по @SpringData
Если вы используете параметр hibernate.use_sql_comments, чтобы показать, какой запрос JPQL вызвал какой SQL запрос, вы можете дополнительно использовать аннотацию (@)Meta из Spring Data JPA, чтобы задать пользовательский комментарий для вашего JPQL запроса.
#Java
👉@BookJava
Это очень подробный пост о проблеме, которую мы наблюдали в Virtual Threads с " pinning" в Netflix.
https://netflixtechblog.com/java-21-virtual-threads-dude-wheres-my-lock-3052540e231d
#Java #VirtualThreads
👉@BookJava
Совет по Java 💡
При создании стандартных HTTP-заголовков для ответов Spring MVC, вместо того чтобы предоставлять их в виде строк, можно воспользоваться специальными билдерами. Они позволяют создавать заголовки более типобезопасным способом. Ознакомьтесь с методами `set()` класса `HttpHeaders`, которые можно настроить таким образом.
#Java #SpringFramework
👉@BookJava
Spring WebFlux с Server-Sent Events 🚀
Улучшите свои real-time приложения с помощью #SpringWebFlux и Server-Sent Events! 🔥
#Java #SpringFramework
👉@BookJava
Курс Слёрма «Kubernetes Мега»: управляем сложными сценариями и минимизируем риски сбоя
За 5 недель разберём большинство тонкостей настройки k8s, чтобы повысить устойчивость, безопасность и производительность ваших приложений. Курс построен на реальных кейсах с проектов экспертов.
Внутри:
✔ создание отказоустойчивого кластера изнутри и аутентификация пользователей в кластере;
✔ хранение секретов;
✔ horizontal Pod Autoscaler;
✔ stateful приложения в кластере;
✔ deploy и service mesh;
✔ резервное копирование кластеров и служебные сертификаты.
Формат курса:
➡ Видеолекции, онлайн-встречи со спикером и практические задания
➡ Ревью, ответы на вопросы и обратная связь
➡ Личный кабинет с видеолекциями и стендами для практики
➡ Постоянный чат со студентами, экспертами и куратором
Длительность — 5 недель.
Старт — 29 июля.
Посмотреть программу и занять место на курсе — по ссылке