Изучаем Java. По вопросам сотрудничества: @seniorvladislav
P3C
P3C (Programming Practice and Competition) — это набор правил кодирования Java, разработанный компанией Alibaba. Эти правила направлены на повышение качества и читаемости кода Java, а также на снижение вероятности ошибок.
#для_продвинутых
Jackson-dataformat-csv
Jackson-dataformat-csv — это библиотека Java, являющаяся модулем расширения популярной библиотеки Jackson для обработки JSON. Она позволяет читать и записывать данные в формате CSV (Comma Separated Values), который широко используется для хранения и обмена табличными данными.
#для_продвинутых
Что нужно знать джависту, чтобы пройти собеседование
Смотреть статью
🏓 Знакомимся с Java на примере пинг-понга
Хотите узнать, как создавать программы на Java, даже если никогда не программировали?
Ждем вас на открытом вебинаре 24 сентября в 20:00 мск, где мы разберем:
- что такое программирование и язык Java;
- как создать игру пинг-понг с нуля на Java;
- как работать с двумерной графикой в Java.
Урок полезен для тех, кто хочет начать изучать Java с нуля и увидеть на практике, как создаются приложения.
Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.
Встречаемся в преддверии старта курса «Специализация Java-разработчик».
Все участники вебинара получат специальную цену на обучение!
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cASWabРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🎬 Amplicode – конвейер для Spring-приложений прямо в IntelliJ IDEA
На прошлой неделе мы провели митап, который длился 3,5 часа!
Мы понимаем, что усвоить столько информации за раз непросто (если только ты не Илья Кучмин :D). Поэтому мы выложили запись в высоком качестве и разбили её на плейлист с полной записью мероприятия и отдельными его частями.
Всего получилось 6 докладов:
– История и философия Amplicode (Илья Кучмин)
– Локальное окружение с Docker Compose для Spring Boot (Кирилл Толкачёв)
– Проблемы JPA в Spring PetClinic и способы их решения (Илья и Фёдор Сазоновы)
– Разрабатываем правильный REST API для Spring Boot (Рустам Курамшин)
– Настраиваем Spring Security и Keycloak (Павел Кислов)
– Admin UI с использованием React Admin для Spring Boot (Александр Шустанов)
✔️СМОТРЕТЬ НА YOUTUBE
✔️СМОТРЕТЬ В VK ВИДЕО
✔️СМОТРЕТЬ НА RUTUBE
⚙️ Использование метода Map.computeIfAbsent() для ленивой инициализации значений
Метод computeIfAbsent()
представляет собой мощный инструмент для ленивой инициализации значений в Map в Java. Он улучшает читаемость и эффективность кода, позволяя избежать лишних проверок и упрощая добавление значений в коллекцию.
➡️ Эта фишка особенно полезна при работе с динамическими данными, где необходимо эффективно управлять созданием и обновлением значений в Map.
⚙️ Подключение к базе данных с использованием JDBC
Импорт пакетов и классов: Импортируем необходимые классы для работы с JDBC.
Настройка подключения: Задаем URL, имя пользователя и пароль для подключения к базе данных MySQL. Замените их соответствующими значениями для вашей базы данных.
Подключение к базе данных: В блоке try создаем соединение с базой данных, используя метод DriverManager.getConnection(url, username, password). Здесь используется try-with-resources, что автоматически закрывает соединение после завершения блока try.
Обработка исключений: В блоке catch обрабатываем возможные исключения, которые могут возникнуть при подключении к базе данных.
🗣️ Этот короткий пример демонстрирует основные шаги для подключения к базе данных MySQL с использованием JDBC в Java.
❓ Как правильно использовать утилитарные классы
Утилитарные классы предназначены не для создания объектов, а для предоставления статических методов для выполнения общих функций. Если вы пишете слишком много таких классов, пересмотрите свой подход к проектированию кода.
Однако иногда они необходимы, например, для реализации внутренних предметно-ориентированных языков (DSL) в Java. В таких случаях часто отступают от принципов ООП, чтобы сделать синтаксис короче.
➡️ Если вам все-таки нужно создать утилитарный класс, придерживайтесь следующих рекомендаций:
• Сделайте конструктор приватным, чтобы класс нельзя было создать.
• Сделайте класс final, чтобы его нельзя было наследовать.
• Объединяйте методы в утилитарные классы по функциональности. Избегайте общих названий, таких как MvcUtils или CommonUtils.
⚠️ Избегайте конкатенации строк в больших циклах
При добавлении двух строк в цикле (for
, while
, do-while
), использование оператора +
приводит к растрате памяти и увеличению времени выполнения.
🗣️ Это происходит из-за создания нового объекта String каждый раз при добавлении новой строки. Лучшей практикой является использование класса StringBuilder.
➡️ Jool — мощное расширение для работы с java.util.Optional
Jool — это небольшая, но полезная библиотека, которая расширяет стандартный функционал Optional, добавляя поддержку нескольких значений через классы Tuple, а также предоставляет дополнительные методы для функционального программирования. Если вам нужно работать с несколькими значениями в одном объекте или использовать продвинутые операции над коллекциями, Jool сильно упростит вашу задачу.
🗣 Jool — отличное решение, если стандартных возможностей Java для функционального программирования или работы с кортежами недостаточно.
🔗 Ссылочка на доку
➡️ Jersey — упрощает создание RESTful веб-сервисов
Jersey — это популярная библиотека Java, которая помогает разрабатывать RESTful веб-сервисы. Она является референсной реализацией спецификации JAX-RS (Java API for RESTful Web Services) и значительно упрощает создание и управление REST API.
🗣 Jersey отлично подходит для разработки микросервисов и API, делая процесс создания RESTful сервисов быстрым и понятным.
🔗 Ссылочка на доку
Классный обучающий канал по Java
Java Learning
Метод repeat()
Метод repeat() принадлежит классу String и используется для повторения строки заданное количество раз.
Позволяет легко создавать повторяющиеся строки без использования циклов.
Удобно использовать для создания разделителей, оформления вывода и т.д.
#это_база
➡️ Joda-Time
Joda-Time — это мощная библиотека для работы с датами и временем в Java, предоставляющая альтернативу стандартному java.util.Date и java.util.Calendar. Она упрощает операции с датами, такие как вычисление разницы, форматирование и парсинг, а также поддержку временных зон.
🗣 Joda-Time — отличный выбор, если вы хотите работать с датами и временем удобнее и безопаснее. Если вам нужно выполнять сложные манипуляции с датами, включая международные временные зоны, Joda-Time сделает эту задачу проще.
🔗 Ссылочка на доку
📚 Пройди тест на знание Java и получи доступ к 6️⃣🔤 открытым урокам курса «Разработчик на Spring Framework».
Два открытых урока можно посмотреть без регистрации и оценить формат обучения. Для доступа ко всем открытым урокам из курса необходимо пройти входное тестирование: ответить на 21 вопрос и уложиться в тайминг.
➡️ НАЧАТЬ ТЕСТИРОВАНИЕ
А еще, приглашаем посетить наш бесплатный открытый урок «Как эффективно использовать OAuth 2 в Spring-приложениях?», который пройдет онлайн, 13 сентября в 20:00 мск.Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🤝 Не дай себя завязнуть в рутинных задачах!
🦾 Осваивай Spring и выходи на новый профессиональный уровень
Пройди тест по Java от OTUS
Проверь насколько хорошо ты знаешь Java и готов освоить Spring!
Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене.
👉 ПРОЙТИ ТЕСТ: https://vk.cc/cAVYRx
🎫 Начни обучение со скидкой, подробности у менеджеров.Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
«Группа Астра» проводит первую бесплатную практическую конференцию для разработчиков Astra DevConf 2024.
Разработчики ИТ-компаний раскроют секреты эффективной и безопасной разработки, а также поделятся практическими кейсами.
На конференции вы узнаете, как реализовать разработку, сборку и тестирование в облаке. Что еще?
— рассмотрим, как для приложений работающих на Axiom JDK можно реализовать конвейер выпуска с помощью CI/CD пайплайнов и реестра docker-образов в GitFlic;
— поделимся лучшими практиками в построении DevOps-процессов для проектов, написанных на Spring Framework и Java/Kotlin;
— покажем, как легко и просто опубликовать приложение в RuStore;
— и многое другое.
Для участников конференции будет доступен:
— личный кабинет разработчика, в котором можно бесплатно скачивать решения «Группа Астра» для целей изучения и разработки (в том числе и ОС Astra Linux 1.8);
— портал с документацией, где опубликованы различные инструменты для разработки, примеры кода и готовые стенды для тестирования.
Дата и время: 24 сентября, в 10:00
Формат: онлайн/офлайн
Регистрация доступна по ссылке. Поехали!
cache2k
cache2k — это высокопроизводительная библиотека кэширования в памяти для Java-приложений. Она фокусируется на предоставлении хорошо спроектированной реализации кэширования объектов в памяти.
#для_продвинутых
Caffeine
Caffeine — это высокопроизводительная библиотека кэширования для Java, вдохновленная Guava Cache. Она обеспечивает простой API, схожий с ConcurrentHashMap, но с более продвинутыми функциями кэширования.
#для_продвинутых
Singularity
Singularity — это платформа с открытым исходным кодом для контейнеризации, основанная на Mesos. Она позволяет разработчикам и инженерам DevOps упаковывать приложения и их зависимости в изолированные среды, называемые контейнерами.
Если вам в Java-разработке уже всё абсолютно понятно…
Делайте курс для миддлов вместе с Яндекс Практикумом!
Яндекс Практикум — сервис современного онлайн-образования, где обучают актуальным цифровым профессиям. Сейчас есть возможность присоединиться к команде и разработать курс «Мидл Java-разработчик».
Автор готовит тексты уроков, тесты, памятки и прочие материалы, упаковывает свой опыт в учебные кейсы и в буквальном смысле влияет на развитие индустрии.
В Практикуме понимают уровень загрузки экспертов, поэтому сделали условия максимально комфортными: удалёнка, гибкий график и частичная занятость от 15 часов в неделю — не помешает ни основной работе, ни отдыху👌
Если вы в профессии уже более 4 лет и вы точно знаете «как это должно работать» — добро пожаловать!
Подробности
Как сделать Android-приложение быстрее и эффективнее?
Узнайте на открытом вебинаре 18 сентября в 20:00 мск, где мы разберем:
- как ProGuard/R8 минимизируют, оптимизируют и убирают неиспользуемый код;
- сравнение эффективности ProGuard и R8;
- как внедрять ProGuard/R8 в существующий проект.
Урок особенно полезен для Android-разработчиков с опытом работы от 1 года.
Встречаемся в преддверии старта курса «Специализация Android Developer». Все участники вебинара получат специальную цену на обучение!
Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Java Джуниоры! Важное объявление
FAANG School в течение 24 часов отдают бесплатно свою библиотеку знаний. Вы можете получить доступ:
– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз
– Desk setup. Подборка аксессуаров для комфортной работы
– Шпаргалка по Kafka
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков
Библиотека знаний постоянно пополняется, но бесплатный доступ длится всего сутки. Чтобы получить полезные материалы, переходи по ссылке и жми на оранжевую кнопку.
➡️ Использование Pattern.compile().flags()
для получения флагов регулярного выражения
В Java 9 был добавлен метод flags()
в класс Pattern, который позволяет получить флаги, используемые при компиляции регулярного выражения.•
Это может быть полезно для анализа и отладки регулярных выражений, особенно в сложных системах, где нужно понимать, с какими опциями было создано регулярное выражение.•
В этом примере создаётся регулярное выражение с несколькими флагами, и затем с помощью метода flags()
мы можем получить информацию о них
📚 Пройди тест на знание Java и получи доступ к 6️⃣🔤 открытым урокам курса «Разработчик на Spring Framework».
Два открытых урока можно посмотреть без регистрации и оценить формат обучения. Для доступа ко всем открытым урокам из курса необходимо пройти входное тестирование: ответить на 21 вопрос и уложиться в тайминг.
➡️ НАЧАТЬ ТЕСТИРОВАНИЕ
А еще, приглашаем посетить наш бесплатный открытый урок «Как эффективно использовать OAuth 2 в Spring-приложениях?», который пройдет онлайн, 13 сентября в 20:00 мск.Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
➡️ Retrofit — Простая интеграция с REST API в Java
Retrofit — это малоизвестная, но мощная библиотека для Java, которая упрощает взаимодействие с REST API. Она автоматически преобразует HTTP-запросы и ответы в объекты Java, делая процесс интеграции с API намного удобнее и безопаснее.
🗣 Retrofit — идеальный выбор для разработчиков, которым нужно быстро и удобно подключать свои приложения к REST API. Библиотека поддерживает JSON, XML и другие форматы, а также работает с асинхронными вызовами.
🔗 Ссылочка на доку
➡️ Rapidoid — высокопроизводительный веб-фреймворк для Java
Rapidoid — это ультралегковесный и высокопроизводительный веб-фреймворк для Java. Он разработан для создания высоконагруженных серверов и веб-приложений с минимальными накладными расходами. Rapidoid включает в себя встроенные инструменты для работы с HTTP, REST API и веб-сокетами, а также поддерживает асинхронные запросы.
🗣 Rapidoid — отличный выбор для разработчиков, которым требуется высокая производительность и низкая задержка при работе с веб-сервисами.
🔗 Ссылочка на доку
👩💻 Освойте Java-разработку с нуля и станьте востребованным специалистом!
Ждём вас на онлайн-курсе «Специализация Java-разработчик». Только живые вебинары, вы освоите самые востребованные инструменты и лучшие практики.
Ознакомится с курсом можно на бесплатном открытом уроке «Знакомимся с Java на примере пинг-понга».
📌 Урок пройдет 24 сентября в 20:00 мск.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cAEBVYРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
➡️ JavaFXPorts
JavaFXPorts — это библиотека, которая позволяет использовать JavaFX для разработки кроссплатформенных приложений, поддерживающих мобильные устройства. С JavaFXPorts вы можете разрабатывать приложения на JavaFX и запускать их на Android и iOS, обеспечивая нативное взаимодействие с пользовательским интерфейсом.
🗣 JavaFXPorts — полезная библиотека для разработчиков, стремящихся расширить возможности JavaFX на мобильные платформы. Если вам нужно создать кроссплатформенное приложение с использованием Java, JavaFXPorts поможет вам достичь этой цели.
🔗 Ссылочка на доку
➡️ VAVR — функциональная библиотека для Java
Vavr — это библиотека для функционального программирования в Java, которая добавляет неизменяемые коллекции, сопоставление с шаблоном, Option, Try, Future и многое другое. Это идеальный выбор для тех, кто хочет использовать функциональные парадигмы программирования, такие как неизменяемость и ленивая инициализация, в Java.
🗣 Vavr расширяет стандартную библиотеку Java и делает функциональные концепции более доступными и удобными.
🔗 Ссылочка на доку