Обновить
512K+

Java *

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

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

Spring Cloud и Spring Boot. Часть 1: использование Eureka Server

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

В этой статье мы поговорим о том, как установить и настроить службу обнаружения (service discovery) для Java-микросервисов.

Что такое Eureka Server?

Автоматизация публикации приложения в Google Play при помощи Jenkins

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

Для этого нам понадобится

1) Действующий account Google Play Developer

2) Сервер Linux с предустановленным Docker, в моём случае это Ubuntu 16.04

3) Установленный Android SDK

4) Jenkins - в данном случае развернём его при помощи Docker

5) Gitea - Удобная служба для собственного Git-репозитория (это не обязательно можно использовать и GItHub) её мы подымем также на базе Docker контейнера

Читать далее

Как работать с легаси, разгонять Java до скоростей C++ и мигрировать в облака: узнаем в четверг

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

В этот четверг на онлайн-митапе TechFest от компании Luxoft можно будет послушать и обсудить четыре доклада о разных вещах:

– Высокопроизводительном транспорте данных Aeron 

– Работе с тяжёлой наследственностью приложений 

– Multicloud-миграции

– Применении DevOps-инструментов для разработчиков

Каждого спикера после доклада можно будет как следует расспросить, а пройдёт мероприятие на виртуальной площадке, где можно «подойти» к другому участнику пообщаться с помощью видеосвязи.

Под катом есть вся информация о докладах, онлайн-площадке и регистрации.

Читать далее

Scala 3: избавление от implicit. Тайпклассы

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


Моя предыдущая статья была про неявные преобразования и extension-методы. В этой статье обсудим новый способ объявления тайпклассов в Scala 3.


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

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

Новый подход к просмотру логов

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

Одно время, приходилось много работать с логами. Они могли быть большими и находиться на разных серверах. Требовалось не найти что-то конкретное, а понять почему система ведёт себя не так как надо. По некоторым причинам, лог-агрегатора не было.

Хотелось иметь просмотрщик логов, позволяющий, в любой момент, открыть любой файл, без скачивания на локальную машину, как команда less в linux консоли. Но при этом, должна быть удобная подсветка текста, как в IDE, и фильтрация событий по различным параметрам. Фильтрация и поиск должны работать по событиям в логе, а не по строкам, как grep, это важно когда есть многострочные записи, например ошибки со стектрейсами. Так же должна быть возможность просматривать записи сразу из нескольких файлов на одной странице, смёржив их по таймстемпу, даже если файлы находятся на разных нодах.

Читать далее

Java 16 — новые синтаксические возможности языка

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

В марте этого года Oracle выпускает 16-ю версию Java, а уже осенью выйдет 17-я версия - следующая версия с долгосрочной поддержкой (LTS). Вряд ли за пол года появятся какие-то существенные нововведения, а потому уже сейчас можно взглянуть на то, с чем мы будем работать в ближайшие несколько лет. С момента выхода 11-й версии - текущей LTS версии Java, компанией Oracle было внедрено большое количество новых функций - от новых синтаксических конструкций до новых алгоритмов сборки мусора. В данной статье рассмотрим новые возможности языка, появившиеся в версиях 12 - 16.

Читать далее

Кластеризация и классификация больших Текстовых данных с помощью М.О. на Java. Статья #3 — Архитектура/Результаты

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

Привет, Хабр! Сегодня будет продолжение темы Кластеризация и классификация больших Текстовых данных с помощью машинного обучения на Java. Данная статья является продолжением первой и второй статьи.

Читать далее

Android Bluetooth Low Energy (BLE) – готовим правильно, часть #3 (read/write)

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

Часть #1 (scanning)

Часть #2 (connecting/disconnecting)

Часть #3 (read/write), вы здесь

В предыдущей статье мы подробно поговорили о подключении/отключении BLE устройств. Эта статья о чтении и записи характеристик, а также о включении-выключении уведомлений.

Читать далее

Как PVS-Studio ELKI в январе проверяли

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

Если вам кажется, что Новый год наступил только вчера, и вы не заметили, как прошла уже большая половина января – значит, все это время вы были заняты поиском трудноуловимых багов в поддерживаемом вами коде. А также это значит, что наша статья именно для вас. Мы, PVS-Studio, проверили open source проект ELKI, чтобы показать вам, какие ошибки могут встретиться в коде, как хитро там они могут спрятаться, и как можно с этим бороться.


0111_ELKI_ru/image1.png

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

Вызываем код на Java, C, NodeJS, C#, Python из InterSystems IRIS

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

Введение


Одно из ключевых направлений развития платформы данных InterSystems IRIS — открытость. Открытость во взаимодействии с языками программирования, технологиями и протоколами. Поддержка языков программирования двусторонняя — возможен как вызов кода из InterSystems IRIS, так и предоставляется API для работы с InterSystems IRIS извне. В этой статье речь пойдёт о первом варианте — вызове кода из InterSystems IRIS. Целью этого небольшого повествования является демонстрация того, как просто и удобно можно это сделать. Я не буду сравнивать различные языки программирования (хотя в конце есть таблица по скорости работы различных имплементаций), всё зависит от решаемых вами задач и требований, предъявляемых к результату разработки. В этой статье я продемонстрирую несколько различных подходов к вызовам сторонних библиотек, а реализовывать мы будем одну и ту же функциональность — вызов функции DELFATE из библиотеки zlib.

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

Представляем Quarkus на Red Hat OpenShift

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

Quarkus уже стал заметным игроком на рынке технологий разработки и задает новый формат работы программистов. Сегодня мы рады сообщить, что Quarkus теперь входит в состав Red Hat OpenShift, и это важный шаг для будущего Java как инструмента разработки современных облачных приложений...

Читать дальше: Quarkus на OpenShift

Анбоксинг в современной Java

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

Сейчас новые версии Java выходят раз в полгода. В них время от времени появляются новые возможности: var в Java 10, switch-выражения в Java 14, рекорды и паттерны в Java 16. Про это всё, конечно, написано множество статей, блог-постов, сделано множество докладов на конференциях. Оказалось, однако, что мы все пропустили один очень крутой апгрейд языка - апгрейд обычного цикла for по набору целых чисел. Дело в том, что этот апгрейд случился не в языке, а в виртуальной машине, но заметно поменял на то как мы можем программировать на Java.

Вспомним старый добрый цикл for:

Читать далее

Эволюция оркестратора микросервисов. Как переход на WebClient помог пережить пандемию

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

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

Потому что в случае с такого рода сервисами наш любимый подход "пихаем в базу - строим индексы" не работает. Как минимум потому что базы нет).

В статье расскажу про общие подходы к оптимизации оркестраторов, что и как мы пробовали, как переходили с блокирующего RestTemplate на неблокирующий WebClient.
Как пытались подружить его с CompletableFuture, как положили прод, как нашли проблему, и какие сделали из всего этого выводы.

Забегая вперёд, могу сказать, что переход на неблокирующий веб-клиент для нашего оркестратора, в разы увеличил производительность, а ещё, если думаете использовать WebClient совместно с CompletableFuture, то лучше не надо имеет смысл кое-что проверить.

Читать далее

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

Лечим Java Reactor при помощи Kotlin Coroutines

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

На текущей работе пишем на Reactor. Технология классная, но как всегда есть много НО. Некоторые вещи раздражают, код сложнее писать и читать, с ThreadLocal совсем беда. Решил посмотреть какие проблемы уйдут, если перейти на Kotlin Coroutines, а какие проблемы, наоборот, добавятся.

Приступим к лечению

Android Bluetooth Low Energy (BLE) — готовим правильно, часть #2 (connecting/disconnecting)

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

Подключение, отключение и обнаружение BLE сервисов.

Читать далее

Scala 3: избавление от implicit. Extension-методы и неявные преобразования

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


Это моя вторая статья с обзором изменений в Scala 3. Первая статья была про новый бесскобочный синтаксис.


Одна из наиболее известных фич языка Scala — имплиситы (от англ. implicit — неявный — прим. перев.), механизм, который использовался для нескольких разных целей, например: эмуляция extension-методов (обсудим в этой статье), неявная передача параметров при вызове метода, наложение ограничений на возможный тип и др. Все это — способы абстрагирования контекста.


Для освоения Scala требовалось в том числе научиться грамотно применять механизм имплиситов и связанные с ним идиомы. И это был серьезный вызов для новичков.

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

Фирма «1С» приглашает вас принять участие в нашей первой конференции для системных разработчиков

Время на прочтение2 мин
Охват и читатели7.3K
Всем добрый день!

Фирма «1С» приглашает вас принять участие в нашей первой конференции для системных
разработчиков, которая пройдет 23 января в онлайн-формате.

Наверное, вы сейчас думаете «да 1С это ж бухгалтерия, какая системная разработка?»

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

Например, знаете ли Вы, что среди технологий 1С есть высоконагруженный кластер, с
продвинутой балансировкой нагрузки и обеспечением отказоустойчивости?

Или зачем нам вдруг понадобилось использовать NoSQL DB при разработке собственной IDE? (Да-да, у нас есть собственная IDE, да не одна, а целых три!)
Читать дальше →

Чаты на вебсокетах, когда на бэкенде WAMP. Теперь про Android

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

Мой коллега уже писал про наш опыт разработки чатов на вебсокетах для iOS, поэтому часть про особенности бэкенда с точки зрения клиента у нас общая. А вот реализация на Android, конечно, отличается. И ещё мне не приходилось, как в первой статье, искать библиотеку для поддержки старых версий операционной системы, потому что на Android каких-то глобальных изменений в сетевой части не было, всё работало и так.

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

Читать далее

Заменят ли роботы программистов?

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

С каждым годом выходит всё больше инструментов, которые помогают автоматизировать часть рутинной работы программиста, — генераторы тестов, автодополнение кода, генераторы шаблонного кода. Мы воспринимаем как само собой разумеющееся, что условная IntelliJ IDEA предлагает нам после введения буквы метод, который мы и хотели.


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



Исследование этой проблемы провёл Тагир Валеев lany из JetBrains в докладе на Joker 2020. И результаты вышли весьма неоднозначными. Подробности — под катом, повествование далее будет от лица спикера.

Jmix — будущее CUBA Platform

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


TL;DR


Jmix — новое название и новый большой релиз CUBA Platform. На текущий момент Jmix находится в стадии предварительного релиза, мы планируем выпустить стабильную версию во втором квартале 2021 года. Основные изменения:


  • В ядре платформы теперь будет Spring Boot
  • Фреймворк будет разделен на модули (data, security, audit, и т.д.)
  • Новый подход к определению модели данных
  • Обновление базы данных теперь производится при помощи Liquibase
  • Процесс развертывания будет основан на стандартных средствах Spring Boot. Это обеспечит лучшую интеграцию с облачными средами выполнения

Мы будем активно развивать разработку пользовательского интерфейса на ReactJS, в то же время продолжим поддержку текущего фреймворка, основанного на Vaadin.


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


Официальный сайт Jmix: jmix.io.
Обсуждение на форуме: по-английски.

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