Как стать автором
Обновить
80.65
Рейтинг

Java *

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

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

Как мы нашли применение Chat GPT в нашем IT продукте (игре для разработчиков)

Python *JavaScript *Java *Разработка игр *Лайфхаки для гиков
Кейс

Последние две недели интернет пестрит рассказами о всемогущей Chat GPT и ее возможностях. Вот и мы решили не оставаться в стороне и рассказать, как нашли применение для такой перспективной технологии, и сэкономили сотни человека часов для команды.

Читать далее
Всего голосов 14: ↑5 и ↓9 -4
Просмотры 4.1K
Комментарии 13

Новости

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

Java *XML *Проектирование и рефакторинг *Хранение данных *Data Engineering *
Из песочницы

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

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

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 2.6K
Комментарии 12

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

Java *
Туториал
Перевод

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 637
Комментарии 0

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

Программирование *Java *
Туториал
Перевод

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

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 2.5K
Комментарии 2

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

Java *Анализ и проектирование систем *Веб-аналитика *Аналитика мобильных приложений *DevOps *
Обзор

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

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

Укыйбызмы?
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 3.3K
Комментарии 5

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

Java *Kotlin *Игры и игровые консоли
Из песочницы

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

Читать далее
Всего голосов 39: ↑37 и ↓2 +35
Просмотры 11K
Комментарии 24

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

Java *
Туториал
Перевод

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 1.7K
Комментарии 6

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

Java *Разработка под Android *C *Программирование микроконтроллеров *Инженерные системы *

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

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

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

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

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Просмотры 1K
Комментарии 3

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

Блог компании SSP SOFT Высокая производительность *Java *Распределённые системы *
Кейс

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

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

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

Читать далее
Всего голосов 14: ↑10 и ↓4 +6
Просмотры 1.7K
Комментарии 13

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

Java *Алгоритмы *
Из песочницы

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

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 5.1K
Комментарии 21

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

Программирование *Java *
Туториал
Перевод

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

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

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1.4K
Комментарии 11

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

Блог компании Мир Plat.Form (НСПК) Тестирование IT-систем *Java *Тестирование веб-сервисов *

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

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 1.1K
Комментарии 2

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

Блог компании OTUS Java *
Туториал

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

Первая часть

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 958
Комментарии 0

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

Блог компании JUG Ru Group Программирование *Java *Разработка под Linux *Разработка под Windows *

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

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

Читать далее
Всего голосов 49: ↑48 и ↓1 +47
Просмотры 9.1K
Комментарии 20

Истории

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

Блог компании МТС Java *Разработка под Android *Kotlin *
Туториал

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

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 2.5K
Комментарии 13

Javarush, так ли полезно спустя 9.5 лет?

Java *
Из песочницы

Про Javarush, писали уже многие, в этой статье хотелось бы выразить свое мнение буквами и символами. Как вы уже наверняка знаете, Javarush - это весьма интересный проект, который предлагает обучение языку программирования Java, здесь вы изучите основы, решая простые (и не очень) практические задачи, в формате интерактивного комикса, где ВЫ главный герой.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 13K
Комментарии 11

Spring Data JDBC и генерация ID

Java *
Из песочницы

Каждый раз, когда необходимо сделать сервис на Java, работающий с реляционной базой, я не могу определиться, прямо как та обезъяна, которая хотела быть и умной, и красивой. Хочется делать запросы на обычном SQL, по-минимуму обкладываясь различными "магическими" аннотациями, но при этом лень самому писать RowMapper'ы, готовить PreparedStatement'ы или JdbcTemplate, и тому подобное, за что любят обзывать Java многословной. И каждый раз руки тянутся к Spring Data JDBC, который, вроде как, и был задуман как нечто среднее. Но с ним тоже, зачастую, можно вляпаться в какую-то ерунду на ровном месте.

Потребовалось мне сохранять новые записи в таблицу. Казалось бы, в чем вопрос - берешь CrudRepository и все у тебя работает из коробки. Но на практике возникло несколько нюансов, например:

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 3.7K
Комментарии 38

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

Блог компании OTUS Java *
Туториал
Recovery mode

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

Читать далее
Всего голосов 11: ↑8 и ↓3 +5
Просмотры 1.1K
Комментарии 3

Моя первая книга по Java

Программирование *Java *Профессиональная литература *

Статья о том, как я написал и полностью довёл до издания мою первую книгу по Java, про что эта книга, какие у неё особенности и где можно её купить. Приводится список глав с кратким описанием их содержания.

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 3.1K
Комментарии 15

Теория категорий в API для консистентности Apache Cassandra

Java *Анализ и проектирование систем *API *
Из песочницы

Для Apache Cassandra проектирование структуры таблиц выполняется для нужд одного конкретного приложения, а перед программистом встают проблемы дублирования данных (один запрос читает одну таблицу, в которой есть все нужные поля) и контроля инициализации значений для колонок, входящих в первичный ключ

В статье предлагается вариант организации клиентского API для решения проблем с консистентностью данных и инициализации требуемых полей на базе комбинации паттернов проектирования Factory Method, Builder и Finite State Machine

TLDR: Если представить паттерн Factory Method как предел в терминах теории категорий, т.е. кортеж с проекциями, и инициализировать фабрику при помощи паттерна Builder, то можно получить удобный API для создания объектов с дублирующимся данными

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 1.6K
Комментарии 0

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

Работа

Java разработчик
463 вакансии