😺🐙🧼 Сам себе 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
Уверены, что знаете Java на отлично? Проверьте себя на этих 10 каверзных вопросах, которые могут встретиться на собеседовании или просто сломать код.
Пройдите тест и узнайте, насколько знаете тонкости языка.
🔗 Пройти тест
Please open Telegram to view this post
VIEW IN TELEGRAM