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


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

РКН clck.ru/3KoGeP
Download Telegram
Асинхронность в Java

Асинхронное программирование  —  обширная и получившая широкое обсуждение тема, но инженеры-программисты все еще ищут, как лучше реализовать эту идею и интегрировать в приложения.

https://medium.com/cognizantsoftvision-guildhall/async-in-java-80a7240fefa8

👉@BookJava
👍2
Media is too big
VIEW IN TELEGRAM
Java. Основы работы с базами данных

- Рассмотрим основы работы Java c базой данных MS SQL.
- Познакомимся с библиотекой JDBC. Научимся использовать несколько базовых транзакций MS SQL.
- Научимся создавать простое приложение для работы с базами данных, используя Java.

👉@BookJava
👍3
Как стать Java разработчиком в 35+

Всем привет! Хочу написать свою первую статью о моём пути из менеджера по продажам / руководителя департамента одного из крупных банков / индивидуального предпринимателя в разработчики, который длился без немногого 2 года. Я постараюсь предоставить некоторые советы и рекомендации тем, кто в начале или середине пути в освоении разработки. Искренне надеюсь, что эта статья будет полезна тем, кто сейчас изучает Java или только планирует заняться ее изучением.

Опущу ту часть истории, что послужила волшебным пинком для начала обучения, скажу лишь, что выбор стека технологий пал на Java, даже уже не помню почему, видимо повелся на логотип, чашка ароматного кофе натолкнула меня на фантазии, что я буду программировать, попивая ароматный кофе. Но, как оказалось, в дальнейшем, кофе пил не я, а именно Java, пока я пытался ее освоить.

https://habr.com/ru/articles/568310/

👉@BookJava
👍31
Подборка 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
👍1
Spring Boot. Настройка профилирования времени выполнения

В процессе работы над одной из задач возникла необходимость промониторить время исполнения отдельных участков кода одного из микросервисов для того, чтобы отловить узкие места и попытаться эту ситуацию исправить.

Т.к. речь шла о сервисе, который был написан довольно давно, и в него многие месяцы не вносились изменения, повинуясь принципу “работает - не трогай”, я решил постараться сделать это, не прикасаясь к самому коду сервиса.

https://habr.com/ru/companies/alfastrah/articles/717114/

👉@BookJava
👍1
Java Mics

Java Optional — попытка избежать NullPoinerException.
Java interfaces — default & static methods.
Java modules — с какой стороны подойти к ним?
Java switch expression — отличия от switch statement.
Java Records — общий взгляд на использование.

источник

👉@BookJava
👍2
Media is too big
VIEW IN TELEGRAM
Пишем RestApi на SpringBoot Java + MySQL

Spring Initializr 00:00
IntellijIdea 01:34
GetMapping 04:28
Class 06:09
API Layer 08:47
PostMapping 11:20
Подключаем MySQL 13:46
Configuration 19:41
Extra Fields 21:57
DeleteMapping 23:22
PutMapping 26:37
Почти готово 31:42
Обработка исключений 31:59
Унифицируем Response 39:56

источник

👉@BookJava
👍4
Media is too big
VIEW IN TELEGRAM
Два SpringBoot проекта за час: Web и Reactive

Пишем сервис коротких ссылок 2 раза.
В обычном исполнении и в reactive.
База данных - Redis.

00:00 Задача
02:06 Spring Initialzr
03:27 AnotherRedisClient
04:22 IntelliJ IDEA Spring Web
06:05 Общий и не общий код
06:24 Queue
10:29 Class для хранения в BD
11:47 RedisConfiguration
15:09 Service работы со ссылками
20:54 Job имитация активности
25:19 SpringWeb - Готов
25:51 @ RestController
29:09 IntelliJ IDEA Reactive Web
30:01 LinksService interface
32:19 LinkServiceReactive #1
32:41 RedisConfiguration Reactive
37:35 LinksServiceReactive #2
40:30 Job Reactive
46:00 Важный фальстарт
48:08 Reactive Rest Controller
50:19 ShellScript
57:18 Bash Test
1:00:34 Мега вывод)

источник

👉@BookJava
👍7👎1
Media is too big
VIEW IN TELEGRAM
Java spring cache: основы кэширования за 16 минут

00:00 - Определение кэширования
00:25 - Пишем код примера
02:35 - Включаю кэширование, аннотации EnableCaching Cacheable
03:11 - Пример несогласованности данных
05:07 - Обновляю кэш, аннотация CachePut
06:39 - Очищаю кэш, аннотация CacheEvict
08:08 - Пример с использованием аргумента в кэшируемом методе
11:00 - Полное очищение кеша, CacheEvict (allEntries = true)
11:34 - Объявляю название кэша на все методы класса, аннотация CacheConfig
12:05 - Использую CacheManager напрямую
13:28 - Показываю класс Cache в дебаггере
14:35 - Как выглядят ключи в кэше (SimpleKey)
15:55 - Настраиваю ключ

источник

👉@BookJava
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Графический интерфейс для bash, делаем работу в командной строке удобнее

Когда пишешь код в IntelliJ IDEA, привыкаешь что везде есть подсказки, везде где можно работает комплишен, всегда можно одним кликом перейти на декларацию метода или на его юсаджи. После этого интерфейс командной строки выглядит как-то бедно. Конечно, он очень хорошо продуман, сделан настолько удобным, насколько это возможно в текстовом UI, но в графическом UI возможностей намного больше. Представляю вам плагин для JetBrains IDE, позволяющий работать в командной строке cо всеми удобствами IDE.

https://habr.com/ru/articles/715824/

👉@BookJava
👍5👎1
Media is too big
VIEW IN TELEGRAM
SpringBoot + WebSocket Fullstack. Мелим муку - многопоточность Java

00:00 Описание проекта
03:31 Spring Initialzr
04:04 Директория проекта
04:36 Intellij Idea
04:44 GSON
05:33 NodeJS download
06:07 NuxtJS
08:25 Импорт UI модуля
08:53 Запускаем UI
09:22 Базовая верстка
14:24 Скачаем картинки
16:07 ProgressBar
18:56 Backend
19:25 Engine Двигатель
20:48 Цех Machine
21:23 Ресурсы мельницы
22:23 Мельница
22:56 Водяное колесо
28:11 Цех: Жернова
34:04 Мельница - Конструктор
35:35 MillState
37:02 Мельница - MillState
38:15 Наполняем MillState
39:51 MillController
42:00 MillService
47:04 Java WebSocket
50:31 Vuex
54:53 Используем Vuex в UI
56:59 Axios Proxy
59:53 WebSocket UI
01:04:07 Анимируем UI
01:10:52 Благодарность

Исходники: https://github.com/azim-ut/mill_java

источник

👉@BookJava
👍8
Многие разработчики Java часто упускают из виду возможности функционального программирования. Узнайте, как использовать цепочки Optional и Either для написания лаконичного и красивого кода.

https://dzone.com/articles/the-beauty-of-java-optional-and-either

👉@BookJava
👍1
Версионная миграция данных в мире DTO

В этой публикации я хотел бы показать несколько известных мне подходов к версионной миграции данных в контексте DTO. Примеры будут продемонстрированы на языке Java.

https://habr.com/ru/articles/720478/

👉@BookJava
👍5
Media is too big
VIEW IN TELEGRAM
Spring Security, Формы регистрации и аутентицикации.

04:00 Spring Initializr
06:24 Доп. боблиотеки
09:09 AUTH: Properties
12:17 UserDetails
16:46 UserRepository
17:45 AppUserDetailsService
19:30 AppUser + Annotations
38:33 JwtTokenFilter
44:46 WebSecurityConfig
49:54 Список фильтров
51:20 Auth: Bean package
58:39 RegistrationService
58:39 RegistrationService
1:00:07 Auth: signUpUser
1:03:37 PasswordEncoder
1:08:00 AuthController
1:20:11 LoginService
1:21:48 ProviderManager
1:27:25 Logn: проверка пароля
1:30:01 AuthenticationException
1:31:05 Что вернет Authentication?
1:37:19 Auth: Start
1:37:58 Properties debug
1:38:23 authenticationManagerBean
1:40:08 Client проект
1:40:23 Client properties.yaml
1:42:04 Client: JwtSettingsProvider
1:43:49 Client: CurrentUser
1:44:00 Clients: CurrentUserProvider
1:46:36 Client: AccessFilter
1:56:01 Auth: api/v1/auth/current
1:58:11 Auth: api/v1/auth/logout
1:59:50 Client: api/v1/client/access
2:02:09 UI: NuxtJS
2:02:16 UI: Axios Proxy
2:03:40 UI: Vuex
2:07:36 UI: HTML + формы
2:14:45 Csrf ON
2:15:08 Auth: NPE fix
2:16:12 Запуск и проверка
2:18:05 Csrf проблемка
2:20:27 Спасибо!

GitHub: https://github.com/azim-ut/spring_auth

источник

👉@BookJava
👍12
Spring-потрошитель: жизненный цикл Spring Framework

Ни для кого не секрет, что Spring Framework один из самых популярных фреймворков для приложений на языке Java. Он интегрировал в себя самые полезные и актуальные технологии, такие как i18n, JPA, MVC, JMS, Cloud и т.п.

Но насколько хорошо вы знакомы с жизненным циклом фреймворка? Наверняка вы сталкивались с проблемами поднятия контекста и освобождением ресурсов при его остановке, когда проект разрастается. Сегодня я попытаюсь наглядно показать вам это.

https://habr.com/ru/articles/720794/

👉@BookJava
👍4
Media is too big
VIEW IN TELEGRAM
Диспетчерская на базе Spring и Kafka. Полный курс.

Разворачиваем кафка на Docker, слушаем, публикуем и обрабтываем сообщения с помощью Spring.
В качестве обертки - делаем проект для распределения маршрутов самолтеов.

GitHub: https://github.com/azim-ut/youtube_kafka_jet

источник

👉@BookJava
👍5🔥21