Please open Telegram to view this post
VIEW IN TELEGRAM
😺🐙🧼 Сам себе GitHub: как работать с чистым Git-репозиторием
Git — мощная система контроля версий, которую обычно используют через платформы вроде GitHub и GitLab. Однако Git сам по себе не требует веб-интерфейсов и облачных сервисов. Многие разработчики предпочитают работать с чистым Git-репозиторием, размещенным на собственном сервере.
➡️ В этой статье мы рассмотрим, почему это удобно, и как эффективно отправлять патчи в проекты, использующие этот подход.
🐸 Библиотека программиста
Git — мощная система контроля версий, которую обычно используют через платформы вроде GitHub и GitLab. Однако Git сам по себе не требует веб-интерфейсов и облачных сервисов. Многие разработчики предпочитают работать с чистым Git-репозиторием, размещенным на собственном сервере.
➡️ В этой статье мы рассмотрим, почему это удобно, и как эффективно отправлять патчи в проекты, использующие этот подход.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека собеса по Java | вопросы с собеседований
JIT (Just-In-Time) компилятор — это компонент JVM, который
JIT компилирует только те части кода, которые
Please open Telegram to view this post
VIEW IN TELEGRAM
Есть ли у вас в арсенале библиотека, тулза или приём, который вы стабильно используете, но редко видите в чужом коде? Что-то, что реально экономит время или упрощает жизнь/спасает прод, но почему-то не на слуху.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🤦♂️ Я забил на споры о микросервисах с архитекторами, и вот почему
С момента появления концепции микросервисов прошло уже несколько лет. За это время появилось много споров о её эффективности.
Зачем спорить о микросервисах, если можно просто посмотреть на факты? Давайте разберёмся, что действительно важно
➡️ Читать статью
💬 Как вы относитесь к микросервисам? Использовали ли вы их в своих проектах? Ждём ваши комментарии 👇
🐸 Библиотека devops'a
С момента появления концепции микросервисов прошло уже несколько лет. За это время появилось много споров о её эффективности.
Зачем спорить о микросервисах, если можно просто посмотреть на факты? Давайте разберёмся, что действительно важно
Please open Telegram to view this post
VIEW IN TELEGRAM
🎯 Как быстро настроить кеширование в Spring Boot
Писать кеш руками через HashMap или страдать с вручную настроенными TTL — скучно, долго и ненадёжно. В Spring Boot всё уже готово: включаем, настраиваем, и поехали!
1️⃣ Добавляем зависимость
2️⃣ Включаем кеширование
Добавляем простую аннотацию над главным классом приложения (или конфиг классом):
3️⃣ Кешируем методы сервисов
Используем аннотацию @Cacheable на тех методах, которые часто выполняются и редко меняются:
Теперь при повторном вызове метода с тем же параметром ответ прилетит мгновенно.
4️⃣ Настройка TTL и конфигурация кеша
В Spring Boot по умолчанию используется простой ConcurrentMap (без TTL). Если хочешь TTL и прочие плюшки, подключайте Caffeine:
Кеш будет жить максимум 10 минут и не разрастаться до бесконечности.
5️⃣ Очистка кеша
Если нужно принудительно почистить кеш после обновления данных, используем @CacheEvict:
💬 Хранили когда-нибудь кеш в мапе?
🐸 Библиотека джависта #буст
Писать кеш руками через HashMap или страдать с вручную настроенными TTL — скучно, долго и ненадёжно. В Spring Boot всё уже готово: включаем, настраиваем, и поехали!
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
ИЛИ
implementation 'org.springframework.boot:spring-boot-starter-cache'
Добавляем простую аннотацию над главным классом приложения (или конфиг классом):
@SpringBootApplication
@EnableCaching
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
Используем аннотацию @Cacheable на тех методах, которые часто выполняются и редко меняются:
@Service
public class UserService {
@Cacheable(value = "users", key = "#id")
public User getUserById(Long id) {
simulateSlowService();
return userRepository.findById(id).orElseThrow();
}
private void simulateSlowService() {
Thread.sleep(3000);
}
}
Теперь при повторном вызове метода с тем же параметром ответ прилетит мгновенно.
В Spring Boot по умолчанию используется простой ConcurrentMap (без TTL). Если хочешь TTL и прочие плюшки, подключайте Caffeine:
spring:
cache:
type: caffeine
caffeine:
spec: maximumSize=500,expireAfterAccess=10m
Кеш будет жить максимум 10 минут и не разрастаться до бесконечности.
Если нужно принудительно почистить кеш после обновления данных, используем @CacheEvict:
@CacheEvict(value = "users", key = "#id")
public void updateUser(Long id, User updatedUser) {
userRepository.save(updatedUser);
}
Please open Telegram to view this post
VIEW IN TELEGRAM
Джависты!
Проголосуйте за наш канал, и в сторис мы опубликуем топ материалов, которые должен прочитать каждый джавист.
➡️ Поддержать канал: https://yangx.top/boost/javaproglib
Проголосуйте за наш канал, и в сторис мы опубликуем топ материалов, которые должен прочитать каждый джавист.
Please open Telegram to view this post
VIEW IN TELEGRAM
💼⌛️ ТОП-5 причин, почему программист не может долго найти работу
Почему некоторые разработчики остаются "между работами" месяцы?
Не всегда дело в нехватке вакансий или «рынок просел». Часто дело в подходе к поиску проекта. Вроде бы есть опыт, стек, даже pet-проекты, но офферов всё нет.
Часто корень проблемы — неумение продать себя правильно. Отказ выполнять тестовые задания, считая их ненужными или обидными. Кроме того, нежелание рассматривать стажировки как стартовую площадку для получения опыта и расширения профессиональных связей также может замедлить процесс трудоустройства. И это далеко не все возможные причины.
🔗 Подробнее в статье
🐸 Библиотека джависта
Почему некоторые разработчики остаются "между работами" месяцы?
Не всегда дело в нехватке вакансий или «рынок просел». Часто дело в подходе к поиску проекта. Вроде бы есть опыт, стек, даже pet-проекты, но офферов всё нет.
Часто корень проблемы — неумение продать себя правильно. Отказ выполнять тестовые задания, считая их ненужными или обидными. Кроме того, нежелание рассматривать стажировки как стартовую площадку для получения опыта и расширения профессиональных связей также может замедлить процесс трудоустройства. И это далеко не все возможные причины.
Please open Telegram to view this post
VIEW IN TELEGRAM
Потеряли коммит или неудачно выполнили git reset. Или может быть, ваша ветка с важной фичей вдруг исчезла.
git bisect
🔹 Что делает
Используется для поиска конкретного коммита, который привел к багу или проблеме. Это словно бинарный поиск среди всех ваших коммитов, который помогает быстро и точно найти тот, который сломал ваш код.
🔹 Пример
1. Запустите команду
git bisect start
2. Укажите, какой коммит был рабочим (good), а какой с ошибкой (bad):
git bisect good <хэш коммита с рабочим кодом>
git bisect bad <хэш коммита с багом>
3. Git автоматически переключит вас на средний коммит. Протестируйте его и ответьте, был ли он хорошим или с багом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📦 Главные проблемы распределенных систем (и способы их решения)
Распределенные системы являются основой высоконагруженных веб-приложений, обеспечивая их масштабируемость, отказоустойчивость и высокую производительность. Однако их разработка сопряжена с рядом сложностей, включая сетевые сбои, трудности координации, угрозы безопасности и проблемы масштабирования.
➡️ В этой статье мы рассмотрим четыре ключевых вызова в разработке таких систем и эффективные методы их преодоления.
🐸 Библиотека программиста
Распределенные системы являются основой высоконагруженных веб-приложений, обеспечивая их масштабируемость, отказоустойчивость и высокую производительность. Однако их разработка сопряжена с рядом сложностей, включая сетевые сбои, трудности координации, угрозы безопасности и проблемы масштабирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎧 Что послушать — #подкаст
🔹 Javaswag #76
Дата выпуска: 24 февраля 2025
Ведущий: Дмитрий Волыхин
Гость: Сергей Куксенко
Продолжительность: 2 часа 3 минуты
Выпуск для тех, кто хочет понимать Java «до винтиков». Сергей Куксенко — инженер из Oracle и ветеран в области производительности Java — рассказывает, как устроены компиляторы, зачем Java нужно тестировать бенчмарками, и почему проект Loom может перевернуть представление об асинхронности.
🔹 Ключевые темы выпуска
00:04:39 — Опыт Сергея в Excelsior и старте с Java
00:10:47 — Работа с компиляторами в Intel
00:15:13 — Производительность Java в Oracle
00:26:01 — Почему случаются регрессии
00:39:50 — Как собрать бенчмарки, которые действительно работают
00:52:12 — Асинхронщина и проект Loom
01:03:08 — Теория очередей и производительность
01:09:42 — Loom: плюсы и минусы
01:24:43 — Полугодовые релизы и их влияние
01:50:10 — Kotlin vs Java
02:00:00 — Острые мнения про Agile
🔗 Слушать выпуск
🐸 Библиотека джависта #буст
🔹 Javaswag #76
Дата выпуска: 24 февраля 2025
Ведущий: Дмитрий Волыхин
Гость: Сергей Куксенко
Продолжительность: 2 часа 3 минуты
Выпуск для тех, кто хочет понимать Java «до винтиков». Сергей Куксенко — инженер из Oracle и ветеран в области производительности Java — рассказывает, как устроены компиляторы, зачем Java нужно тестировать бенчмарками, и почему проект Loom может перевернуть представление об асинхронности.
🔹 Ключевые темы выпуска
00:04:39 — Опыт Сергея в Excelsior и старте с Java
00:10:47 — Работа с компиляторами в Intel
00:15:13 — Производительность Java в Oracle
00:26:01 — Почему случаются регрессии
00:39:50 — Как собрать бенчмарки, которые действительно работают
00:52:12 — Асинхронщина и проект Loom
01:03:08 — Теория очередей и производительность
01:09:42 — Loom: плюсы и минусы
01:24:43 — Полугодовые релизы и их влияние
01:50:10 — Kotlin vs Java
02:00:00 — Острые мнения про Agile
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from IT Job Hub | Работа и вакансии в IT
Как найти страну, где работа в IT приносит не только достойный доход, но и удовольствие от жизни? В этой статье Ксения Кравченко собрала семь лучших направлений для релокации айтишников в 2025 году — от стабильных хабов до быстрорастущих техноцентров.
Что в статье:
Если вы задумываетесь о переезде или просто хотите знать, где IT-навыки особенно ценны — самое время заглянуть в подборку
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Java, которому более 25 лет, продолжает развиваться — добавлены records, sealed classes, улучшен switch, появилась структурная деструкция… Но встроенных tuples (кортежей) по-прежнему нет.
Если вы хотите вернуть из метода два значения — создавайте Pair, Map.Entry, или пишите собственный класс. Три значения? Добро пожаловать в ад. А в других языках это давно решено.
— Почему, по-вашему, в Java до сих пор нет встроенной поддержки кортежей?
— Нужны ли они вообще в Java?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔹 JavaOne 2025
С 18 по 20 марта в Redwood Shores, Калифорния, прошла конференция JavaOne. Среди ключевых тем — релиз Java 24, упрощение синтаксиса и минимизация шаблонного кода. Mala Gupta, Java Champion и представитель JetBrains, поделилась своими впечатлениями и подчеркнула важность сертификации для карьерного роста.
🔹 JPoint 2025
3–4 апреля в Москве состоялась конференция JPoint 2025. Среди докладов: оптимизация компилятора javac, микробенчмарки с JMH, расширения Quarkus и CQRS, многопоточная вставка данных в БД с использованием Spring и PostgreSQL. Конференция собрала более 1200 участников и стала площадкой для обсуждения актуальных трендов в Java-разработке.
🔹 Рейтинг языков программирования
По данным TIOBE за апрель 2025 года, Java занимает 4-е место в рейтинге языков программирования. Несмотря на конкуренцию со стороны Python, C++ и C, Java сохраняет свою популярность благодаря стабильности и широкому применению в корпоративной разработке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
Что будет результатом кода?
👍🏼 — Parent
🔥 — Child
👾 — ParentChild
⚡️ — RuntimeException
🐸 Библиотека задач по Java
👍🏼 — Parent
🔥 — Child
👾 — ParentChild
⚡️ — RuntimeException
Please open Telegram to view this post
VIEW IN TELEGRAM
Java-разработчик — от 220 000 ₽, удалёнка (Москва)
Java Tech Lead — от 400 000 ₽, удаленно (Москва)
Java разработчик (middle) — от 270 000 до 300 000 ₽, удалёнка (Москва)
Java разработчик (команда Supermarket) — от 350 000 ₽, гибрид (Москва)
Java Developer with AWS Cloud Expertise — от $2000, удалёнка (Сербия)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM