Java библиотека – Telegram
Java библиотека
31.5K subscribers
2.37K photos
91 videos
10 files
2.19K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
🖥 Vert.x — это набор инструментов для создания реактивных приложений на JVM

Ядро Vert.x содержит достаточно низкоуровневую функциональность, включая поддержку HTTP, TCP, доступ к файловой системе и различные другие возможности. Можно использовать Vert.x непосредственно в своих приложениях.

🖥 GitHub
🟡 Доки

@javalib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥4
😁69👍8🔥81
🖥 useful-java-links — коллекция полезных ссылок для Java-разработчиков, охватывающая различные категории, такие как библиотеки, фреймворки, утилиты и ресурсы для обучения. Особое внимание уделено инструментам для работы с базами данных, поисковыми системами, Big Data и машинным обучением

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

🖥 Github

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍225🔥5🎉1
Media is too big
VIEW IN TELEGRAM
Обзор Java Executors

Обзор возможностей Executors в Java.

📺🗣СМОТРЕТЬ RUTUBE

🌐🗣СМОТРЕТЬ VKVIDEO

📝🗣СМОТРЕТЬ DZEN

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍42
🖥 HyperCeiler — это модуль для улучшения работы операционных систем MIUI и HyperOS, разработанный для Android. Он предоставляет функции, которые помогают оптимизировать пользовательский интерфейс и исправить некоторые ограничения системы

🌟 Для его использования требуется root-доступ и настройка через LSPosed. Модуль поддерживает версии Android 13-15 и включает множество системных приложений и служб

🔐 Лицензия: AGPL-3.0

🖥 Github

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥2
ServletConfig

Это интерфейс в Java, который предоставляет информацию о настройках сервлета. Каждый сервлет веб-приложения имеет свой объект ServletConfig, который позволяет сервлету получать доступ к параметрам и настройкам, определенным в файле развёртывания (web.xml) или в других конфигурационных файлах. Это полезно для настройки и переопределения поведения сервлета без изменения его исходного кода.

@javalib #java
👍62🔥2
🖥 Паттерн Прототип (Prototype)

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

Использование:


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

Преимущества:

1️⃣ Позволяет создавать новые объекты путем клонирования, что может быть гораздо быстрее, чем создание с нуля.
2️⃣ Можно легко менять клонированные объекты, не затрагивая исходный.
3️⃣ Клонирование полезно для объектов с множеством состояний или структур (например, сложные графические объекты).

Недостатки:

1️⃣ Если объект имеет сложные вложенные структуры, потребуется реализация глубокого копирования, что может быть сложно и затратно.
2️⃣ Для копирования объектов может потребоваться много памяти, особенно если объекты большие.
3️⃣ Клон напрямую зависит от структуры исходного объекта, что может затруднить масштабирование или изменение логики.

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

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116🔥4😁2
🖥 LWJGL — это open-source Java-библиотека, обеспечивающая кроссплатформенный доступ к популярным нативным API, полезным при разработке графических (OpenGL, Vulkan, bgfx), аудио (OpenAL, Opus), параллельных (OpenCL, CUDA) и XR (OpenVR, LibOVR, OpenXR) приложений

Доступ, предоставляемый библиотекой LWJGL, является высокопроизводительным, но в то же время обернут в безопасный для типов и удобный для пользователя слой, подходящий для экосистемы Java.

🖥 GitHub
🟡 Быстрый старт

@javalib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥43
🖥 Smallville — фреймворк для создания генеративных агентов для видеоигр. Эти агенты — виртуальные персонажи, способные хранить воспоминания, наблюдать за окружением и реагировать на изменения в игровом мире. Они используют модели на основе больших языковых моделей (LLM), таких как ChatGPT, для создания более реалистичных и динамичных NPC, что снижает необходимость ручного программирования взаимодействий

🌟 Репозиторий включает клиентские библиотеки для Java и JavaScript, а также сервер для симуляций

🔐 Лицензия: MIT

🖥 Github

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥4
❗️ Модели жизненного цикла разработки ПО

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

🟡 Водопадная модель

- Линейный и последовательный подход, где каждый этап строго следует за предыдущим.
- Проект разбивается на отдельные фазы: Сбор требований, Дизайн, Реализация, Верификация, Поддержка.
- Подходит для проектов с четкими, неизменяемыми требованиями.

🟡 Agile-модель

- Разработка ведется небольшими, управляемыми итерациями, называемыми спринтами, что позволяет быстро реагировать на изменения.
- Включает популярные методологии: Scrum (спринты с командными встречами), Kanban (визуализация задач) и Extreme Programming (XP, акцент на частых релизах).
- Применяется для проектов с неопределенными или часто меняющимися требованиями, благодаря гибкости и акценту на обратную связь.

🟡 V-модель (Модель верификации и валидации)

- Расширение водопадной модели, где для каждой фазы разработки предусмотрена фаза тестирования, формирующая визуальную «V»-структуру.
- Подходит для проектов, где критична строгая проверка и верификация на каждом этапе.

🟡 Итеративная модель

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

🟡 Спиральная модель

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

🟡 Модель "Большой взрыв"

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

🟡 RAD-модель (Быстрая разработка приложений)

- Сосредоточена на быстром прототипировании и регулярной обратной связи от пользователя.
- Цель — ускорить разработку и адаптацию, что полезно для проектов, где важна скорость релизов.

🟡 Инкрементальная модель

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

Какая модель используется на вашем текущем проекте?

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥54
❗️ Совет по Java: компактный конструктор в записях!

⭐️ Компактная форма помогает разработчикам сосредоточиться на проверке и нормализации параметров без утомительной работы по присвоению параметров полям!

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥54
Java для Sega Mega Drive — возможно ли это?

В этом проекте я хотел ответить на вопрос: возможно ли написать игру на Java для Sega Mega Drive/Genesis. Не хочу раскрывать спойлеры, но ответом будет «да».
Несколько лет назад я повстречал проект Java Grinder, который позволяет писать код для различных ретро процессоров на Java, в том числе для Sega Mega Drive. По сути, он интерпретирует байт-код из файлов .class, полученных после компиляции, в код на Ассемблере 68K. Если файлу класса нужны другие файлы классов, то они тоже считываются и обрабатываются. Все вызовы методов API записываются в выходном коде, либо как встроенный ассемблерный код, либо как вызовы предварительно написанных функций, выполняющих свою задачу.


Читать статью
👍19🔥43🍾1
Задачи с собеседований: Поиск первого уникального символа в строке (jun+)

— Как найти первый уникальный символ в строке?

🔘 Ключевые моменты:

- Используйте доп. структуру данных для хранения количества вхождений каждого символа
- Предложите в комментарии другие варианты решения.

Реализация через Map на картинке 👆

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍156🔥3
🖥 awesome-low-level-design — полезный репозиторий, который предназначен для изучения низкоуровневого проектирования (Low-Level Design, LLD) и подготовки к собеседованию на эту тему

🌟 Здесь содержатся ресурсы по основным принципам ООП, SOLID, паттернам проектирования, диаграммам UML и другим концепциям, а также задачи для практики проектирования различных систем. Решения задач написаны на разных ЯП, в том числе и на Java!

🔐 Лицензия: GPL-3.0

🖥 GitHub

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
👩‍💻 Шпаргалка по основным командам Docker

От запуска контейнеров до их управления — все ключевые команды в одном месте. Сохраняйте, чтобы не потерять.

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍73
🖥 MineDojo — это исследовательская платформа, разработанная для создания многоцелевых ИИ-агентов с помощью среды Minecraft.

Проект написан на Java и предоставляет инструменты и API, которые позволяют агентам взаимодействовать с Minecraft для выполнения сложных задач, таких как построение, крафтинг, исследование и другие

🌟 MineDojo создан для поддержки исследований в области ИИ, обучая агентов на большом количестве сценариев и примеров поведения. Платформа включает в себя предварительно настроенные задачи и сценарии, а также возможности для создания собственных агентов

🖥 Github

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥164👍3🎉1
Путеводитель по техническим транзакциям с Camunda 8 и Spring

Интересно, как работают технические транзакции с Camunda и фреймворком Spring? Узнайте больше о транзакционном поведении в этом блоге.

Мы регулярно отвечаем на вопросы о том, как работают технические транзакции при использовании Camunda (в последней версии 8.x) и фреймворка Spring. Например, что происходит, если у вас есть две сервисные задачи, и второй вызов завершается с ошибкой? В этом блоге я опишу типичные сценарии, чтобы сделать поведение более наглядным. Я буду использовать примеры кода на Java 17, Camunda 8.3, Spring Zeebe 8.3, Spring Boot 2.7 и Spring Framework 5.3.


Читать статью
👍94
🤣
😁1094👍3
CI/CD Pipeline

CI/CD пайплайн — это система, которая позволяет автоматизировать ключевые этапы разработки: от сборки и тестирования до развертывания программного обеспечения. Такой подход объединяет все стадии жизненного цикла проекта — написание кода, его проверку, тестирование и публикацию — в единый поток, где каждый шаг выполняется автоматически и последовательно.

На диаграмме выше представлены инструменты, которые часто используются для создания эффективного CI/CD пайплайна.

Вы применяете какие-то из них в своих проектах?

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉14👍52🔥2
🖥 Генерация классов Java из схем Avro с использованием Gradle!

💡 В этом уроке вы научитесь генерировать Java-классы из схемы Apache Avro. Сначала вы познакомитесь с двумя методами: использованием существующего плагина Gradle и созданием кастомного задания для скрипта сборки. Затем рассмотрите плюсы и минусы каждого подхода и поймете, в каких случаях каждый из них лучше всего применять!

🔗 Ссылка: *клик*

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134🔥4
Forwarded from Java Guru 🤓
Что будет выведено для запроса /api/hello?name=Spring
👍6🔥4