java_iibrary | Unsorted

Telegram-канал java_iibrary - Java Portal | Программирование

12073

Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg

Subscribe to a channel

Java Portal | Программирование

Если честно, papers-we-love — самый удобный инструмент для программирования, которым я пользовался в этом году. Его 109 тысяч звёзд на GitHub вполне заслуженны.

1️⃣ Он собирает самые классические научные работы по информатике и раскладывает их по категориям: распределённые системы, базы данных, операционные системы и многое другое.

В прошлом месяце, когда я искал работы по Paxos, нашёл всё необходимое прямо в этом репозитории. Больше не пришлось бесконечно копаться в Google Scholar.

2️⃣ У каждой работы есть официальная ссылка, а у некоторых — прямая ссылка на PDF. Я проверил сам: никакой регистрации и платных подписок — просто открываешь и читаешь.

Гораздо удобнее, чем сайты-агрегаторы научных работ.

3️⃣ Это не просто собрание материалов. У проекта есть офлайн-встречи в десятках городов по всему миру, а записи прошлых выступлений доступны на YouTube.

Я посмотрел несколько выступлений по распределённым системам — это сильно экономит время по сравнению с самостоятельным чтением десятков работ.

Этот проект действительно экономит огромное количество времени всем, кто занимается программированием.

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

Я прочитал около десятка работ, двигаясь по этому каталогу, и качество оказалось намного выше, чем при случайном поиске на arXiv.

Только на отборе материалов можно сэкономить как минимум полдня.

А где вы сейчас в основном ищете научные работы? Есть источники лучше этого?

https://github.com/papers-we-love/papers-we-love

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Приложения и базы данных, которые стоят за ними.

Instagram — PostgreSQL
Reddit — PostgreSQL
Twitch — PostgreSQL
Notion — PostgreSQL
Figma — PostgreSQL
ChatGPT — PostgreSQL
Skype — PostgreSQL

GitHub — MySQL
Shopify — MySQL
Slack — MySQL
YouTube — MySQL
Uber — MySQL
Airbnb — MySQL
Facebook — MySQL

Netflix — Cassandra

Discord — ScyllaDB

Забавно, насколько большая часть крупнейших сервисов в мире до сих пор держится на PostgreSQL и MySQL.

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Нашёл настоящую золотую жилу для тех, кто готовится к собеседованиям в FAANG

Complete FAANG Preparation, уже больше 12 тысяч , включает

→ DSA — 450 задач от Love Babbar, лист Striver и лист Apna College
→ Основы Computer Science — ОС, СУБД, SQL, компьютерные сети, ООП
→ Проектирование систем — LLD и HLD
→ Задачи на логику, тесты и головоломки на C++, Python, Java и JavaScript

Один репозиторий, и в нём практически всё, что нужно

https://github.com/AkashSingh3031/The-Complete-FAANG-Preparation

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Несколько алгоритмов, которые я периодически заставляю себя повторять, чтобы не забыть, как они работают:

• Kadane’s → максимальная сумма подмассива
• Rabin–Karp → поиск подстроки с помощью хеширования
• Topological Sort → топологическая сортировка DAG
• Prim’s → минимальное остовное дерево
• Kruskal’s → MST с Union-Find
• Dijkstra’s → кратчайший путь без отрицательных весов
• Bellman–Ford → кратчайший путь с отрицательными весами
• Tarjan’s → компоненты сильной связности
• Backtracking → решение Sudoku

К этим алгоритмам я продолжаю возвращаться даже спустя годы.

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Классика алгоритмов

https://www3.cs.stonybrook.edu/~skiena/373/videos/

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Spring Boot 4 получил поддержку статической схемы Redis master/replica через Lettuce.

✅ Узлы задаются через spring.data.redis.masterreplica.nodes
✅ Запросы на чтение можно отправлять на реплики
✅ Работает только с Lettuce, без поддержки Jedis

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Бывший глава GitHub строит ему замену.

Потому что GitHub уже не справляется с собственной инфраструктурой.

Сейчас GitHub обрабатывает 2,9 млрд коммитов в месяц. Ещё в апреле было 1,4 млрд. То есть нагрузка удвоилась всего за четыре месяца.

Каждый месяц сливаются 130 млн пул-реквестов и создаются 24 млн новых репозиториев.

И это уже второй крупный сбой GitHub только за август.

Технический директор GitHub Влад Фёдоров прямо написал в разборе инцидента

«Мы добились прогресса, но эти инциденты ясно показывают, что нам нужно ускорить эту работу».

Сейчас уже 58% нагрузки GitHub работает на Microsoft Azure. В мае было всего 12%.

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

Собственные центры обработки данных GitHub упёрлись в предел. Причём не по бюджету, а буквально по доступной мощности электроснабжения.

Тем временем Томас Домке, который руководил GitHub до 2024 года, запустил новую компанию Entire.

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

Источник — The New Stack.

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Современная Java — сверху, Rust — снизу.

Той Java, которую вы привыкли представлять, больше нет.

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Самое время снова вспомнить о Java Records.

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

Если вы ещё не используете record, это один из самых простых способов писать более чистый и выразительный код на Java.

Подробнее: https://social.ora.cl/6012BDGFKM

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Оптимизация производительности Spring Boot.

https://vladmihalcea.com/spring-boot-performance-tuning/

👉 Java Portal

Читать полностью…

Java Portal | Программирование

🚀 Spring Boot 4: @ConfigurationPropertiesSource для внешних типов.

✅ Теперь метаданные можно генерировать даже для типов, которые находятся в другом модуле.

#SpringBoot4 #Config

👉 Java Portal

Читать полностью…

Java Portal | Программирование

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

Огромный открытый гайд со всем, что нужно для старта и дальнейшего изучения self-hosting:

Docker, Kubernetes, базы данных, LLM, сети, Raspberry Pi, Home Assistant, безопасность, программирование и ещё куча всего.

Если давно хотели научиться запускать собственный софт вместо того, чтобы зависеть от SaaS-сервисов, это точно стоит сохранить.

Источник: github.com/mikeroyal/Self-Hosting-Guide

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Импортируете CSV в Postgres? Используйте COPY или \copy.

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

Что важно знать:

FORMAT csv
Включает стандартный разбор CSV: запятые, поля в кавычках и экранированные кавычки.

Список целевых столбцов
Порядок столбцов в CSV редко совпадает с таблицей. Всегда указывайте целевые столбцы в том порядке, в котором они идут в файле. Postgres сопоставляет их по позиции, а не по имени из заголовка CSV.

HEADER / HEADER n
Пропускает строки заголовка. Обычный HEADER пропускает первую строку. Ожидается, что Postgres 19 позволит передавать число, например HEADER 2, чтобы пропускать несколько начальных строк.

DEFAULT 'string'
Позволяет сопоставить специальную строку в CSV, например '__DEFAULT__', с выражением DEFAULT соответствующего столбца.

Неуказанные столбцы
Столбцы таблицы, которые не указаны в списке целевых столбцов, автоматически получают DEFAULT или NULL.

Лишние столбцы в CSV
Postgres выдаст ошибку, если в CSV больше полей, чем указано целевых столбцов. Обрежьте файл или сначала загрузите данные в более широкую промежуточную таблицу.

NULL-значения
В формате csv стандартным представлением NULL является пустая строка без кавычек. Это можно изменить через NULL 'string'.

Обработка ошибок через ON_ERROR и REJECT_LIMIT
Исторически COPY останавливался на первой ошибке преобразования. В новых версиях появились:

• ON_ERROR ignore в Postgres 17 — пропускает некорректные строки и сообщает их количество
• REJECT_LIMIT n в Postgres 18 — задаёт максимальное число плохих строк при ON_ERROR ignore, после которого импорт будет остановлен
• ON_ERROR set_null в Postgres 19 — заменяет некорректное поле на NULL вместо того, чтобы отбрасывать всю строку

👉 Java Portal

Читать полностью…

Java Portal | Программирование

🔴 Тестовый собес с Java-разработчиком уже завтра! 
[+ разбор 50 сложных вопросов в подарок ]

19 августа (уже завтра!) в 19:00 по мск
приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Java-разработчика!

Собеседование проведёт Сергей Чамкин - старший разработчик из Uzum, ex-WildBerries

Как это будет:

📂 Сергей задаст разработчику-добровольцу вопросы и задачи, которые могут спросить на реальном собесе
📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью
📂 В конце сможешь задать любой вопрос Сергею и получить на него развёрнутый ответ

Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы

Но ты можешь посмотреть его бесплатно 🔥
Только завтра, в прямом эфире!

🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Java-собеседований 🔥

Жми на кнопку, чтобы попасть на эфир и забрать подарок ↓
@shortcut_sh_bot 

Реклама.
О рекламодателе.

Читать полностью…

Java Portal | Программирование

Spring Boot 4: можно объединять несколько TaskDecorator для асинхронных задач.

Каждый из них может переносить свой контекст в рабочий поток.

Spring Boot объединяет их и определяет порядок выполнения через @Order.

Типичная связка: MDC для логов + контекст безопасности для пользователя.

#SpringBoot4 #Async

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Бэкенд-разработчик пытается написать CSS.

👉 Java Portal

Читать полностью…

Java Portal | Программирование

🚀 Spring Boot 4: для проверки состояния MongoDB больше не нужен Spring Data.

✅ Индикаторы состояния теперь находятся в spring-boot-mongodb
✅ Достаточно одного драйвера MongoDB
✅ Используйте spring-boot-starter-mongodb, если вам нужна проверка состояния

#SpringBoot4 #MongoDB

👉 Java Portal

Читать полностью…

Java Portal | Программирование

🚀 Тренируемся на 10 из 10: новый юбилейный сезон тренировок по алгоритмам от Яндекса

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

Выбери свой вариант участия:

🔸 Тренировка — решай задачи в своём темпе и получи сертификат о прохождении курса.

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

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

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

Читать полностью…

Java Portal | Программирование

По умолчанию Postgres считает столбцы, которые вместе используются в WHERE, независимыми друг от друга.
Например, для такого SQL-запроса:

SELECT *
FROM world
WHERE country = 'Japan'
AND continent = 'Asia';


планировщик оценивает количество подходящих строк, перемножая селективность каждого условия.

Допустим, селективность условия country = 'Japan' равна 0,02, а continent = 'Asia' — 0,4. Тогда общую селективность планировщик оценит как 0,008.

В действительности эти столбцы связаны, поэтому итоговая селективность равна селективности условия country = 'Japan'.

Чтобы исправить оценку, нужно явно указать корреляцию между столбцами: выполнить CREATE STATISTICS для них вместе, а затем запустить ANALYZE.

Я проверил это на тестовом датасете, результаты видны на изображении. Изначально планировщик ожидал, что запрос вернёт 784 строки, хотя фактический результат составлял 2000 строк.

После выполнения CREATE STATISTICS планировщик спрогнозировал 1983 строки — гораздо ближе к реальному результату.

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Spring Boot-приложение теперь может работать прямо во вкладке браузера как WebAssembly благодаря GraalVM.

В примере запустили радиоплеер.

— старт за 137 мс
— WebAssembly-модуль размером 16 МБ
— 22 Spring bean

По сути, полноценное Spring Boot-приложение запускается прямо в браузере.

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Шаблон Full Stack FastAPI теперь отдаёт фронтенд на React и TanStack прямо через FastAPI.

В итоге одно приложение, один деплой и один домен.

Без отдельного фронтенд-сервера, лишней настройки CORS и постоянной отладки проблем между двумя частями приложения.

https://github.com/fastapi/full-stack-fastapi-template

👉 Java Portal

Читать полностью…

Java Portal | Программирование

💡 Java — не стоит считать, что десятичным разделителем всегда будет точка.

✅ Шаблоны вроде #,###.## всё равно используют символы, зависящие от локали.

✅ Нужные разделители можно задать через DecimalFormatSymbols(locale).

✅ В Италии число будет выглядеть как 1.234,56, а в США — 1,234.56.

#Java #JavaDev

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Эти заметки — структурированное руководство по собеседованиям по проектированию систем.

Внутри разбираются как базовые подходы к System Design, так и конкретные архитектуры: веб-краулеры, системы уведомлений, платёжные платформы и другие типичные задачи с собеседований.

https://github.com/liquidslr/system-design-notes

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Подзапросы в SQL сначала могут казаться запутанными, но на деле это просто запросы, которые передают данные другому запросу.

В этой статье Абдулла объясняет, как работают подзапросы и где они используются в SQL.

Разбираются некоррелированные и коррелированные подзапросы, производные столбцы и таблицы, а также операторы IN, ANY, ALL, EXISTS и многое другое.

https://freecodecamp.org/news/how-to-work-with-subqueries-in-sql/

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Вам доклады по Go или Java? VK приглашает на митап с двойной начинкой
26 августа VK собирает Go- и Java-инженеров, чтобы прокачать знания.

В программе два трека — Go и Java, по три доклада в каждом.

Трек Go:
• «Компиляция Go в динамическую либу, или как мы ускорили выкатку фичи в два раза, но нам не понравилось», Михаил Кичигин, бэкенд-разработчик, Avito Tech
• «Go-платформа VK: как мы построили единую основу для создания Go-сервисов», Александр Апанасенко, руководитель команды SDK Backend, VK
• «Почтальон от Kubernetes до Palo Alto. Как осуществляется доставка информации об адресах», Дарья Кулькина, бэкенд-разработчик, Точка Банк

Трек Java:
• «Перформанс-трюки в поисковой платформе Ozon», Пётр Портнов, ведущий разработчик среднего поиска, Ozon
• «Архитектура современного движка платёжной системы и переход к новой архитектуре», Игорь Крикунов, технический лидер разработки DBC, Альфа-Банк
• «Переход от федерации S3-кластеров в пользу коммунального и мультитенантного кластера», Кирилл Боблак, ведущий разработчик One-cloud, VK

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

Встречаемся в 17:00, начало в 18:00. Участие бесплатное, регистрация обязательна.

Читать полностью…

Java Portal | Программирование

Разработчику стоит знать основные концепции системного дизайна.

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

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

https://freecodecamp.org/news/learn-system-design-principles/

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Java: поверхностное клонирование копирует только сам объект, а вложенные объекты остаются общими.

super.clone() сам по себе создаёт поверхностную копию.

Глубокое клонирование дополнительно копирует и вложенные поля.

Если ссылки остаются общими, изменение вложенного объекта в одной копии будет видно и в другой.

#Java #SoftwareEngineering

👉 Java Portal

Читать полностью…

Java Portal | Программирование

9 советов по высокой производительности при использовании MySQL с JPA и Hibernate.

https://vladmihalcea.com/9-high-performance-tips-when-using-mysql-with-jpa-and-hibernate/

👉 Java Portal

Читать полностью…

Java Portal | Программирование

На одном собеседовании по системному дизайну я использовал Kafka.
На другом — Redis.
На ещё одном — S3.
На ВСЕХ собеседованиях по системному дизайну я использовал базы данных.

Базы данных — основа любой архитектуры независимо от масштаба, стека или предметной области.

Если вы понимаете, как данные хранятся, запрашиваются, индексируются, реплицируются и партиционируются, то вы уже понимаете 70% системного дизайна.

Не отвлекайтесь на каждый новый модный компонент. Очереди, кэши и оркестраторы приходят и уходят.

А базы данных остаются.

Реляционные, NoSQL, временные ряды, векторные базы — подходы меняются, но принципы остаются теми же:

- пути чтения и записи
- индексация и кэширование
- транзакции и изоляция
- репликация и партиционирование

Разберитесь глубоко в том, как движутся данные, и вы увидите, как с ними связаны все остальные части системы.

Изучайте базы данных глубоко.

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

👉 Java Portal

Читать полностью…

Java Portal | Программирование

Не забывайте поддерживать проекты с открытым исходным кодом, которыми сами пользуетесь.

👉 Java Portal

Читать полностью…
Subscribe to a channel