Java Portal | Программирование
11.9K subscribers
1.48K photos
112 videos
45 files
1.53K links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Spring Boot 4: чтобы перенести ключи конфигурации, временно используйте properties-migrator как помощник.

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

#SpringBoot4 #Migration

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
MIT 6.824 (распределённые системы) — один из лучших бесплатных инженерных курсов в интернете.

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

GFS (Google File System) — архитектура с одним главным узлом, распределение чанков и работа с eventual consistency при больших нагрузках на добавление данных.

Raft — выбор лидера, репликация журнала и инварианты безопасности. Алгоритм разбирается намного доступнее, чем Paxos.

ZooKeeper — координация без блокировок, системы с преобладанием чтения, линейно согласованные записи и eventual consistency для чтений через watches.

Spanner — глобально распределённые транзакции, двухфазный commit поверх Paxos и использование TrueTime (атомные часы + GPS) для обеспечения внешней согласованности.

Также в курсе разбираются MapReduce, Spark, Frangipani, Memcached от Facebook и другие системы.

Если хотите выйти за пределы поверхностного system design и понять, как внутри устроены реальные распределённые хранилища и системы консенсуса, этот курс — настоящий клад.

Плейлист: https://youtube.com/playlist?list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2🤔2👍1
Используйте Files.isSameFile(a, b), чтобы проверить, указывают ли два пути на один и тот же файл.

Path.equals сравнивает только текстовое представление пути.
isSameFile проверяет реальный файл и учитывает симлинки.

#Java #Files

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
В Spring Boot 4 больше нет поддержки Undertow — теперь рекомендуется использовать Tomcat или Jetty.

Что изменилось:

* Undertow несовместим с Servlet 6.1.
* Вместо starter-undertow используйте Tomcat (по умолчанию) или Jetty.
* Не разворачивайте приложения на Spring Boot 4 в старых сервлет-контейнерах.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2
Лучшие инженеры не изучают распределённые системы по поверхностным пересказам. Они сразу обращаются к фундаментальным научным статьям. Чтение таких работ помогает понять, почему системы спроектированы именно так, а не просто научиться ими пользоваться.

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

1. The Google File System (2003)

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

Ссылка: https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf

2. Dynamo: Amazon’s Highly Available Key-Value Store (2007)

Почему стоит прочитать: исчерпывающий разбор того, как пожертвовать согласованностью ради высокой доступности — AP в теореме CAP. В статье изложены ключевые паттерны, лежащие в основе масштабируемых NoSQL-хранилищ: консистентное хеширование, векторные часы, gossip-протоколы и настраиваемый кворум для операций чтения и записи.

Ссылка: https://allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf

3. In Search of an Understandable Consensus Algorithm (Raft) (2014)

Почему стоит прочитать: Paxos печально известен тем, насколько сложно его понять и корректно реализовать, тогда как Raft делает концепцию реплицируемых конечных автоматов более доступной. Алгоритм разбивает задачу консенсуса на отдельные подзадачи, которые легко анализировать: выбор лидера, репликацию журнала и обеспечение безопасности.

Ссылка: https://raft.github.io/raft.pdf

4. Spanner: Google’s Globally-Distributed Database (2012)

Почему стоит прочитать: статья показывает, как добиться строгой сериализуемости и внешней согласованности между дата-центрами по всему миру. Секрет — API Google TrueTime, ограничивающий неопределённость времени с помощью синхронизированных GPS-приёмников и атомных часов.

Ссылка: https://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf

5. Time, Clocks, and the Ordering of Events in a Distributed System

Почему стоит прочитать: на физическое время нельзя полагаться при работе с независимыми узлами. Лэмпорт вводит логические часы и фундаментальное отношение «произошло до» (happened-before), лежащее в основе упорядочивания событий в современных распределённых сетях.

Ссылка: https://amturing.acm.org/p558-lamport.pdf

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3
Уже очевидно, что ВАЙБКОДИНГ — главный навык ближайших лет

Посмотрите сами. ИИ уже забирает на себя работу целых команд: пишет код, закрывает задачи джунов и позволяет стартапам запускать продукты в 2–3 раза меньшим составом. То, на что раньше нужны были несколько разработчиков, сегодня всё чаще делает один человек с ИИ-агентами.

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

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

Подписывайтесь, нас уже 50 тысяч: @vibecoding_tg
💊10
SELECT FOR UPDATE в PostgreSQL на самом деле выполняет запись.

На heap-странице Postgres у каждого tuple есть заголовок с метаданными этой записи.

Когда транзакция выполняет SELECT FOR UPDATE, у найденных строк обновляется заголовок: они помечаются как заблокированные, а в xmax записывается идентификатор транзакции, которая установила блокировку.

В частности, в заголовке infomask выставляются два бита:

HEAP_XMAX_EXCL_LOCK и HEAP_XMAX_LOCK_ONLY.

Из-за этого страница становится dirty, а изменение также попадает в WAL. Позже WAL может быть отправлен на standby-реплику.

Сама dirty-страница затем может быть сброшена на диск фоновым процессом.

После коммита блокировка снимается.

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

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👀2
Тюнинг производительности Spring Boot.

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

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍4
JetBrains переносит возможности IntelliJ IDEA в другие редакторы.

Новое расширение Java & Kotlin by IntelliJ IDEA уже доступно в предварительной версии для VS Code и всех его форков, включая Cursor и Antigravity.

Возможности IntelliJ IDEA — теперь в любом редакторе, где вы работаете. 🙂‍↔️

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Spring Boot 4: проверка null-safety через JSpecify.

Более понятные контракты @Nullable / @NonNull.

Лучший статический анализ в IDE.

#SpringBoot4 #JSpecify

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM