Обновить
128K+

Java *

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

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

Микросервисы со Spring Boot. Часть 1. Начало работы

Время на прочтение7 мин
Охват и читатели73K
Это первая часть серии статей по основам микросервисных архитектур.

В ней вы познакомитеь с концепцией микросервисов и узнаете, как создавать микросервисы с помощью Spring Boot и Spring Cloud.

Это руководство поможет вам изучить основы микросервисных архитектур. Мы также начнем рассматривать базовую реализацию микросервиса со Spring Boot.

Мы создадим пару микросервисов и заставим их общаться друг с другом с помощью сервера имен Eureka (Eureka Naming Server) и Ribbon для балансировки нагрузки на стороне клиента.

Это статья входит в серию статей «Микросервисы со Spring Boot»:


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

Движок, скриптовый язык и визуальная новелла — за 45 часов

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

visual novel, engine and scripting language for 45 hours


Приветствую. Так получилось, что уже три года подряд в качестве подарка на Новый год определенным людям я делаю игру. В 2018-ом году это был платформер с элементами головоломки, о котором я писал на хабре. В 2019-ом — сетевая RTS для двух игроков, о которой я ничего не писал. И наконец, в 2020-ом — визуальная новелла, о которой далее и пойдет речь, созданная в условиях сильно ограниченного времени.


В этой статье:


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

Интересно? Тогда добро пожаловать под кат.


Осторожно: тут много текста и ~3.5мб изображений

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

Java-дайджест за 17 января. Две первые недели нового года

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


  • Появился шрифт JetBrains Mono — приятный и красивый шрифт для разработчиков


  • Вышел плагин для интеграции GitLab с IntelliJ IDEA. Теперь можно делать код-ревью прямо в вашей любимой IDE!


  • В Java-плагине для Visual Studio Code добавили кучу важных ништяков (действительно влияющих на качество жизни). Теперь в браузере файлов есть компактизация папок в привычный нам вид (как в Идее), у методов можно смотреть иерархию вызовов, в отладчике можно ставить брейкпоинты с условием (сработают, только если выполнилось условие), запускатор тестов визуально отображает статус теста (не нужно постоянно смотреть логи), и еще много всего.


  • Вышел Repeat 5.4, кроссплатформенный (Mac/Lin/Win) инструмент для хоткеев, макросов и автоматизации, на 70% написанный на Java. 442 коммита, 574 звездочки, проект пользуется массовой любовью и обожанием у своей узкой аудитории. Разрабатывается ровно одним человеком.

Создание микросервиса на Quarkus, Kotlin и Gradle

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


Введение


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


target architecture

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

Работа с интерфейсом в Google Maps SDK для Android

Время на прочтение9 мин
Охват и читатели11K
Данная статья будет полезна тем, кто ранее не использовал в своей работе Google Maps SDK.

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

image
Источник
Читать дальше →

Пол Грэм про Java и «хакерские» языки программирования (2001)

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

Это эссе явилось развитием бесед с несколькими разработчиками на тему предвзятого отношения к Java. Это не критика Java, а скорее, наглядный пример «хакерского радара».

Со временем, хакеры развивают нюх на хорошие — или же плохие — технологии. Полагаю, может оказаться интересным попробовать изложить причины, по которым Java кажется мне сомнительной.

Кто-то из прочитавших расценивал это как заслуживающую внимания попытку написать о чем-то, о чем раньше никто не писал. Другие же предостерегали, что я пишу о вещах, в которых ничего не смыслю. Так что на всякий случай, хотел бы уточнить, что я пишу не о Java (с которой я никогда не работал), но о «хакерском радаре» (о котором много размышлял).
Читать дальше →

gRPC в качестве протокола межсервисного взаимодействия. Доклад Яндекса

Время на прочтение16 мин
Охват и читатели286K
gRPC — опенсорсный фреймворк для удаленного вызова процедур. В Яндекс.Маркете gRPC используется как более удобная альтернатива REST. Сергей Федосеенков, который руководит службой разработки инструментов для партнеров Маркета, поделился опытом использования gRPC в качестве протокола для построения интеграций между сервисами на Java и C++. Из доклада вы узнаете, как избежать частых проблем, если вы начинаете использовать gRPC после REST, как возвращать ошибки, реализовать трассировку, отлаживать запросы и тестировать вызовы клиентов. В конце есть неофициальная запись доклада.

— Сначала хотелось бы познакомить вас с некоторыми фактами про Яндекс.Маркет, они будут полезны в рамках доклада. Первый факт: мы пишем сервисы на разных языках. Это накладывает требования по наличию клиентов для сервисов.
Читать дальше →

Запускаем однофайловые программы в Java 11 без компилирования

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


Пусть исходный файл HelloUniverse.java содержит определение класса и статичный метод main, который выводит в терминал одну строку текста:

public class HelloUniverse{
      public static void main(String[] args) { 
            System.out.println("Hello InfoQ Universe");
      }
}

Обычно для запуска этого класса требуется сначала скомпилировать его с помощью Java-компилятора (javac), который создаст файл HelloUniverse.class:

mohamed_taman$ javac HelloUniverse.java

Затем нужно с помощью команды виртуальной машины Java (интерпретатора) запустить получившийся файл:

mohamed_taman$ java HelloUniverse
Hello InfoQ Universe

Тогда сначала запустится виртуалка, которая загрузит класс и исполнит код.

А если вам нужно быстро проверить фрагмент кода? Или вы новичок в Java (в данном случае это ключевой момент) и хотите поэкспериментировать с языком? Описанные два этапа могут всё усложнить.

В Java SE 11 можно напрямую запускать одиночные исходные файлы без промежуточной компиляции.
Читать дальше →

Рекомендации по REST API — примеры проектирования веб-сервисов на Java и Spring

Время на прочтение11 мин
Охват и читатели118K
Это последняя статья из серии статей про REST API:


В этой статье вы познакомитесь с рекомендациями по REST API и с примерами разработки из Java и Spring Web Services.

При разработке хорошего REST API важно иметь хорошие микросервисы.
Как вы разрабатываете свой REST API? Каковы лучшие практики?


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

Максимальное количество значений в enum Часть I

Время на прочтение7 мин
Охват и читатели11K
Часть первая, теоретическая | Часть вторая, практическая


По мотивам твита от Evgeny Mandrikov aka godin:


В нём он задаётся вопросом, какое максимальное количество значений может быть определено в перечислении (enum) в Java. После ряда экспериментов и применения чёрной магии ConstantDynamic (JEP 309) автор вопроса приходит к числу 8191.

В серии из двух статей поищем теоретические пределы числа элементов в перечислении, попробуем к ним приблизиться на практике и попутно выясним, чем может помочь JEP 309.

Java/Spring: Как полностью сгенерировать CRUD REST API с помощью Speedment

Время на прочтение6 мин
Охват и читатели13K
В этой статье вы узнаете, как с помощью Speedment создать полный CRUD REST API для базы данных.



С каждым годом становится все очевиднее, что Spring Framework является одним из наиболее широко используемых фреймворков для веб-разработки на Java.

С приближением следующего десятилетия самый популярный модуль Spring, Spring Boot, только что получил серьезное обновление. Новая версия Spring Boot «2.2.0» и 2020 год почти идеально подходят друг другу. Поэтому команда разработки Speedment восполнила пробел, обновив плагин для Spring Boot.

Если вы впервые слышите о Speedment, вы получите удовольствие, так как мы покажем, как плагин Speedment Spring Boot позволяет разработчикам без особых усилий создавать Spring приложения баз данных с помощью Speedment, ORM с мощным интерфейсом запросов на основе Stream API.
Читать дальше →

TelegramBot. Базовый функционал. Стикеры и смайлы. (Часть 3)

Время на прочтение7 мин
Охват и читатели74K
Один из вопросов, который часто приходит в личку — как работать со смайлами(эмодзи) и стикерами.

Как с ними работать, какими инструментами пользуюсь я и т.д.

В данной части будут рассмотрены такие вещи: как создать сообщение со стикером, как обработать полученное сообщение со стикером, как найти в тексте сообщения все смайлы(эмодзи), как создать сообщение с использованием смайлов (эмодзи).

Кому интересно, прошу под кат.
Читать дальше →

Quarkus — новый взгляд на Cloud Native Java

Время на прочтение9 мин
Охват и читатели10K
Привет, Хабр!

В наступившем новом году мы планируем всерьез развивать темы контейнеров, Cloud-Native Java и Kubernetes. Логичным продолжением этих тем на русском языке будет рассказ о фреймворке Quarkus, уже рассмотренном в хорошей статье на Хабре. Сегодняшняя статья посвящена не столько устройству "субатомной сверхбыстрой Java", сколько тем перспективам, которые Quarkus привносит в Enterprise.
Читать дальше →

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

Java: вещи, которые могут показаться любопытными и разработчику со стажем

Время на прочтение6 мин
Охват и читатели12K
Доброе время суток!

Статья написана по следам публикации «Вещи, которые вы [возможно] не знали о Java» другого автора, которую я бы отнёс к категории «для начинающих». Читая и комментируя её, я понял, что есть некоторое количество достаточно любопытных вещей, которые я узнал, уже программируя на java не один год. Возможно, эти вещи покажутся любопытными кому-то ещё.

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

Java: свертывание многострочных логов в однострочный лог с помощью Spring и логгера Logback или Log4j2

Время на прочтение7 мин
Охват и читатели8.5K
Logback и Log4j2 – одни из самых известных фреймворков логирования в JAVA. Фреймворк Logback используется только совместно с библиотекой SLF4J, которая представляет собой интерфейс для систем протоколирования событий. Log4j2 представляет собой вторую, улучшенную версию логгера Log4, библиотеку логирования, в которой интерфейс API и реализация выделены отдельно, что позволяет использовать API Log4j 2 совместно с реализацией другого логгера.

Spring Music является приложением для использования сервиса базы данных среды Cloud Foundry совместно со Spring Framework и Spring Boot. Оно создано для сохранения одних и тех же доменных объектов в одном из множества различных хранилищ – объектно-реляционном, документно-ориентированном или распределенном (key-value store).
Читать дальше →

Mash — язык программирования, компилирует сам себя

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

Приветствую всех в новом 2020-м году.

С момента публикации первого поста про Mash прошел практически ровно 1 год.

За этот год язык был сильно доработан, были продуманы многие его аспекты и определен вектор развития.

Этим всем я рад поделиться с сообществом.
Читать дальше →

Вещи, которые вы [возможно] не знали о Java

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

Приветствую, читатель!


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

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

А суть-то в чём, или Минимизация исходников — проще, чем кажется

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

В эти чудесные январские дни всех нас, конечно, волнует вопрос минимизации исходного кода с сохранением инварианта. В смысле, не волнует?!? Зря… Вот упал у вас компилятор, а программа гигантская — как-то неудобно такое разработчикам слать. И тут начинается веселье: а если вот это выкинуть? О, не падает — ладно, оставляем, а если это? — всё ещё падает, и это, и это, и то… Ой, я компилятор на старых исходниках запускал.


В то же время, автоматизация поиска багов — дело-то житейское: git bisect, llvm-bugpoint, creduce,… В статье я опишу yet another способ решения проблемы упрощения тестового случая, более-менее универсальный по отношению к языку программирования, и покажу некоторые примеры использования.

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

Регистрация и авторизация с помощью Spring Security на примере простого приложения

Время на прочтение21 мин
Охват и читатели370K
Добрый день!

В этой статье будет рассмотрено создание простого веб приложения с использованием Spring Boot и Spring Security. В приложении будет реализована регистрация новых пользователей и авторизация, ограничение доступа к страницам сайта в зависимости от роли пользователя.
Главная цель статьи показать как можно ограничить доступ к различным страницам сайта для пользователей с разными ролями.

Что будет представлять из себя приложение


Сайт со следующими страницам:

  • страницы доступные всем пользователям: главная, регистрации и логина;
  • страница доступная для зарегистрированных пользователей: новости;
  • страница доступная для администратора.

Что будем использовать


  • JDK 8+;
  • Intellij Idea;
  • Spring (Spring Boot, Spring MVC, Spring Security);
  • Hibernate;
  • JSP;
  • PostgreSQL.
Читать дальше →

История эволюции интерфейсов в Java

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

Интерфейс в Java сильно эволюционировал за прошедшие годы. Давайте рассмотрим, какие изменения произошли в процессе его развития.
Читать дальше →