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

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Приложения и базы данных, которые стоят за ними.

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
Please open Telegram to view this post
VIEW IN TELEGRAM
9🤔3
This media is not supported in your browser
VIEW IN TELEGRAM
Бэкенд-разработчик пытается написать CSS.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁18
Если честно, 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
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Настоящая находка среди репозиториев.

В нём собраны все основные шаги по защите и усилению безопасности Linux-сервера.

Если у вас есть VPS, стоит сохранить:

https://github.com/imthenachoman/How-To-Secure-A-Linux-Server

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
5
🚀 Spring Boot 4: отключение логов в консоль одним свойством.

logging.console.enabled=false

Полезно в контейнерах, где логи собираются только из файлов или через OTLP

При необходимости можно оставить файловые или удалённые appenders

#SpringBoot4 #Logging

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
now() — это не «сейчас», а скорее «когда-то было сейчас».

На самом деле now() возвращает время начала текущей транзакции. Реальные часы продолжают идти, но каждый последующий вызов now(), CURRENT_TIMESTAMP, CURRENT_TIME и CURRENT_DATE внутри этой же транзакции всё равно возвращает одно и то же время.

В Postgres это называется transaction-frozen timestamp.

То есть INSERT на 10 000 строк с created_at DEFAULT now() получит один и тот же timestamp для всех строк, а не 10 000 слегка отличающихся значений.

Три варианта времени:

now() — традиционный для Postgres вариант, хотя он есть и в других СУБД, но это не стандарт SQL. В стандарте SQL используется CURRENT_TIMESTAMP. В Postgres также есть transaction_timestamp(), который работает так же, как now(), но хотя бы честно говорит об этом своим названием.

statement_timestamp() обновляется один раз на каждый SQL-запрос. Это полезно внутри длинной транзакции, когда вам нужно фиксировать время выполнения отдельных команд, но не переходить к реальному системному времени.

clock_timestamp() — единственный timestamptz, который меняется даже во время выполнения одного SQL-запроса.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍2
Java: не используйте Thread.sleep() для ожидания выполнения работы — используйте синхронизацию или scheduler.

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

Для координации используйте wait() / notify() или CountDownLatch.

Для повторяющихся задач используйте ScheduledExecutorService.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Бесплатная онлайн-книга «Think Java»

В «Think Java» они так же мягко и понятно проводят новичков от самых азов переменных, циклов и массивов к объектам, классам и полноценному пониманию того, как думать как программист

Читается легко, рабочие лаконичные примеры, а структура шаг за шагом раскрывает язык, не перегружая деталями. Отличный старт, если вы хотите войти в программирование через Java и при этом прокачать само мышление, а не просто синтаксис 📖

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Отключаем логирование в консоль всего одним параметром.

logging.console.enabled=false

Полезно в контейнерах, где логи собираются только из файлов или через OTLP

При необходимости можно оставить file appenders или remote appenders

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
1
JavaScript (or Java) 🚨

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁18🤣102
Spring Boot 4: observability для Redis теперь использует Observation API.

Метрики и spans для Redis-команд
Можно использовать вместе с OpenTelemetry Starter

#SpringBoot4 #Redis

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2
Java Design Patterns — огромная коллекция паттернов проектирования на Java

Open-source репозиторий с практическими реализациями Design Patterns на Java. Здесь не просто теория: каждый паттерн сопровождается исходным кодом, описанием и примерами использования.

Внутри есть классические Factory, Builder, Adapter, Strategy, Observer, а также CQRS, Event Sourcing, Circuit Breaker, Hexagonal Architecture, Clean Architecture, Dependency Injection, Event-Driven Architecture и множество других архитектурных паттернов.

Хороший справочник для изучения архитектуры, подготовки к собеседованиям и поиска готовых подходов для реальных Java-проектов. Репозиторий собрал уже 94K+ звёзд на GitHub.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Дикая Java — подборка кода, который заставит усомниться в реальности

Разбор необычных и откровенно безумных трюков на Java: Hello World, упакованный в одно число, подмена IntegerCache через Reflection API, безумная цепочка преобразований типов и рабочий код, спрятанный внутри обычного комментария.

Автор подробно показывает, почему всё это вообще работает на JVM, и разбирает механику каждого примера. В прод такое лучше не тащить, зато для понимания некоторых неочевидных особенностей Java — отличное чтиво.

https://habr.com/ru/articles/886080/

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
🚀 Spring Boot 4: Test Starters теперь следуют схеме spring-boot-starter-*-test.

Для каждой технологии есть соответствующий test starter
Они транзитивно подключают spring-boot-starter-test
Например, для тестирования Spring Security нужен spring-boot-starter-security-test

#SpringBoot4 #Testing

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Те, кто критикует Java, часто думают, что язык до сих пор такой же, каким был в 2000-х.

Современный Java — это уже совсем другой язык, который стал гораздо лучше благодаря новым возможностям синтаксиса и API.

Только скажите, что это не выглядит просто и красиво.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Большая коллекция готовых и протестированных сниппетов кода

Внутри собраны компактные примеры на Java 21: алгоритмы, работа с коллекциями, строками, массивами, файлами, датами и другие часто встречающиеся задачи.

Каждый пример рассчитан на то, чтобы разобраться в нём буквально за 30 секунд — удобно держать под рукой как шпаргалку.

https://github.com/iluwatar/30-seconds-of-java

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Как превратить VS Code в полноценную IDE для Java-разработки — пошаговый гайд по настройке среды практически с нуля.

Автор показывает, какие расширения поставить для Java и Spring Boot, как настроить Maven/Gradle, debugging, SonarLint, Git, Docker и Kubernetes, а также перенести привычные хоткеи и внешний вид из IntelliJ IDEA.

Полезно, если хотите попробовать VS Code как альтернативу IDEA и собрать среду разработки полностью под себя.

https://habr.com/ru/companies/cdek_blog/articles/811631/

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Это единственный сайт, который вам реально нужен, чтобы хорошо освоить Docker.

Он даст вам намного больше, чем случайные плейлисты по Docker на YouTube.

И всё это полностью бесплатно — больше 11 часов практики и упражнений.

https://learndocker.online

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
💡 Java: если переопределяете equals(), всегда переопределяйте и hashCode().

Равные объекты должны иметь одинаковый hash code
Иначе HashSet и HashMap могут не находить совпадения

#Java #OOP

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4
Вопрос по Java:

Что вернёт этот запрос?

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Варианты:
Anonymous Quiz
17%
A
68%
B
11%
C
3%
D