🐧 Пингвин, покоривший мир: история взлета Linux – ОС, управляющей 96% серверов
В 1991 году на компьютере с 4 мегабайтами памяти родилась программа, которая сегодня управляет большей частью интернета, смартфонами и даже космическими аппаратами. Это история Linux, рассказанная одним из первых свидетелей.
➡️ Читать статью
➡️ Зеркало
В 1991 году на компьютере с 4 мегабайтами памяти родилась программа, которая сегодня управляет большей частью интернета, смартфонами и даже космическими аппаратами. Это история Linux, рассказанная одним из первых свидетелей.
➡️ Читать статью
➡️ Зеркало
Please open Telegram to view this post
VIEW IN TELEGRAM
— Убирает тонны шаблонного кода (геттеры, сеттеры, toString(), equals(), hashCode()).
— Делает код компактнее и читабельнее.
— Ускоряет разработку, снижает когнитивную нагрузку.
— Скрывает важную логику, что усложняет отладку и поддержку.
— Добавляет магию и делает код зависимым от нестандартных аннотаций.
— Может вызывать проблемы с сериализацией и совместимостью при обновлениях.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔹 JEP-ы в фокусе:
— JEP 450: компактные заголовки объектов
JEP направлен на уменьшение размера заголовков объектов с 96–128 до 64 бит на 64-битных платформах, перешел в статус Proposed to Target. Это изменение обещает снизить объем используемой кучи и повысить эффективность работы приложений.
— JEP 484: API для файлов классов
В JDK 24 планируется внедрение JEP 484, который предоставит стандартный API для обработки файлов классов.
🔹 Релизы:
— Выпуск IntelliJ IDEA 2024.3 EAP 5: gоддержка функций Kotlin 2.1, улучшенная подсветка выделенных слов во всем файле, новые иконки и другое.
— Kora 1.1.20: улучшения и исправления способов настройки компонентов gRPC, ошибок обработки Cassandra UDT типа для списков, работа дискриминаторов моделей в OpenAPI-генераторе
— Native Build Tools 0.10.5: поддержка единого reachability-metadata.json, исправление ошибки Gradle-плагина.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔹 @Transactional — оборачивает метод в транзакцию
@Transactional
public void saveData(Entity entity) {
repository.save(entity);
}
Автооткат при исключениях, но не ловит checked-исключения без rollbackFor = Exception.class.
🔹 @Async — делает метод асинхронным
@Async
public CompletableFuture<String> fetchData() {
return CompletableFuture.completedFuture("Hello");
}
Использует TaskExecutor, но не забываем про конфиг @EnableAsync.
🔹 @RestControllerAdvice — глобальный хендлер ошибок
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
public ResponseEntity<String> handleException(RuntimeException ex) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(ex.getMessage());
}
}
Вместо тонны try-catch обрабатываем ошибки централизованно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
Как Spring обрабатывает исключения в @Transactional методе?
Anonymous Quiz
46%
Любое исключение приводит к откату транзакции
7%
Транзакция не откатывается автоматически, если не вызвать TransactionStatus.setRollbackOnly()
40%
Транзакция откатывается только при возникновении RuntimeException или Error
3%
Spring создаёт новую транзакцию при каждом исключении, чтобы попытаться выполнить операцию повторно.
4%
Если метод @Transactional выбрасывает исключение, Spring закрывает весь контекст приложения.
❗️Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
job.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
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
Часто приходится конвертировать Entity -> DTO или DTO -> Model. Вот основные способы, как это сделать.
Простой, но не очень масштабируемый.
public class UserMapper {
public static UserDto toDto(User user) {
return new UserDto(user.getId(), user.getName());
}
public static User toEntity(UserDto dto) {
return new User(dto.getId(), dto.getName());
}
}
Генерирует код на этапе компиляции → быстрее, чем рефлексия.
@Mapper
public interface UserMapper {
UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);
UserDto toDto(User user);
User toEntity(UserDto dto);
}
Просто, но медленнее из-за рефлексии.
ModelMapper modelMapper = new ModelMapper();
UserDto dto = modelMapper.map(user, UserDto.class);
Используем record вместо классов DTO для упрощения кода.
record UserDto(Long id, String name) {}
UserDto dto = new UserDto(user.getId(), user.getName());
Если нужно преобразовать список объектов.
List<UserDto> dtos = users.stream()
.map(UserMapper::toDto)
.collect(Collectors.toList());
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Обнаружили в профилировщике тормозящий код? Попробуйте этот промпт, чтобы AI помог вам оптимизировать его:
📝 Промпт:
Analyze the following Java code and suggest optimizations for better performance. Identify bottlenecks, improve memory usage, and recommend alternative approaches.
// Вставьте ваш код здесь
— Добавьте
Refactor it using Streams and functional programming
, если хотите более элегантный код.— Добавьте
Optimize it for multi-threading and concurrency
, если ваш код нагружен задачами.— Добавьте
Suggest a profiling strategy to measure performance issues
, если нужна диагностика.Please open Telegram to view this post
VIEW IN TELEGRAM
В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи.
⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии.
❓Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас.
— Зайдите в описание канала с телефона и нажмите кнопку Discuss / Чат
— Нажмите Join / Присоединиться
— Сразу обратите внимание на сообщение от бота Shieldy
— Решите простой пример и отправьте ответ в чат
После этого бот отправит приветственное сообщение и вы сможете оставлять комментарии. Эту проверку нужно пройти только один раз при вступлении в чат.
❗️ Если вас все-таки забанили
— Это временная блокировка на несколько минут
— Подождите и попробуйте зайти позже, бот снова отправит вам капчу
Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение.
👾 Спасибо, что активно участвуете в обсуждении наших постов!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Знакомы с отдельными сочетаниями клавиш для рефакторинга, такими как
Shift + F6
или Ctrl + Alt + V
? Сочетание
Ctrl + Alt + Shift + T
открывает перед вами целый спектр возможностей рефакторинга в одном окне.🔹 Зачем это нужно
— Открывает меню, предоставляющее доступ к различным видам рефакторинга, таким как переименование, перемещение, изменение сигнатуры, извлечение метода, переменной, константы и другие.
— В зависимости от выделенного фрагмента, IntelliJ IDEA предложит только те варианты рефакторинга, которые применимы к текущему элементу кода.
🔹 Как использовать
1. Выделите часть кода, которую хотите рефакторить (например, переменную, метод или класс).
2. Нажмите
Ctrl + Alt + Shift + T
.3. Выберите необходимый тип рефакторинга из появившегося меню с помощью стрелок → Enter.
4. Следуйте дальнейшим инструкциям IDE для завершения процесса рефакторинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Проверьте свою внимательность и знание IT терминов. Пишите в комментариях сколько слов вам удалось найти и под спойлером указывайте сами слова.
Слова зашифрованы только по горизонтали. Не все слова связаны с Java, но все вам знакомы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔹 Актуальные технологии в 2025 году
Анализ предстоящих трендов в IT-индустрии на 2025 год, включая ожидания от релизов Java 25 и .NET, а также влияние искусственного интеллекта на инструменты разработки и продукты.
🔹 Переезд в США — личный опыт
Личный опыт Java-разработчика, переехавшего в США по грин-карте. Статья будет полезна тем, кто задумывается о переезде или готовится к эмиграции. Она охватывает этапы от получения визы до адаптации на новом месте.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Thread может находиться в одном из следующих состояний (Thread.State):
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
Что будет результатом кода?
👍🏼 — One
🔥 — RuntimeException
👾 — Ошибка компиляции
⚡️ — null
🐸 Библиотека задач по Java
👍🏼 — One
🔥 — RuntimeException
👾 — Ошибка компиляции
⚡️ — null
Please open Telegram to view this post
VIEW IN TELEGRAM