Обновить
512K+

Java *

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

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

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

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

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

Первая часть | Вторая часть
Третья часть | Четвертая часть

Читать далее

Как поместить весь мир в обычный ноутбук: PostgreSQL и OpenStreetMap

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

Когда человек раньше говорил что он контролирует весь мир, то его обычно помещали в соседнюю палату с Бонапартом Наполеоном. Надеюсь, что эти времена остались в прошлом и каждый желающий может анализировать геоданные всей земли и получать ответы на свои глобальные вопросы за минуты и секунды. Я опубликовал Openstreetmap_h3 — свой проект, который позволяет производить геоаналитику над данными из OpenStreetMap в PostGIS или в движке запросов, способном работать с Apache Arrow/Parquet.

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

Первый пост не претендует на монографию, начну с краткого обзора...

Читать далее

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

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

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

Первая часть
Вторая часть
Третья часть

Читать далее

«Извините, но вам придется закодировать Щелкунчика»

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

Так и не попав на всем известный балет в декабре, мы решили организовать своего Щелкунчика. Речь не о балете, а о первом в мире IT‑контесте по переводу сказки на Python, Go, C#, JavaScript и Java, задача которого звучала так: «Извините, но вам придется закодировать Щелкунчика».

Меня зовут Вадим Рощин, я деврел МТС Digital, и сейчас я расскажу о том, как это было.

Читать далее

Чтение/запись текста в Telegram канал из Android приложения

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

Для возможного сокращения временных затрат новичкам на разработку программ подключения приложения Android к Telegram‑ каналу предлагается данный туториал.

В основу предлагаемой программы положен один из способов обмена информацией в запросах Bot API: строка запроса URL. Для запросов используются HTTP методы GET и POST. Прием/передача текстовых данных производится в фоновом режиме посредством класса AsyncTask, задаваемого как внутренний класс основного класса приложения.

Читать далее

Выходя за рамки JUnit. Создаем сложные расширения

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

Переход от JUnit4 к новой версии во многом изменил способ расширения функциональных возможностей тестов. Напомню, что в JUnit4 основным механизмом расширения были правила (Rule), которые могли обернуть выполнение теста в дополнительную логическую обработку (например, в реализации абстрактного класса ExternalResource встраивали два дополнительных вызова методов инициализации (который также мог возвращать объект для взаимодействия с создаваемым окружением, например обертку вокруг Android Activity) и финализации (вызывается после выполнения теста и используется для очистки ресурсов). Модель JUnit 5 существенно дополнена и в этой статье мы рассмотрим как можно создавать собственные расширения для JUnit Platform.

Читать далее

Простой пример написания Dockerfile. Использование многоэтапной сборки

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

Всем привет! В данной статье хочу показать простой пример написания Dockerfile, объяснить как это все работает, а также показать на примере использование многоэтапной сборки.

Для понимания данной статьи необходимы минимальные знания Docker, а также для использования примеров - установленный Docker Desktop локально на компьютере.

Вначале немного теории.

Dockerfile - это файл, который содержит инструкции для сборки образа. На основании образа создается и запускается контейнер.

Обратимся к официальной документации https://docs.docker.com/get-started/overview/

Читать далее

Tarantool Data Grid + Java = …

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

В последнее время всё большую популярность набирает Tarantool — платформа in-memory вычислений с гибкой схемой данных, включающая в себя NoSQL-базу данных и сервер приложений. В этой статье я хочу рассказать об одной из его реализаций — Tarantool Data Grid (TDG).

Читать далее

From Zero to Hero: определите ваш уровень решения LeetCode задач от 1 до 5

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

В этой статье я хочу написать про мой опыт взаимодействия с платформой LeetCode, и описать свою подготовку к интервью в FAANG подобные компании путем разбиения ее на уровни.

А какой у вас уровень?

Читать далее

Retry or No?

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

В этой статье разберем вариант реализации функционала перезапроса сообщений из семейства resilience шаблонов. Мы поговорим о retry. Точнее обсудим:

1. Что такое устойчивость и какое влияние на нее имеет retry?

2. Анализируем, где применять retry;

3. Реализуем retry;

4. Пишем unit-тесты с wiremock;

5.Делаем starter;

Читать

Устранение неисправностей в приложении Java под Kubernetes

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

Когда взаимодействуют разработчики и операторы


Предположим, вы написали приложение на Java и развернули его в Kubernetes в среде разработки. Рано или поздно это приложение уйдёт в продакшен, и вам придётся узнать, каково оно на деле. Затем начинают возникать новые неожиданные проблемы. Причин у таких проблем может быть множество: слишком много пользователей, утечки памяти, условия гонки, и на этапе разработки такие проблемы выявить сложно.

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

В Kubernetes всё устроено немного иначе. Вам наверняка рекомендовали добавить отдельную конечную точку для проверки работоспособности, поэтому k8s уже успеет перезапустить под до вашего вмешательства. После этого под выглядит свежим, и в нём потеряна вся информация, которая вам требовалась. В этом посте будет показан очень простой способ, позволяющий снять информацию в такой ситуации.
Читать дальше →

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

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

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 мин
Охват и читатели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 мин
Охват и читатели48K

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее