Java Гениев
87 subscribers
204 photos
77 videos
180 links
Download Telegram
Пишем минимальный ActivityPub-сервер с нуля

Mastodon — это децентрализованная социальная сеть, работающая по модели федерации, как email. Протокол федерации называется ActivityPub и является стандартом W3C, а Mastodon — далеко не единственная его реализация, но самая популярная. Различные реализации протокола, как правило, совместимы друг с другом, настолько, насколько им позволяют их совпадения в функциональности. У меня есть и мой собственный проект ActivityPub-сервера — Smithereen, такой зелёный децентрализованный ВК, где я когда-нибудь таки верну стену.

В этой статье мы рассмотрим основы протокола ActivityPub и напишем минимально возможную реализацию сервера, позволяющую отправлять посты в сеть («fediverse»), подписываться на других пользователей и получать от них обновления.

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

👉
Media is too big
VIEW IN TELEGRAM
Хранилище файлов. Java + WebDav

Java + WebDav - загружаем файл на webdav через Rest запрос.

00:00 Приветствие
00:34 Spring Init
00:55 Docker Hub
01:54 docker-compose
04:25 webdav.conf
06:00 application.yaml
06:50 Sardine
07:36 WebDavConfig
09:15 WebConfig
11:40 FileService
14:09 Controller
17:22 Docker Fix
17:47 Postman
18:16 что не так?
20:46 Подписывайтесь

источник

👉
Совет по Java💡

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

👉
Amplicode учит вашу IDE говорить на языке Spring Boot! 

Amplicode – многофункциональный плагин для IntelliJ IDEA Community и Ultimate, упрощает и ускоряет работу с технологиями Spring Boot, JPA, Docker, Kafka, Liquibase, MapStruct и т.д.

Основные возможности: 

Навигация по проекту согласно архитектуре Spring приложения  
Создание объектов сразу в терминах фреймворка вместо Java классов: контроллеры, репозитории, сервисы, сущности, события, DTO, мапперы и т.д.
Палитра и инспектор, позволяющие видеть опции, доступные разработчику в текущем контексте
Умные инжекции, подсказки и исправление ошибок

Это малая часть того, на что способен Amplicode. В настоящий момент возможности доступны абсолютно бесплатно!

Сделано с любовью к разработчикам командой, создавшей суперпопулярный плагин JPA Buddy ❤️

Попробовать Amplicode

Посмотрите как Amplicode помогает разрабатывать на Spring Boot в IntelliJ IDEA!
Интересные приёмы, взятые из исходников Android

В процессе чтения исходников Android SDK я замечал интересные механики и приёмы написания кода, какие-то из них до сих пор используются при создании новых библиотек, другие, напротив, заменены более логичными и понятными конструкциями. В этой статье я постараюсь перечислить всё, что смог заметить сам при изучении исходников Android'а. Сразу отмечу: эта статья не претендует на полноту материала и возможно вы нашли даже больше интересных моментов при чтении кода, ладно, погнали, короче!

https://habr.com/ru/companies/ruvds/articles/838330/

👉
Есть ли в Java goto?

Это вопрос с подвохом. Оператор GOTO в общем виде – это оператор безусловного перехода в некоторую точку программы. Даже если вы не сталкивались с ним на практике, можете представить, сколько путаницы может принести возможность прыжка из середины одной функции, в середину другой. В современных высокоуровневых языках существует консенсус о том, что goto – это плохо.

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

Ещё goto присутствует в Java как зарезервированное слово – то, что скорее всего подсвечивается особым цветом в вашей IDE. Пока оно не используется, но разработчики языка оставляют за собой такое право.

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

👉
Гринатом, ИТ-интегратор Росатома, в поиске Java-разработчика в команду по проектированию и разработке отраслевой системы электронного документооборота. Человека, знакомого с Java от и до и работающего с языком программирования не менее 3 лет.

Приветствуется знание SQL, GraalVM, библиотек и фреймворков, а также опыт написания юнит- и интеграционных тестов и понимание работы в CI/CD.

Если это про вас, откликайтесь на вакансию по ссылке: https://voronezh.hh.ru/vacancy/105691838
Подборка из 10 репозиториев GitHub для изучения Java

1. Awesome Java: https://github.com/akullpp/awesome-java
2. Modern Java - A Guide to Java 8: https://github.com/winterbe/java8-tutorial
3. Java Design Patterns: https://github.com/iluwatar/java-design-patterns
4. Spring Framework: https://github.com/spring-projects/spring-framework
5. Algorithms: https://github.com/TheAlgorithms/Java
6. Spring Boot Tutorial: https://github.com/RameshMF/spring-boot-tutorial
7. Baeldung Java and Spring Tutorials: https://github.com/eugenp/tutorials
8. Google Style Guides: https://github.com/google/styleguide
9. Netflix - Open Source Java Projects: https://github.com/Netflix
10. Ultimate Java Resources: https://github.com/dubesar/Ultimate-Java-Resources

👉
Вопросы с реального собеседования Senior Java Developer

00:00 Приветствие
01:34 Введение
02:23 Разбор вопросов и ответов
03:10 Может ли разработчик управлять памятью в Java?
03:40 Как потоки связаны с памятью?
07:28 Spring Context и зачем он нужен?
08:10 Как работает аннотация @ Transactional?
09:45 Как работает транзакция?
10:30 Как работает TDD?
14:17 Выводы

https://www.youtube.com/watch?v=sMGYAucH9yY

👉
Java varargs

Java varargs (variable arguments) — это механизм, предоставляемый Java, который позволяет методу принимать переменное количество аргументов одного типа. Он позволяет передавать любое количество аргументов заданного типа в метод, без явного указания массива аргументов.

Для объявления переменного количества аргументов в Java используется троеточие (...) после типа данных аргумента в определении метода.

👉
Что находится внутри класса Math?

👉
JDK 23: Чего ожидать?

JDK 23, выпуск которого запланирован на 17 сентября 2024 года, принесет множество значительных улучшений и усовершенствований в язык программирования Java и его поддерживающую экосистему. Этот выпуск станет второй подряд версией JDK без долгосрочной поддержки (non-LTS), после предыдущего LTS-релиза JDK 21.

Стоит отметить, что следующий запланированный LTS-релиз комплекта для разработки Java — JDK 25, который ожидается в сентябре 2025 года и, как предполагается, будет следовать той же модели долгосрочной поддержки, что и предыдущие LTS-версии.

💡 JDK 23 сейчас находится на стадии кандидата в релизы, что означает, что его функции завершены. Новые JEP больше не будут добавляться в этот выпуск.

💡 Кандидат в релизы (Release Candidate, RC) в контексте JDK — это как финальная версия программного обеспечения перед его официальным выпуском. Оно почти готово для публичного релиза, но проходит последний этап тестирования, чтобы выявить любые мелкие проблемы или ошибки, которые могли быть проп...
JSpecify 1.0.0 и nullability в Java

Рады сообщить, что JSpecify 1.0.0 теперь доступен в Maven Central: четыре аннотации, связанные с nullability — , , и — стали официальными, и, что немаловажно, обратная совместимость с ними будет гарантирована.

Проекты и группы, входящие в консенсус, включают:

OpenJDK
EISOP
PMD
Android, Error Prone, Guava (Google)
Kotlin, IntelliJ (JetBrains)
Azure SDK (Microsoft)
Sonar
Spring

https://www.infoq.com/news/2024/08/jspecify-java-nullability/

👉