Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 74 сообщений
Cообщения с меткой

сезон java - Самое интересное в блогах

«  Предыдущие 30 Следующие 30  »
rss_habr

Интервью Java-специалистов: тонкости проведения и оценки

Вторник, 09 Августа 2022 г. 11:35 (ссылка)

Всем привет! Меня зовут Алексей, я занимаюсь автоматизацией тестирования на Java/Kotlin в Tele2. Уже около полутора лет принимаю участие в найме новых сотрудников в роли технического интервьюера.

В статье поделюсь с вами своим опытом и расскажу о том, как мы проводим собеседования и на что обращаем внимание при отборе кандидатов. Так же дам советы как лучше подготовиться к интервью и быстро получить желаемый оффер на трудоустройство.

Читать далее

https://habr.com/ru/post/681570/?utm_source=habrahabr&utm_medium=rss&utm_campaign=681570

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Чувак, где моя черепаха?

Понедельник, 08 Августа 2022 г. 20:40 (ссылка)

Как написать программу, чтобы победить на конкурсе плохого кода? Этот вопрос я задал сам себе, когда прочёл о необычном челлендже на форуме reddit. Да, вы правильно поняли. Это статья не о чистом коде и правильных тестах. Но здесь не будет и речи о плохом, заурядно плохом коде, том коде, который мы очень часто видим в наших проектах. Я расскажу об экстремальном, невообразимом, гениально плохом коде, коде, который использует те возможности джавы, о которых вы, скорее всего, и не догадывались, и те приёмы, которые вы никогда не встретите в обычных проектах. Сможете ли вы использовать эти приёмы на практике? Думаю, нет. Если вы прагматичный человек, то сэкономите своё время и остановитесь. Не читайте эту статью. Однако если вы хотите немного отвлечься от повседневной рутины, увидеть и узнать что-то новое о нашем любимом языке Java, - милости просим!

Читать далее

https://habr.com/ru/post/681488/?utm_source=habrahabr&utm_medium=rss&utm_campaign=681488

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Юнга, стоп, у нас кончились ресурсы. Или как мы оптимизировали наши микросервисы

Понедельник, 08 Августа 2022 г. 20:07 (ссылка)

Всем привет. Как вы все знаете после определенных событий у нас случился ресурсный кризис. И появился запрос на оптимизацию потребляемых ресурсов.

Темой и станет оптимизация потребления ресурсов микросервисов и уменьшение времени выполнения наших запросов.

Читать далее

https://habr.com/ru/post/681484/?utm_source=habrahabr&utm_medium=rss&utm_campaign=681484

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Дюк, вынеси мусор! — 6. Shenandoah GC

Понедельник, 08 Августа 2022 г. 08:52 (ссылка)

Несмотря на то, что мы уже успели достаточно подробно рассмотреть целых шесть сборщиков мусора (Serial, Parallel, CMS, G1, ZGC, Epsilon), у OpenJDK еще есть, что нам предложить. Эта статья посвящена Shenandoah, тому самому сборщику, "который смог" (с таким слоганом он обычно подается).

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

Посмотреть, раз есть на что

https://habr.com/ru/post/681256/?utm_source=habrahabr&utm_medium=rss&utm_campaign=681256

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Spring Test Containers как бины

Воскресенье, 07 Августа 2022 г. 12:58 (ссылка)

TestContainers это отличный инструмент, позволяющий тестировать свой код в prod-like окружении.

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

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

Достигнем этого при помощи кастомизации тестового контекста + всеми любимого BeanFactoryBostProcessor'а.

Читать далее

https://habr.com/ru/post/681232/?utm_source=habrahabr&utm_medium=rss&utm_campaign=681232

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Быстро сжимаем, быстро пишем и читаем! На Java

Четверг, 04 Августа 2022 г. 14:20 (ссылка)

В ходе разработки IDE 1С:Enterprise Development Tools у нас возникла необходимость быстро оперировать с довольно большими (несколько гигабайтов) объемами данных. Если не вдаваться в детали: при интерактивной работе пользователя с IDE при переключении с одной ветки репозитория на другую нам нужно сохранить текущее состояние проекта и загрузить состояние проекта из новой ветки. Детали (и объяснение – почему счет идет на гигабайты) — в конце статьи, непосредственно к Java это отношения не имеет, кому интересно – прочтет. Ну а что касается Java, то задача выглядит так: быстро сохранить несколько гигабайт информации на диск и быстро считать несколько гигабайт информации с диска. Как мы решали эту задачу, с какими трудностями столкнулись и как их преодолели – под хабракатом.



image
Читать дальше →

https://habr.com/ru/post/680838/?utm_source=habrahabr&utm_medium=rss&utm_campaign=680838

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Дюк, вынеси мусор! — Часть 4

Воскресенье, 31 Июля 2022 г. 13:06 (ссылка)

С тех пор, как мы рассматривали принципы работы различных сборщиков мусора (раз, два, три), входящих в состав виртуальной машины Java HotSpot, прошел уже не один год. За это время было разработано еще несколько сборщиков, один из которых — ZGC — достаточно давно вышел из разряда экспериментальных и начиная с 15-й версии OpenJDK может похвастаться статусом production ready.

Раз есть такой хороший повод, давайте продолжим цикл, взяв сегодня на рассмотрение этот сборщик.

А давайте

https://habr.com/ru/post/680038/?utm_source=habrahabr&utm_medium=rss&utm_campaign=680038

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Статический анализ кода в современной Java-разработке

Суббота, 30 Июля 2022 г. 19:59 (ссылка)

Сегодня я хочу затронуть тему, которая будет полезна как Java-разработчикам, так и начинающим тех- и тимлидам. Я расскажу о том, как добиться высокого качества кода на вашем Java проекте и перестать волноваться о стилях кодирования.

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

Далее я покажу своё видение того, какие инструменты и в какой конфигурации должны применяться на Java проектах, а особенно в микросервисах.

Читать далее

https://habr.com/ru/post/680018/?utm_source=habrahabr&utm_medium=rss&utm_campaign=680018

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Java, реактивное программирование, Reactor, Spring Cloud Function, Streams, etc…

Пятница, 29 Июля 2022 г. 05:40 (ссылка)



Реактивное программирование в Java — полезный инструмент со множеством применений. Его суть в асинхронной обработке поступающих сообщений, и есть несколько вариантов реализации этого механизма.



И Java в целом, и Spring Framework в частности подразумевают несколько аспектов реактивного программирования. Это касается Spring WebFlux в качестве замены Spring MVC. Также можно использовать Project Reactor в Java непосредственно, без Spring Framework. Однако Spring предоставляет средства декларативного определения функции Spring Cloud Function и средства интеграции приложений с использованием внешних очередей в рамках проекта Spring Cloud Stream. В комплексе эти средства позволяют широко использовать реактивное программирование, упрощая создание, размещение, масштабирование и обслуживание приложений.



Помимо создания новых приложений, Spring Cloud Function/Stream позволяют модифицировать и существующие приложения, облегчая жизнь разработчикам в реализации горизонально масштабируемых сервисов.



Статья является кратким обзором компонентов Spring Framework, позволяющих реализовывать программы в терминах функций асинхронной обработки сообщений. И ориентирована на разработчиков, уже знакомых со Spring Framework, но ещё не имеющих опыта построения реактивных приложений с декларативным управлением функциями-компонентами.

Читать дальше →

https://habr.com/ru/post/679750/?utm_source=habrahabr&utm_medium=rss&utm_campaign=679750

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Vector API в Java: краткий обзор и тестирование

Четверг, 28 Июля 2022 г. 09:57 (ссылка)

Некоторое время назад попалась на глаза статья про Vector API в Java.



Прочитал, заинтересовался. Наконец, недавно дошли руки посмотреть, что же это такое и как работает.



Результаты немного неоднозначные.

Читать дальше →

https://habr.com/ru/post/679492/?utm_source=habrahabr&utm_medium=rss&utm_campaign=679492

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Варианты использования Java ML библиотек совместно с Spring, Docker, Spark, Rapids, CUDA

Вторник, 27 Июля 2022 г. 01:37 (ссылка)

В данной статье рассматривается способ использования GPU nVidia с технологией CUDA в Docker-контейнерах для распределенной тренировки моделей машинного обучения на нескольких машинах. Цель статьи - показать вариант использования Big Data Tool Apache Spark в Docker-контейнерах, совместно с акселератором GPU вычислений Rapids на устройствах nVidia CUDA, с применением библиотек DJL, Spark ML, XGBoost, в приложении Spring Boot на Java 8 (требование Rapids), на нескольких машинах под управлением ОС Windows 10 Pro для решения задачи тренировки моделей машинного обучения в распределенной системе.

Читать далее

https://habr.com/ru/post/679248/?utm_source=habrahabr&utm_medium=rss&utm_campaign=679248

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

К микросервисам через reverse engineering и кодогенерацию

Вторник, 26 Июля 2022 г. 12:00 (ссылка)

Разрабатывая информационную систему с нуля, мы можем выбрать практически любой вариант технологии и архитектуры в целом, в том числе — принцип взаимодействия частей системы. Но что делать, если система уже есть и у неё довольно богатая история? Как большую энтерпрайз систему, которая развивалась в режиме монолита, разделить на микросервисы и организовать взаимодействие между ними?

Часто основная сложность заключается в том, что нужно одновременно поддерживать уже существующий код монолита и параллельно внедрять новые принципы и подходы. В статье я расскажу, как мы в Wrike, используя reverse engineering и немного кодогенерации, реализовали первые шаги по выделению отдельных микросервисов и запустили первый «почти настоящий» BFF-сервис в рамках нашего монолита.

Читать далее

https://habr.com/ru/post/678208/?utm_source=habrahabr&utm_medium=rss&utm_campaign=678208

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Нормализуем логи OpenFeign

Понедельник, 25 Июля 2022 г. 19:01 (ссылка)

Стандартный логгер OpenFeign предоставляет весьма неудобный подход в логировании коммуникаций — он записывает запрос отдельно от ответа, причём каждый заголовок и тело - это отдельная строка логов.

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

Решение ‘Normalized Logger’ нацелено исправить этот изъян - этот логгер собирает в одну запись будущего лога запрос и ответ - теперь они не будут разбросаны.

Читать далее

https://habr.com/ru/post/678916/?utm_source=habrahabr&utm_medium=rss&utm_campaign=678916

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Производительность: нюансы против очевидностей. JDK edition

Вторник, 19 Июля 2022 г. 15:00 (ссылка)

Привет, это продолжение статьи, в которой я разбирал разные неочевидные вещи из мира производительности. В этот раз будем копать ещё глубже, хоть и начнём с относительно простых примеров. И да, в этой статье будет много интересного про строки. Да, несмотря на "Катехихис j.l.String", "The Lord of the Strings: Two Scours" и несколько моих статей (раз, два, три, четыре) там всё ещё есть куда копать :)

Читать далее

https://habr.com/ru/post/672146/?utm_source=habrahabr&utm_medium=rss&utm_campaign=672146

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Получение generic-типа в runtime

Воскресенье, 17 Июля 2022 г. 11:17 (ссылка)





В Java 5 появились generic-типы, а вместе с ним и концепция type erasure, которая буквально означает стирание информации о generic-типе после компиляции. Действительно, во многих случаях это просто синтаксический сахар, помогающий писать типо-безопасный код на уровне компиляции, и в runtime с такими типами работать нельзя. Например, невозможно получить тип T внутри ArrayList, поэтому он в своей реализации создает массив Object[], а не T[] для хранения элементов.



Однако, в ряде случаев это очень даже возможно. Например, можно объявить поле

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanPostProcessor;
...
@Autowired
private Set beanPostProcessors;


и spring в него заинжектит все объекты контекста, которые реализуют интерфейс BeanPostProcessor.



Можно написать и так:

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
...
List strings = new ObjectMapper()
.readValue("[1, 2, 3]", new TypeReference<>() {});
// все элементы strings - строки (не Integer и не Long)
List ints = new ObjectMapper()
.readValue("[1, 2, 3]", new TypeReference<>() {});
// все элементы ints - Integer (не String и не Long)


Можно написать даже так:
Читать дальше →

https://habr.com/ru/post/588252/?utm_source=habrahabr&utm_medium=rss&utm_campaign=588252

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

«  Предыдущие 30 Следующие 30  »

<сезон java - Самое интересное в блогах

Страницы: 1 [2] 3 4 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda