Java: поверхностное клонирование копирует только сам объект, а вложенные объекты остаются общими.
Глубокое клонирование дополнительно копирует и вложенные поля.
Если ссылки остаются общими, изменение вложенного объекта в одной копии будет видно и в другой.
#Java #SoftwareEngineering
👉 Java Portal
super.clone() сам по себе создаёт поверхностную копию.Глубокое клонирование дополнительно копирует и вложенные поля.
Если ссылки остаются общими, изменение вложенного объекта в одной копии будет видно и в другой.
#Java #SoftwareEngineering
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Похоже, это один из самых полных справочников по самостоятельному хостингу.
Огромный открытый гайд со всем, что нужно для старта и дальнейшего изучения self-hosting:
Docker, Kubernetes, базы данных, LLM, сети, Raspberry Pi, Home Assistant, безопасность, программирование и ещё куча всего.
Если давно хотели научиться запускать собственный софт вместо того, чтобы зависеть от SaaS-сервисов, это точно стоит сохранить.
Источник: github.com/mikeroyal/Self-Hosting-Guide
👉 Java Portal
Огромный открытый гайд со всем, что нужно для старта и дальнейшего изучения self-hosting:
Docker, Kubernetes, базы данных, LLM, сети, Raspberry Pi, Home Assistant, безопасность, программирование и ещё куча всего.
Если давно хотели научиться запускать собственный софт вместо того, чтобы зависеть от SaaS-сервисов, это точно стоит сохранить.
Источник: github.com/mikeroyal/Self-Hosting-Guide
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - mikeroyal/Self-Hosting-Guide: Self-Hosting Guide. Learn all about locally hosting (on premises & private web servers)…
Self-Hosting Guide. Learn all about locally hosting (on premises & private web servers) and managing software applications by yourself or your organization. Including Cloud, LLMs, WireGuar...
Разработчику стоит знать основные концепции системного дизайна.
Это помогает показать потенциальным работодателям, что вы умеете превращать требования к архитектуре в готовый к продакшену код.
В курсе разбираются архитектура приложений, проектирование API, кэширование, сети, базы данных и многое другое.
https://freecodecamp.org/news/learn-system-design-principles/
👉 Java Portal
Это помогает показать потенциальным работодателям, что вы умеете превращать требования к архитектуре в готовый к продакшену код.
В курсе разбираются архитектура приложений, проектирование API, кэширование, сети, базы данных и многое другое.
https://freecodecamp.org/news/learn-system-design-principles/
Please open Telegram to view this post
VIEW IN TELEGRAM
freeCodeCamp.org
Learn System Design Principles and Prepare for an Job Interview
Mastering system design is important for anyone who wants to build scalable and reliable applications. System design includes a range of topics from basic computer architecture to complex networking concepts, each playing an important role in creatin...
🔥1
🚀 Spring Boot 4:
✅ Теперь метаданные можно генерировать даже для типов, которые находятся в другом модуле.
#SpringBoot4 #Config
👉 Java Portal
@ConfigurationPropertiesSource для внешних типов.✅ Теперь метаданные можно генерировать даже для типов, которые находятся в другом модуле.
#SpringBoot4 #Config
Please open Telegram to view this post
VIEW IN TELEGRAM
Вам доклады по 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. Участие бесплатное, регистрация обязательна.
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. Участие бесплатное, регистрация обязательна.
Оптимизация производительности Spring Boot.
https://vladmihalcea.com/spring-boot-performance-tuning/
👉 Java Portal
https://vladmihalcea.com/spring-boot-performance-tuning/
Please open Telegram to view this post
VIEW IN TELEGRAM
Vlad Mihalcea
Spring Boot performance tuning - Vlad Mihalcea
Learn how to speed up the data access layer in a Spring Boot application using the Hypersistence Optimizer performance tuning utility.
👀1
Подзапросы в SQL сначала могут казаться запутанными, но на деле это просто запросы, которые передают данные другому запросу.
В этой статье Абдулла объясняет, как работают подзапросы и где они используются в SQL.
Разбираются некоррелированные и коррелированные подзапросы, производные столбцы и таблицы, а также операторы
https://freecodecamp.org/news/how-to-work-with-subqueries-in-sql/
👉 Java Portal
В этой статье Абдулла объясняет, как работают подзапросы и где они используются в SQL.
Разбираются некоррелированные и коррелированные подзапросы, производные столбцы и таблицы, а также операторы
IN, ANY, ALL, EXISTS и многое другое.https://freecodecamp.org/news/how-to-work-with-subqueries-in-sql/
Please open Telegram to view this post
VIEW IN TELEGRAM
freeCodeCamp.org
How to Work with Subqueries in SQL
Whenever you see a query nested inside another query in SQL, that's a subquery. A subquery is also known as an inner query while the one that contains it is called the main or outer query. Subqueries
👀2🌚1
Самое время снова вспомнить о Java Records.
В этом руководстве показано, как
Если вы ещё не используете
Подробнее: https://social.ora.cl/6012BDGFKM
👉 Java Portal
В этом руководстве показано, как
record помогает объединять связанные неизменяемые данные в один объект. По сравнению с набором отдельных переменных код становится понятнее и проще в сопровождении.Если вы ещё не используете
record, это один из самых простых способов писать более чистый и выразительный код на Java.Подробнее: https://social.ora.cl/6012BDGFKM
Please open Telegram to view this post
VIEW IN TELEGRAM
Эти заметки — структурированное руководство по собеседованиям по проектированию систем.
Внутри разбираются как базовые подходы к System Design, так и конкретные архитектуры: веб-краулеры, системы уведомлений, платёжные платформы и другие типичные задачи с собеседований.
https://github.com/liquidslr/system-design-notes
👉 Java Portal
Внутри разбираются как базовые подходы к System Design, так и конкретные архитектуры: веб-краулеры, системы уведомлений, платёжные платформы и другие типичные задачи с собеседований.
https://github.com/liquidslr/system-design-notes
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - liquidslr/system-design-notes: Notes of the book System Desgin Interview - An Insider's Guide
Notes of the book System Desgin Interview - An Insider's Guide - liquidslr/system-design-notes
Современная Java — сверху, Rust — снизу.
Той Java, которую вы привыкли представлять, больше нет.
👉 Java Portal
Той Java, которую вы привыкли представлять, больше нет.
Please open Telegram to view this post
VIEW IN TELEGRAM
👀6
💡 Java — не стоит считать, что десятичным разделителем всегда будет точка.
✅ Шаблоны вроде
✅ Нужные разделители можно задать через
✅ В Италии число будет выглядеть как
#Java #JavaDev
👉 Java Portal
✅ Шаблоны вроде
#,###.## всё равно используют символы, зависящие от локали.✅ Нужные разделители можно задать через
DecimalFormatSymbols(locale).✅ В Италии число будет выглядеть как
1.234,56, а в США — 1,234.56.#Java #JavaDev
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Бывший глава 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
Потому что 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.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Шаблон Full Stack FastAPI теперь отдаёт фронтенд на React и TanStack прямо через FastAPI.
В итоге одно приложение, один деплой и один домен.
Без отдельного фронтенд-сервера, лишней настройки CORS и постоянной отладки проблем между двумя частями приложения.
https://github.com/fastapi/full-stack-fastapi-template
👉 Java Portal
В итоге одно приложение, один деплой и один домен.
Без отдельного фронтенд-сервера, лишней настройки CORS и постоянной отладки проблем между двумя частями приложения.
https://github.com/fastapi/full-stack-fastapi-template
Please open Telegram to view this post
VIEW IN TELEGRAM
Spring Boot 4 получил поддержку статической схемы Redis master/replica через Lettuce.
✅ Узлы задаются через
✅ Запросы на чтение можно отправлять на реплики
✅ Работает только с Lettuce, без поддержки Jedis
👉 Java Portal
✅ Узлы задаются через
spring.data.redis.masterreplica.nodes✅ Запросы на чтение можно отправлять на реплики
✅ Работает только с Lettuce, без поддержки Jedis
Please open Telegram to view this post
VIEW IN TELEGRAM
Spring Boot-приложение теперь может работать прямо во вкладке браузера как WebAssembly благодаря GraalVM.
В примере запустили радиоплеер.
— старт за 137 мс
— WebAssembly-модуль размером 16 МБ
— 22 Spring bean
По сути, полноценное Spring Boot-приложение запускается прямо в браузере.
👉 Java Portal
В примере запустили радиоплеер.
— старт за 137 мс
— WebAssembly-модуль размером 16 МБ
— 22 Spring bean
По сути, полноценное Spring Boot-приложение запускается прямо в браузере.
Please open Telegram to view this post
VIEW IN TELEGRAM
👀6❤3
По умолчанию Postgres считает столбцы, которые вместе используются в
Например, для такого SQL-запроса:
планировщик оценивает количество подходящих строк, перемножая селективность каждого условия.
Допустим, селективность условия
В действительности эти столбцы связаны, поэтому итоговая селективность равна селективности условия
Чтобы исправить оценку, нужно явно указать корреляцию между столбцами: выполнить
Я проверил это на тестовом датасете, результаты видны на изображении. Изначально планировщик ожидал, что запрос вернёт 784 строки, хотя фактический результат составлял 2000 строк.
После выполнения
👉 Java Portal
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 строки — гораздо ближе к реальному результату.Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
Несколько алгоритмов, которые я периодически заставляю себя повторять, чтобы не забыть, как они работают:
• Kadane’s → максимальная сумма подмассива
• Rabin–Karp → поиск подстроки с помощью хеширования
• Topological Sort → топологическая сортировка DAG
• Prim’s → минимальное остовное дерево
• Kruskal’s → MST с Union-Find
• Dijkstra’s → кратчайший путь без отрицательных весов
• Bellman–Ford → кратчайший путь с отрицательными весами
• Tarjan’s → компоненты сильной связности
• Backtracking → решение Sudoku
К этим алгоритмам я продолжаю возвращаться даже спустя годы.
👉 Java Portal
• Kadane’s → максимальная сумма подмассива
• Rabin–Karp → поиск подстроки с помощью хеширования
• Topological Sort → топологическая сортировка DAG
• Prim’s → минимальное остовное дерево
• Kruskal’s → MST с Union-Find
• Dijkstra’s → кратчайший путь без отрицательных весов
• Bellman–Ford → кратчайший путь с отрицательными весами
• Tarjan’s → компоненты сильной связности
• Backtracking → решение Sudoku
К этим алгоритмам я продолжаю возвращаться даже спустя годы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
🚀 Тренируемся на 10 из 10: новый юбилейный сезон тренировок по алгоритмам от Яндекса
Интенсив продлится две недели и охватит три крупные темы с видеоуроками. Практические задачи помогут закрепить материал, а соревнования дадут возможность потренироваться в формате настоящего интервью. Особенно полезно будет тем, кто развивает навыки в backend-разработке и пишет на Java — алгоритмические задачи почти всегда встречаются на технических собеседованиях.
Выбери свой вариант участия:
🔸 Тренировка — решай задачи в своём темпе и получи сертификат о прохождении курса.
🔸 Соревнование — проверь себя на задачах, приближенных к интервью, соревнуйся с другими участниками и получи шанс попасть на офлайн-интенсив в Москве.
Среди участников, решивших все задания, разыграют 30 карьерных консультаций, а лучшие на офлайн-интенсиве смогут попасть на пробные собеседования.
Старт сезона — 4 сентября. Участие бесплатное, но необходимо подать заявку.
Интенсив продлится две недели и охватит три крупные темы с видеоуроками. Практические задачи помогут закрепить материал, а соревнования дадут возможность потренироваться в формате настоящего интервью. Особенно полезно будет тем, кто развивает навыки в backend-разработке и пишет на Java — алгоритмические задачи почти всегда встречаются на технических собеседованиях.
Выбери свой вариант участия:
🔸 Тренировка — решай задачи в своём темпе и получи сертификат о прохождении курса.
🔸 Соревнование — проверь себя на задачах, приближенных к интервью, соревнуйся с другими участниками и получи шанс попасть на офлайн-интенсив в Москве.
Среди участников, решивших все задания, разыграют 30 карьерных консультаций, а лучшие на офлайн-интенсиве смогут попасть на пробные собеседования.
Старт сезона — 4 сентября. Участие бесплатное, но необходимо подать заявку.
🔥2