|
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
rss_habr
Чувак, где моя черепаха?Понедельник, 08 Августа 2022 г. 20:40 (ссылка)
Как написать программу, чтобы победить на конкурсе плохого кода? Этот вопрос я задал сам себе, когда прочёл о необычном челлендже на форуме reddit. Да, вы правильно поняли. Это статья не о чистом коде и правильных тестах. Но здесь не будет и речи о плохом, заурядно плохом коде, том коде, который мы очень часто видим в наших проектах. Я расскажу об экстремальном, невообразимом, гениально плохом коде, коде, который использует те возможности джавы, о которых вы, скорее всего, и не догадывались, и те приёмы, которые вы никогда не встретите в обычных проектах. Сможете ли вы использовать эти приёмы на практике? Думаю, нет. Если вы прагматичный человек, то сэкономите своё время и остановитесь. Не читайте эту статью. Однако если вы хотите немного отвлечься от повседневной рутины, увидеть и узнать что-то новое о нашем любимом языке Java, - милости просим! Читать далееhttps://habr.com/ru/post/681488/?utm_source=habrahabr&utm_medium=rss&utm_campaign=681488
rss_habr
Юнга, стоп, у нас кончились ресурсы. Или как мы оптимизировали наши микросервисыПонедельник, 08 Августа 2022 г. 20:07 (ссылка)
Всем привет. Как вы все знаете после определенных событий у нас случился ресурсный кризис. И появился запрос на оптимизацию потребляемых ресурсов. Темой и станет оптимизация потребления ресурсов микросервисов и уменьшение времени выполнения наших запросов. Читать далееhttps://habr.com/ru/post/681484/?utm_source=habrahabr&utm_medium=rss&utm_campaign=681484
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
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
rss_habr
Быстро сжимаем, быстро пишем и читаем! На JavaЧетверг, 04 Августа 2022 г. 14:20 (ссылка)
В ходе разработки IDE 1С:Enterprise Development Tools у нас возникла необходимость быстро оперировать с довольно большими (несколько гигабайтов) объемами данных. Если не вдаваться в детали: при интерактивной работе пользователя с IDE при переключении с одной ветки репозитория на другую нам нужно сохранить текущее состояние проекта и загрузить состояние проекта из новой ветки. Детали (и объяснение – почему счет идет на гигабайты) — в конце статьи, непосредственно к Java это отношения не имеет, кому интересно – прочтет. Ну а что касается Java, то задача выглядит так: быстро сохранить несколько гигабайт информации на диск и быстро считать несколько гигабайт информации с диска. Как мы решали эту задачу, с какими трудностями столкнулись и как их преодолели – под хабракатом. https://habr.com/ru/post/680838/?utm_source=habrahabr&utm_medium=rss&utm_campaign=680838
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
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
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
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
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
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
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
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
rss_habr
Получение generic-типа в runtimeВоскресенье, 17 Июля 2022 г. 11:17 (ссылка)
и spring в него заинжектит все объекты контекста, которые реализуют интерфейс BeanPostProcessor. Можно написать и так:
Можно написать даже так: Читать дальше → https://habr.com/ru/post/588252/?utm_source=habrahabr&utm_medium=rss&utm_campaign=588252
|
LiveInternet.Ru |
Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат О проекте: помощь|контакты|разместить рекламу|версия для pda |