Библиотека Java разработчика
10.8K subscribers
1.14K photos
564 videos
58 files
1.44K links
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.


По всем вопросам @evgenycarter

РКН clck.ru/3KoGeP
Download Telegram
🔥Бесплатный вебинар🔥
Рефакторинг архитектуры бэкенда: от MVC к Clean Architecture.

Ваш проект опять превращается в большой ком грязи, которому не помогает даже переписывание с нуля, бизнес-логика заползает в сервисный слой и растекается процедурным кодом, а команда становится заложником выбранной технологии?

Расскажем, как навести порядок в бизнес-логике проекта и выстроить надежную архитектуру в приложениях на Java и Kotlin!
Будет полезно:
🔹Тимлидам и разработчикам enterprise-приложений на Java и Kotlin.
🔹Всем, кто устал тушить пожары на релизах, клянчить часы на рефакторинг и внедрять вредные фичи.
🔹Тем, кто хочет стать специалистом, к которому будут ходить за советом.

Только один бесплатный вебинар!
Дата: 17.07.2021.
Время: 11-00 по Мск.
Ты опытный джавист, который устал сидеть дома за компом? Приходи на дискуссию о продуктовой Java-разработке в бар! Твоими собеседниками будут СТО Райффайзенбанка Сергей Мельников и ведущие подкаста «Мы обречены» — разработчик Фил Ранжир и журналист Артем Малышев.

На CIB OPEN BAR мы обсудим:
— Как не напороться на мучительный легаси-код и душную бюрократию?
— Правда ли, что теперь разработчики ищут стабильности?
— Как не перепутать стабильность со стагнацией?
— Что сейчас ценнее на рынке: умение писать идеальный код или вникать в сложную предметную область?

Ждем тебя 20 июля в 20:00 в Powerhouse Moscow. Участие бесплатное. Регистрируйся: https://clck.ru/WBUKd
Подборка интересных телеграм каналов 🎯

@crypto_moneygo Криптовалюты/Блокчейн
@Frontend_now Канал для Frontend разработчиков
@react_prog Статьи, уроки по reactjs
@goodw_design Полезные статьи по Веб дизайну
@database_group Все про базы данных
@seo_go Актуальные материалы и новости по SEO
@news_wordpress Канал посвящен Wordpress
@allsocial_news SMM / Советы, Новости, Лайфхаки
@linux_sup Новости и информация из мира Linux
@java_sup Программирование на Java
@dev_jokes Жизнь разработчиков. Юмор
@bigdata_world Статьи о Big Data, Machine Learning, Deep Learning
@Angular_Vuejs Полезные материалы по JS фреймворкам
@AR_VR_vision Компьютерное зрение, виртуальная реальность
@imobile_dev Все по мобильной разработке: iOS, Android
@robotics_scince Канал посвящен Робототехнике и автоматизации
@youtips_tricks Технологические советы и хитрости, ноу-хау
@Welcome_Python Добро пожаловать в мир Python
@htech_news Новости HighTech
@all_itnews IT новости на английском
@crypto_security_lab Информационная безопасность
@Hackme_news Новости из мира хакинга и IT-технологий
Проверьте себя в Java-квизе от команды из банковской практики Luxoft

Участвуйте в квизе с 14 по 27 июля, отвечайте правильно и быстрее всех на 10 вопросов и выигрывайте классные призы: смарт часы, аккумуляторы и футболки!

Ищите ссылку на квиз здесь

Все новости, видео прошедших митапов и анонсы предстоящих, вакансии и многое другое в Телеграм-канале Luxoft
Какие существуют способы обработки исключений?

В Java есть пять ключевых слов для работы с исключениями:

1. try – данное ключевое слово используется для отметки начала блока кода, который потенциально может привести к ошибке.
2. catch – ключевое слово для отметки начала блока кода, предназначенного для перехвата и обработки исключений.
3. finally – ключевое слово для отметки начала блока кода, которой является дополнительным. Этот блок помещается после последнего блока ‘catch’. Управление обычно передаётся в блок ‘finally’ в любом случае.
4. throw – служит для генерации исключений.
5. throws – ключевое слово, которое прописывается в сигнатуре метода, и обозначающее что метод потенциально может выбросить исключение с указанным типом.
Современный Java: рецепты программирования
Коузен Кен (2018)

Включение средств функционального программирования в Java SE 8 ознаменовало революционное изменение достопочтенного объектно-ориентированного языка. Лямбда-выражения, ссылки на методы и потоки принципиально изменили идиомы языка. С тех пор многие разработчики стараются не отстать от жизни. И в этом поможет настоящий сборник рецептов. На примере более 70 подробных рецептов Кен Коузен демонстрирует использование новых возможностей языка для решения широкого круга задач.

Скачать книгу
Все, что вы не знали о разработке, науке и технологиях, ищите в сообществе @selectelnews
Что такое JDBC-драйвер? Какие бывают типы?

JDBC
– Java DataBase Connectivity – соединение с базами данных на Java. Это стандарт взаимодействия с БД. Его интерфейс поставляется в стандартной JDK в виде пакета java.sql. Какой бы библиотекой для работы с базой данных вы ни пользовались, в ее основе почти всегда лежит низкоуровневый JDBC.

JDBC-драйвер – реализация JDBC для определенной базы данных. В приложении может быть зарегистрировано несколько разных драйверов. При соединении к базе, нужный выбирается исходя из URL соединения. Драйверы делятся на 4 типа:

Тип 1 – JDBC-ODBC мост. Делегирует работу с базой установленному в системе ODBC-драйверу. Платформозависимый. Не поддерживается с Java 8.

Тип 2 – Native API. Делегирует работу с базой библиотеке, установленной в системе. Платформозависимый. Библиотеки в отличие от ODBC специфичны для конкретной базы, поэтому такой драйвер обычно работает быстрее.

Тип 3 – драйвер сетевого протокола. Работает с промежуточным слоем (JavaEE сервером приложений), который транслирует запросы в сетевой протокол, с которым работает конкретная БД. Такой драйвер полностью реализован на Java.

Тип 4 – драйвер протокола БД/тонкий драйвер. Полная реализация протокола взаимодействия с базой данных. Отличается от типа 3 тем, что здесь логика протокола находится не на внешнем промежуточном слое, а прямо в самом драйвере.
Чем отличается sendRedirect() от forward()?

forward():
☕️ Выполняется на стороне сервера;
☕️ Запрос перенаправляется на другой ресурс в пределах того же сервера;
☕️ Не зависит от протокола клиентского запроса, так как обеспечивается контейнером сервлетов;
☕️ Нельзя применять для внедрения сервлета в другой контекст;
☕️ Клиент не знает о фактически обрабатываемом ресурсе и URL в строке остается прежним;
☕️ Выполняется быстрее метода sendRedirect();
☕️ Определён в интерфейсе RequestDispatcher.

sendRedirect():
☕️ Выполняется на стороне клиента;
☕️ Клиенту возвращается ответ 302 (redirect) и запрос перенаправляется на другой сервер;
☕️ Может использоваться только с клиентами HTTP;
☕️ Разрешается применять для внедрения сервлета в другой контекст;
☕️ URL адрес изменяется на адрес нового ресурса;
☕️ Медленнее forward() т.к. требует создания нового запроса;
☕️ Определён в интерфейсе HttpServletResponse.