Telegram Web Link
Java25 уже на подходе!

В свежем релизе — важные улучшения, о которых стоит знать каждому Java-разработчику:

🔹 JEP 502: Stable Values — новый способ работы со значениями, который делает код надёжнее и эффективнее.
🔹 JEP 514/515: Project Leyden — фокус на время запуска приложений и оптимизацию старта JVM.

📖 Подробный разбор:
https://softwaremill.com/jep-502-stable-values-new-feature-of-java-25-explained/

#Java #JEP #Leyden #Programming
6👍5🎉2
💡 Полезный совет по Java

В Java часто нужно работать с датами и временем. Вместо устаревших Date и Calendar лучше использовать современное API java.time, появившееся в Java 8. Оно более удобное, безопасное и читаемое.

Например, если нужно добавить дни к текущей дате:


import java.time.LocalDate;

public class Main {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
LocalDate nextWeek = today.plusDays(7);

System.out.println("Сегодня: " + today);
System.out.println("Через неделю: " + nextWeek);
}
}


Код становится проще и понятнее.
📌 Совет: всегда отдавайте предпочтение java.time вместо старых классов.

@javatg
🔥13👍4🥰1
🚀 Linux Pro совет

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


# Проверка, кто слушает на порту 8080
lsof -i :8080

# Или
fuser 8080/tcp


💡 Отличный способ понять, почему приложение не стартует:
сразу видно PID процесса, который занял порт.
Дальше можно решить — убить процесс, изменить конфиг или переназначить порт.

@javatg
🔥9👍63
🔥 Успех в IT = скорость + знания + окружение

Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!

AI: www.tg-me.com/ai_machinelearning_big_data
Python: www.tg-me.com/pythonl
Linux: www.tg-me.com/linuxacademiya
Собеседования DS: www.tg-me.com/machinelearning_interview
C++ www.tg-me.com/cpluspluc
Docker: www.tg-me.com/devops_teleg
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/DevOPSitsec
Data Science: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_1001_notes
Java: www.tg-me.com/java_library
Базы данных: www.tg-me.com/sqlhub
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
ИИ: www.tg-me.com/vistehno
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
Разработка игр: https://www.tg-me.com/gamedev
Haskell: www.tg-me.com/haskell_tg
Физика: www.tg-me.com/fizmat

💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy

Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
Java полезный совет

При работе с коллекциями часто нужно проверить элемент на наличие в списке.
Если использовать List.contains(), то поиск будет O(n) — медленно на больших данных.
Лучше сразу применять Set (например, `HashSet`) для поиска за O(1).

Пример

import java.util.*;

public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", "orange", "grape");

// Медленно — O(n)
boolean slowCheck = list.contains("orange");

// Быстро — O(1)
Set<String> set = new HashSet<>(list);
boolean fastCheck = set.contains("orange");

System.out.println("List check: " + slowCheck);
System.out.println("Set check: " + fastCheck);
}
}

📌 Итог:

- Для поиска в коллекции всегда используйте Set, если не нужен порядок.
- HashSet → быстрый доступ за O(1).
- TreeSet → доступ за O(log n), но с сортировкой элементов.

@javatg
13👍10🥰2😁1🤬1
💡 SQL: поиск дубликатов с помощью GROUP BY и HAVING

Хотите найти строки, которые повторяются?
Используйте GROUP BY и фильтруйте через HAVING COUNT() > 1.


SELECT
email,
COUNT(*) AS cnt
FROM users
GROUP BY email
HAVING COUNT(*) > 1;


🔎 Такой запрос покажет все email, которые встречаются более одного раза.
Можно добавлять дополнительные поля в GROUP BY, чтобы находить дубли по нескольким колонкам.

@javatg
👍197🥰2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
📚🎮 SQL + Покемоны = Querymon!

Энтузиасты сделали игру, которая превращает изучение баз данных в настоящее приключение.

С нуля — начнёте с простых таблиц и базовых запросов, сложность растёт постепенно.
🔎 Освоите SELECT, FROM, WHERE, фильтры LIKE, BETWEEN, IN и функции sum(), count(), avg().
🎯 Геймплей — сотни миссий, где, чтобы пройти дальше, нужно правильно писать SQL-запросы.

SQL ещё никогда не был таким весёлым: учиться теперь так же увлекательно, как ловить покемонов.
И самое приятное — игра полностью бесплатная.

👉 Попробовать можно здесь.
6🔥6👍3👏1🤬1
🚀 Продвинутый совет по Spring Boot 🚀

Используй ApplicationPidFileWriter, чтобы при старте приложения записывать его PID в файл.
Это удобно для ops-скриптов, health-checks в контейнерах и мониторинга процессов. 🔥

👉 Документация: https://docs.spring.io/spring-boot/api/java/org/springframework/boot/context/ApplicationPidFileWriter.html

#SpringBoot #Java #DevOps
9👍4🔥4
Знали ли вы, что у SQLite есть векторное расширение? 🧮

SQLite — самая используемая база данных в мире, работает практически на любом устройстве.
Теперь можно легко строить AI-приложения с помощью SQLite-vec и новой Embedding Gemma прямо на устройстве, без интернета.

Ниже — простой пример с Python + SQLite и Ollama. SQLite-vec совместим с WASM и запускается где угодно. Пример можно адаптировать почти под любой язык: Swift, Kotlin, Java, JavaScript…

🟢Script: https://github.com/philschmid/gemini-samples/blob/main/scripts/embeddinggemma-sqlite-ollama.py
🟢Sqlite-vec: https://alexgarcia.xyz/sqlite-vec/
🟢EmbeddingGemma: https://developers.googleblog.com/en/introducing-embeddinggemma/

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥3
Учим Git играючи.

Крутое десктопное приложение (Mac, Windows, Linux), которое учит работать с гитом без сухих лекций. Только практика и живой результат:

— Каждое задание выполняется в реальном Git и GitHub, а не в песочнице;
— В процессе вы собираете готовые репозитории у себя в аккаунте;
— Поддержка разных языков.

https://github.com/jlord/git-it-electron
👍19🥰21
🖥 Java 25 официально вышла — новый LTS-релиз, который будет поддерживаться минимум до сентября 2030 года.

Что в нём нового:
- более 2600 исправлений и улучшений,
- 18 JEP-ов, включая долгожданные Module Import Declarations (теперь это постоянная конструкция),
- компактные исходные файлы и возможность писать main() как instance-метод — меньше шаблонного кода, проще создавать утилиты и скрипты,
- удалён порт x86 32-бит, улучшена работа JVM и расширены API для структурной конкуренции.

Java 25 делает разработку чище и удобнее, а компании получают стабильную платформу на годы вперёд.

🟢Oracle JDK: https://www.oracle.com/java/technologies/downloads/
🟢Open JDK: http://jdk.java.net/25/

@java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥255👍5
Полезный приём в Java: record + sealed interface для удобных и безопасных доменных моделей.

С помощью sealed можно чётко ограничить набор допустимых типов, а record делает код компактным и иммутабельным.

Пример 👇

sealed interface Payment permits CardPayment, CashPayment, CryptoPayment {}

record CardPayment(String cardNumber, double amount) implements Payment {}
record CashPayment(double amount) implements Payment {}
record CryptoPayment(String wallet, double amount) implements Payment {}


Теперь можно использовать switch с исчерпывающей проверкой:


static String process(Payment p) {
return switch (p) {
case CardPayment c -> "Оплата картой: " + c.amount();
case CashPayment c -> "Оплата наличными: " + c.amount();
case CryptoPayment c -> "Крипта из кошелька: " + c.wallet();
};
}


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

- меньше if/instanceof;
- компилятор гарантирует, что рассмотрены все варианты;
- код становится выразительным и легко расширяемым.

🔥 Такой подход отлично подходит для бизнес-логики: платежи, статусы заказов, события системы.

@javatg
👍17🔥63
🚀 BlazingMQ — очередь сообщений от Bloomberg с упором на скорость

BlazingMQ — это open-source система для обмена сообщениями, которую Bloomberg использует в продакшене уже больше 8 лет. Она справляется с миллиардами сообщений в день и при этом держит низкую задержку.

Что умеет:
- Скорость — сотни тысяч сообщений в секунду с задержкой всего ~1–2 мс.
- Надёжность — хранение и репликация данных, защита от «битых» сообщений.
- Гибкость — поддержка разных сценариев: очереди задач, приоритеты, fan-out, broadcast.
- Эффективность — multi-hop архитектура снижает нагрузку на сеть при массовой рассылке.
- Технологии под капотом — написана на C++ с нуля, использует Raft для репликации и оптимизирована под высокую производительность.

🛠 Есть SDK для C++, Java и Python.

👉 Для чего подходит: системы реального времени, финтех, распределённые сервисы с высокими требованиями к скорости и отказоустойчивости.

🔗 Репозиторий: https://github.com/bloomberg/blazingmq

#BlazingMQ #Messaging #Bloomberg #DistributedSystems
🔥7👍42🎉1
🌐 Репозиторий Zalando RESTful API Guidelines - это рекомендации по проектированию REST API, разработанные компанией Zalando!

🌟 Он охватывает лучшие практики по организации ресурсов, кодам ответов, обработке ошибок, версионированию и безопасности API. Документ основан на реальном опыте компании и помогает создавать согласованные и масштабируемые API.

🔐 Лицензия: CC-BY-4.0

🖥 Github

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 no-code база данных, которая сама превращает SQL в Airtable-стиль интерфейс

Что умеет:
- Подключается к MySQL, Postgres, SQLite, MSSQL и сразу показывает данные в виде удобных таблиц
- Делает представления: таблицы, календари, канбан, формы, Гантт
- Генерирует готовые REST и GraphQL API прямо поверх базы
- Делится видами: публично или под паролем, поддерживает загрузку файлов и картинок
- Настраивает роли и доступ до уровня отдельного столбца

Плюс интеграции со Slack, Discord, мессенджерами, почтой и десятками сервисов.

По сути — Airtable, но напрямую поверх твоей базы.

https://github.com/nocodb/nocodb
👍8🔥54
This media is not supported in your browser
VIEW IN TELEGRAM
🌟 14 алгоритмов сортировки в одной минуте!

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍42
This media is not supported in your browser
VIEW IN TELEGRAM
Продуктивная пятница для тех кто в теме Java и ML – приходите на VK JT Meetup!

3 октября VK проводит VK JT Meetup в Нижнем — офлайн-встречу ML-инженеров и Java-разработчиков.

Лиды VK расскажут про вызовы перед бэкендером, которые возникают в процессе создания B2B-продукта. А также поделятся пошаговым гайдом по выпуску RAG в прод и процессом создания единой инфраструктуры поисковой платформы.

А после докладов вас ждут командные кейс-батлы и нетворкинг.

Приходите посоревноваться за призы в кейс-батле и пообщаться с экспертами в нетворкинг-зоне.

📍 Нижний Новгород, только офлайн
📅 3 октября, сбор с 18:00
🎟 Вход по регистрации

Реклама: ООО «ВК» ИНН 7743001840
2🔥1
Парсим как про — представляем сборник из библиотек, сервисов и локальных тулзов для сбора информации.

• Тянет всё: картинки, видео, метаданные, аудио, документы, теги, SEO-данные, метрики сайтов, посещаемость и многое другое.
• В основе — Python, PHP, JS и Go, самые актуальные языки для парсинга.
• Сервисы имитируют поведение живого пользователя и обходят любые ограничения: от капчи до сложных защит.
• К каждому инструменту есть подробная инструкция — разберётся даже школьник.
• Всё регулярно обновляется и поддерживается разработчиками.

https://github.com/lorien/awesome-web-scraping
4🤔2
🧩 SQL хитрый трюк

Хотите быстро найти дубликаты в таблице — но не просто значения, а ещё и сразу оставить только уникальные строки?

Вместо сложных подзапросов используйте `ROW_NUMBER()` с PARTITION BY:


WITH numbered AS (
SELECT
id,
email,
ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) AS rn
FROM users
)
SELECT id, email
FROM numbered
WHERE rn = 1;


📌 Что происходит:
- PARTITION BY email группирует строки по email
- ROW_NUMBER() нумерует их внутри группы
- WHERE rn = 1 оставляет только первую запись (а все дубликаты убираются)

💡 Так можно элегантно чистить таблицы от дублей без лишних вложенных запросов.

@javatg
👍21🤔42
Убираем боль при работе с Kubernetes: на GitHub появился визуальный редактор для деплоев, который превращает ад с YAML в понятный drag-and-drop.

Идея простая: меньше возни с синтаксисом — больше живого кластера.

— Тянем объекты мышкой, вместо ручного шаманства в конфиге
— Схемы всегда актуальны, обновляются каждый день из официальной репы
— Визуально видно зависимости и апдейты в реальном времени
— Экспорт готовых YAML’ов или даже прямой хостинг для GitOps
— Готовые шаблоны и переиспользуемые спеки, чтобы не изобретать велосипед заново

Теперь Kubernetes становится куда понятнее и быстрее в работе. Наслаждайтесь.

https://github.com/kubenote/KubeForge
🔥9👍52
2025/10/20 02:16:39
Back to Top
HTML Embed Code: