Библиотека Java разработчика
الذهاب إلى القناة على Telegram
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP
إظهار المزيد9 988
المشتركون
+124 ساعات
-157 أيام
-5730 أيام
أرشيف المشاركات
Шифрование и расшифровка файла с помощью Java
В области криптографии шифрование - это процесс превращения открытого текста или информации в шифротекст, или текст, который может быть расшифрован только предполагаемым получателем.
https://bookflow.ru/shifrovanie-i-rasshifrovka-fajla-s-pomoshhyu-java/
👉@BookJava
Рекомендуем к прочтению книгу Александра Бындю "Антихрупкость в IT"
Эта книга — результат многолетнего опыта построения IT-продуктов. И прежде всего она о том, как выстроить процессы разработки IT-систем таким образом, чтобы успевать вовремя подстроиться под любые изменения.
В её основе — описание работающих практик, примеры из реальных проектов, анализ ошибок и выводы. В книге собраны рекомендации для владельцев бизнеса и разработчиков. Первые приобретут систематизированные знания о том, как правильно взаимодействовать с IT, а вторые — как делать хорошо и не делать плохо.
Сайт издания
Ознакомиться с книгой
Love, Spring and HTTP Bugs
Мы команда Marketing Management GlowByte, занимаемся автоматизацией маркетинговых процессов в крупных компаниях. Решили написать небольшую статью, которая будет интересна неравнодушным к Java. Хотим поделиться на первый взгляд простыми особенностями поведения библиотек Spring Security, Spring Web, которые могут сбить с толку разработчиков, которые никогда не сталкивались с такими ситуациями.
Рассмотрим проблему, проведём анализ, тесты, проверяющие наши гипотезы, сделаем выводы и, конечно, оставим ссылку на код, чтобы можно было самостоятельно поиграться.
https://habr.com/ru/company/glowbyte/blog/695352/
👉@BookJava
Внутренний мир: Project Reactor
У многих из нас, при использовании какого-либо инструмента программирования, возникал вопрос: “Как? Как это работает?”. Часто при возникновении подобных вопросов я обращаюсь к гуглу, который популярным образом рассказывает общие принципы работы того или иного механизма. Но наверняка среди читателей есть те, которые, прочитав несколько статей, подумали: "Да, это интересно и, вроде, понятно. Но, все-таки, как оно работает?".
https://habr.com/ru/post/694850/
👉@BookJava
Repost from Java Geek
Метод trimToSize()
Метод
trimToSize() класса ArrayList в Java обрезает емкость экземпляра ArrayList до текущего размера списка. Этот метод используется для обрезки экземпляра ArrayList по числу содержащихся в нем элементов.
@java_geekMap.putIfAbsent
Раньше, чтобы добавить пару в Map, если её там нет, необходимо было делать следующее (часть 1 на картинке).
С появлением Java 8 всё стало гораздо проще (часть 2 на картинке).
👉@BookJava
Collection.removeIf
Метод перебирает коллекцию, и удаляет те элементы, которые соответствуют
filter.
В нашем примере мы в одну строку удаляем из списка все числа больше 5.
👉@BookJavaSpring Test Containers как бины
https://habr.com/ru/post/681232/
👉@BookJava
Как начать развиваться в архитектуре приложений?
Начните с просмотра вебинара по антипаттернам проектирования, где мы обсудим:
▪️Что такое антипаттерны, почему они существуют, зачем про них надо знать и как к ним относиться.
▪️Антипаттерны «Инверсия абстракции» и «Большой комок грязи»: расскажем про примеры из жизни и что с этим делать.
▪️Нарушение архитектурных границ: чем это грозит и как обнаружить на раннем этапе.
▪️Vendor-lock-in, Cover Your ASSets и The Shiny Nickel.
▪️Плохие практики передачи данных через архитектурные границы.
А потом приходите к нам на курс по Архитектуре приложений☺️
Смотреть вебинар: https://www.youtube.com/live/VNFP3ZlP3Io
Deploying Java Serverless Functions as AWS Lambda
https://dzone.com/articles/deploying-java-serverless-functions-as-aws-lambda
👉@BookJava
Local Variable Type Inference
Frequently Asked Questions
https://openjdk.org/projects/amber/guides/lvti-faq
👉@BookJava
Чистый код — практический подход
https://medium.com/clarityai-engineering/clean-code-a-practical-approach-896546435235
👉@BookJava
Как написать иммутабельный класс?
Immutable (неизменяемый) класс – это класс, состояние экземпляров которого невозможно изменить после создания.
С иммутабельным классом всегда легче работать. Его состояние не поменяется, значит обращаться к нему в многопоточной среде можно без дополнительной синхронизации. Функции, зависящие только от состояния экземпляра будут возвращать один и тот же результат от вызова к вызову – это облегчает например реализацию hashCode(). Также вместо нескольких одинаковых экземпляров можно использовать один закэшированный объект, экономя память (паттерн Приспособленец).
Шаги, которые необходимо предпринять, чтобы класс стал immutable:
1. Запретите расширение класса – либо объявите его final, либо закройте доступ наследникам ко всем способам мутации, перечисленным в следующих пунктах;
2. Сделайте все поля финальными;
3. Не выставляйте наружу методов-мутаторов, которые меняют состояние;
4. Не отдавайте наружу поля ссылочного изменяемого типа (объекты классов, массивы) – если объект под ссылкой не иммутабельный, должна возвращаться его глубокая копия (defensive copy);
5. Создавайте объект правильно (подробнее в следующем посте).
Если вам нужны преимущества иммутабельного объекта, но также нужно иногда изменять его, подойдет подход copy on write: каждый метод-мутатор должен мутировать и возвращать не сам объект, а только что созданную его копию. Оригинал всё так же остается неизменным.
#Классы
👉@BookJava
Как разбить строку на слова?
StringTokenizer – специально предназначенный для этого класс стандартной библиотеки Java. Ему нужно задать разделители, по ним строка будет разделена на «токены». Это устаревший класс, он остается в библиотеке только для обратной совместимости.
Вместо него рекомендуется использовать метод
String.split(). Метод принимает строку с регулярным выражением, и опциональный лимит токенов. Реализация особенно оптимизирована для односимвольного разделителя. Но следует помнить, что даже если символ один, это всё ещё регулярное выражение – спецсимвол должен экранироваться.
Другой подходящий метод – Pattern.split(). Он, наоборот, вызывается у регулярного выражения, а принимает целевую строку. В этот же метод делегируется и выполнение String.split(). Этот способ предпочтительнее, когда в регулярном выражении больше одного символа, а скомпилированный паттерн применяется повторно.
👉@BookJavaКак подружить Go c Kubernetes
В Слёрме 6 февраля начнется курс «Kubernetes для разработчиков».
Поток пройдет с 6 февраля до 21 марта, видеокурс доступен всегда.
Курс знакомит с базовыми абстракциями k8s и устройством кластера, объясняет, как запускать приложения в кластере.
Учимся конфигурировать своё приложение в Kubernetes, хранить данные и конфиги в нужных местах, выполнять миграции в базе данных для приложения, использовать Helm. Спикеры рассказывают, какие существуют практики и какие из них стоит применять. Рассматриваем особенности языков программирования при запуске в Kubernetes (Go, Python, Java).
Спикеры:
Марсель Ибраев (System Engineer, G42 Cloud);
Павел Селиванов (архитектор, Yandex Cloud).
Подробнее о курсе: https://slurm.club/3ZfsRDs
