Обновить
155.16

Java *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Как мы сайт Альфа-Банка на митапе шатали и нам за это ничего не было

Время на прочтение3 мин
Охват и читатели2.9K

6 декабря мы провели митап Alfa Backend Stories на тему отказоустойчивости: поделились «весёлыми» историями про падения и убытки, поговорили о том, как смягчать последствия этих падений, как сэкономить, переехав с одной БД на другую, «в прямом эфире» пытались сломать сайт Альфа-Банка. 

Для тех, кто не смог прийти, прикладываем записи докладов (и ссылку на фотоотчёт по традиции).

Читать далее

Интеграция Primefaces в приложение на Spring Boot. Часть 3 — динамическое обновление контента страницы

Время на прочтение4 мин
Охват и читатели2.3K

Описывается пример интеграции библиотеки компонентов пользовательского интерфейса Primefaces, построенной на основе фреймворка JavaServer Faces (JSF), в MVC приложение на Spring Boot.

Первая часть

Вторая часть

Читать далее

Proxyless Service Mesh в gRPC Java-сервисах за 4 шага

Время на прочтение9 мин
Охват и читатели5.6K

Привет, Хабр! На связи Максим Чудновский @chudnovskiyи Александр Козлов @ZDragonиз СберТеха. Мы занимаемся развитием Platform V Synapse — облачной платформы, которая объединяет множество интеграционных шаблонов, в том числе классический стиль интеграции request-response через Service Mesh.

В этой статье хотим поговорить о Service Mesh в gRPC Java-сервисах: чем полезен подход, как реализовать его c помощью протокола xDS и с какими сложностями можно столкнуться.

Читать далее

Spring Cloud Config и обновление компонентов в рантайме

Время на прочтение8 мин
Охват и читатели13K

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

На проекте используется spring boot 2.6.4 и kotlin 1.5.31. Также для конфигурации сервисов используется spring cloud config server, где в качестве backend используются Git + Vault.

Читать далее

Топ-15 шпаргалок для программистов и WEB-разработчиков

Время на прочтение4 мин
Охват и читатели47K

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

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

Хватит разговоров, давайте перейдем к делу.

Читать далее

Не бойтесь использовать Gradle

Время на прочтение9 мин
Охват и читатели51K

Дорогие junior и все, кто занимается copy-past конфигов Gradle.

В этой статье я хочу простым языком рассказать вам о gradl'овой конфигурации сборки вашего проекта, чтобы вы не боялись использовать Gradle.

Читать далее

Как я участвовал в создании информационных систем для медицины

Время на прочтение6 мин
Охват и читатели5.8K

В 1987-м году я окончил с красным дипломом приборостроительный факультет челябинского политехнического института по специальности "Автоматика и телемеханика", хотя планировал стать физиком-теоретиком и школу заканчивал в специализированной школе-интернате №18 при МГУ. По распределению попал в специализированное конструкторское бюро и до 1991-го года разрабатывал электронные блоки для бронетанковой техники. До сих пор считаю что полученная при этом инженерная школа является чем-то недостижимым в современных реалиях. В частности, мы с коллегами создали комбинированный аналого-цифровой программируемый комплекс, который в реальном времени проводил расчеты по математической модели объекта, описываемой системой дифференциальных уравнений 4-го порядка с 14-ью нелинейными элементами и принимал решения более 10 тысяч раз в секунду. На современных вычислителях это наверное и можно было бы сделать, но в то время мы решали задачу имея в распоряжении только набор интегральных микросхем, самой крутой из которых была ПЗУ на 2 килобайта и всё наше творчество должно было уместиться в 9 литров объёма и работать в диапазоне температур от -40 до +85.

После того как в 1991-м году страна развалилась я выбрал стезю программирования и с тех пор так или иначе связан с разработкой ПО и построением крупных информационных систем. Начинал с создания комплексного ПО и "умной кассы" для торгового центра, потом была информационная система учёта аренды муниципального имущества. Потом я вернулся в конструкторское бюро на считавшийся безнадёжным проект по созданию комплекса диагностических стендов для автоматизированного поиска неисправностей в электронных блоках в интересах иностранного заказчика. После окончания разработки я возглавлял группу разработчиков, которая сдавала эти стенды заказчику, и мы с этой задачей справились.

Читать далее

Использование SEDA со Spring Integration и Apache Camel

Время на прочтение13 мин
Охват и читатели5.8K

SEDA, или Staged Event-Driven Architecture, представляет собой архитектурный стиль, предложенный Мэттом Уэлшем в его докторской диссертации. диссертация. Его основными преимуществами являются масштабируемость, поддержка высококонкурентного трафика и удобство эксплуатации.

В этом туториале мы будем использовать SEDA для подсчета уникальных слов в предложении с помощью двух разных реализаций: Spring Integration и Apache Camel.

Читать далее

Java 20: огромные разреженные сегменты памяти

Время на прочтение4 мин
Охват и читатели4.3K

Знаете ли вы, что можно выделять сегменты памяти, которые больше, чем физический размер оперативной памяти вашего компьютера, и даже больше, чем размер всей вашей файловой системы? Прочтите эту статью и узнайте, как использовать сопоставленные (mapped) сегменты памяти, которые могут быть или не быть «разреженными», и как выделить 64 терабайта разреженных данных на ноутбуке.

Читать далее

Делаем дашборды для Grafana из того, что отдает экспортер метрик Prometheus и автоматизируем это

Время на прочтение4 мин
Охват и читатели28K

Столкнувшись с необходимостью сделать новый дашборд в Grafana под много новых метрик (а не добавить, так как готовый из галереи не находится), я сделал небольшое веб-приложение, которое сконвертирует "портянку" с данными метрик в простенький, но доходчивый дашборд со всеми необходимыми метриками.

В статье описание работы конвертора и рассказ о некоторых хитростях в настройке мониторинга Apache Spark и Hadoop.

Укыйбызмы?

Пишем бота-кликера на Kotlin для Lineage 2

Время на прочтение8 мин
Охват и читатели23K

Еще не все новогодние салаты были съедены, “Ирония судьбы” уже просмотрена, а до начала рабочей недели еще целая вечность и нужно было придумать себе развлечение на оставшиеся праздники. Предвкушая ностальгию я открыл Lineage 2, одну из самых популярных MMORPG “нулевых” на СНГ пространстве. Однако, самому играть уже не хотелось и пришла идея автоматизировать это дело. За подробностями под кат!

Читать далее

Управление зависимостями в IntelliJ IDEA

Время на прочтение5 мин
Охват и читатели24K

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

Мы рассмотрим различные способы добавления зависимостей в ваш проект, а также способы добавления, обновления и удаления зависимостей с помощью Package Search.

Читать далее

Повышение электробезопасности

Время на прочтение4 мин
Охват и читатели1.7K

При производстве работ в электроэнергетике желательно обеспечить дополнительный контроль за работой производимой на высоковольтном оборудовании для безопасности работ и последующего анализа действий при несчастном случае.

Для выполнения вышеуказанного условия предлагается данная система сбора информации с различных датчиков. Сбор данных происходит с помощью приложения устанавливаемого на сотовый телефон, который может находится как у непосредственного исполнителя; либо у наблюдающего за работой; либо у обоих. Связь датчиков с сотовым телефоном по Bluetooth. Полученные данные накапливаются в телефоне, а также одновременно передаются в определенный Telegram-канал с идентификационными данными пользователя (код компании/фамилия, имя). По идентификационным данным в телеграмм-канале производителя устройств возможна сортировка полученных данных.

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

Информация от датчиков передается по Bluetooth BLE в наименовании устройства в режиме advertising – посылки «рекламы» (18 байт).

Читать далее

Ближайшие события

Движение по магистрали без аварий. Или как передавать 1,5 терабайта в сутки и ни одного не потерять?

Время на прочтение3 мин
Охват и читатели3.2K

Привет, Хабр.

Меня зовут Владимир Евсеев, я Senior Java developer, Teamlead в SSP SOFT.

Наша команда приступила к масштабному проекту: системе, обеспечивающей транспортный уровень документооборота банка. Сегодня я расскажу, как мы справились с первым этапом: выстроили магистраль, способную передавать около 150 000 файлов в сутки, или 1,5 терабайта информации. Поделюсь, что получилось и что еще предстоит  довести до совершенства.

Читать далее

Сортировка слиянием через рекурсию

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели19K

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

Читать далее

Spring Modulith: достигли ли мы зрелости модульности

Время на прочтение6 мин
Охват и читатели15K

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

Однако минусы микросервисов настолько огромны, что это все равно, что отрубить себе правую руку, чтобы научиться писать левой; есть более управляемые (и менее болезненные!) способы достижения того же результата.

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

Многие выбирают микросервисы, потому что приложение, над которым они работают, напоминает блюдо со спагетти. Если бы их приложение было лучше спроектировано, притяжение микросервисов не было бы таким сильным.

Читать далее

Особое мнение: смотрим на нагрузочные тесты как на функциональные

Время на прочтение11 мин
Охват и читатели3.6K

Что делать, если у команды появилась потребность регулярно оценивать производительность приложения и в динамике сравнивать быстродействие с прошлыми прогонами, а внедрять для этого решение enterprise-уровня - это как из пушки по воробьям? Мы решили пойти немного неочевидным, но продуктивным путём, воспользовавшись опытом реализации функциональных тестов и их интеграции в систему CI/CD, ведь, в сущности, почему нужно обязательно смотреть на тестирование производительности, как на что-то особенное? Что из этого получилось, и с какими проблемами при этом пока ещё приходится мириться - читайте под катом.

Читать далее

Интеграция Primefaces в приложение на Spring Boot. Часть 2 — Готовим контекстное меню для главной страницы

Время на прочтение7 мин
Охват и читатели3.1K

В этой статье описывается пример интеграции библиотеки компонентов пользовательского интерфейса Primefaces, построенной на основе фреймворка JavaServer Faces (JSF), в MVC приложение на Spring Boot.

Первая часть

Читать далее

JEP-400 или UTF-8 РєРѕРґРёСЂРѕРІРєР° РїРѕ умолчанию

Время на прочтение9 мин
Охват и читатели14K

Не прошло и пяти лет, как в Java 18 докатилось небольшое, но очень ожидаемое и обсуждаемое изменение: теперь во всех стандартных API используется UTF-8 кодировка по умолчанию. Это изменение, которое сделает выражение «Write once, run anywhere» действительно правдой, так как теперь поведение приложения будет еще меньше зависеть от системы, где оно запущено. 

На конференции Joker я рассказал, как развивались события в работе над JEP-400 и как сделать так, чтобы ничего не поломалось после перехода на новые версии JDK. А теперь делюсь с Хабром и видеозаписью доклада, и текстовой версией. Как говорится, помимо двух самых сложных задач в программировании – нейминга и инвалидация кэша, есть ещё две: таймзоны и кодировки. Вот о кодировках и поговорим. Как читается название доклада/поста — разберёмся в конце.

Читать далее

Как сделать анимацию с помощью MotionLayout

Время на прочтение14 мин
Охват и читатели8.1K

Привет, Хабр! Меня зовут Павел Беловол, я Android-разработчик на проекте онлайн-кинотеатра KION в МТС Digital. Это новая часть сериала о внедрении фичи Autoplay в KION, в которой я расскажу про свой личный опыт работы с MotionLayout на примере продакшн-задачи в KION. Из этой статьи вы узнаете, где нужно использовать MotionLayout, а где лучше обойтись без него и писать код анимации самостоятельно.

Читать далее

Вклад авторов