Обновить
147.09

Java *

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

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

Microsoft представила собственный бесплатный дистрибутив OpenJDK, пообещав длительную поддержку

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

Корпорация Microsoft на днях начала распространять свой дистрибутив Java на основе OpenJDK. Проект бесплатный, он распространяется под лицензией GPLv2. В его состав входят исполняемые файлы для Java 11 и Java 16, базирующиеся на OpenJDK 11.0.11 и OpenJDK 16.0.1. Новый релиз Java 16 уже используется миллионами геймеров, играющих в Minecraft, вместе с Minecraft Java Edition Snapshot version 21W19A.

Компания подготовила сборки для всех популярных операционных систем, включая Linux, Windows и macOS — для архитектуры x86_64. Есть еще и OpenJDK 16.0.1 для систем ARM, работающий под Linux и Windows. Загрузить и использовать новинку может любой пользователь, на полностью бесплатной основе.
Читать дальше →

Способы логирования Hibernate

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

Приветствую, дорогие друзья! Меня зовут Алексей, и я backend java developer. На одном из моих проектов была задача -  предоставлять по требованию SQL запросы уходящие в БД, для этого их решили логировать.  В этой статье я постараюсь поделиться несколькими способами, которыми можно достичь данной задачи.

Проект был написан на Spring, поэтому все примеры будут на нём. Запросы были написаны с использованием JPA или сгенерированны через Spring Repository.

Читать далее

Путь казахстанского разработчика: как я пришел к Java

Время на прочтение4 мин
Охват и читатели7.4K
Привет! Меня зовут Бинали, я руководитель отдела разработки в Beeline Казахстан, работаю в компании почти год. Пришёл в Beeline 1-го июня 2020-го года на позицию Java-разработчика, сейчас я менеджер отдела по разработке ESB. Менеджмент начинает занимать много времени, но пока ещё есть время, чтобы иногда взять задачу в разработку, дабы не потерять навыки программирования.

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


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

C# vs Kotlin

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

Когда речь заходит о сахаре и модных фичах в языках программирования, среди первых вариантов в уме всплывают C# и Kotlin. Поскольку эти два языка занимают схожие ниши, то есть, строго типизированы, обладают сборкой мусора, кроссплатформенны, применяются как на бекенде, так и в мобильной разработке, то сегодня мы попытаемся сравнить их синтаксические возможности. Чтобы сравнение прошло честно, будем рассматривать последние версии обоих языков, а в конце нас ждет небольшой опрос, который и определит победителя. Оговорюсь о своей непредвзятости: мне одинаково нравятся оба языка, они находятся в непрерывном развитии и не отстают друг от друга. Эта статья является сравнительной, а не обучающей, поэтому некоторые заурядные синтаксические возможности могут быть опущены.

Поехали

Инициализация Rx цепочки

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

Всем привет, меня зовут Иван, я Android-разработчик. Сегодня хочу поделится своим опытом работы с RxJava2 и рассказать, как происходит инициализация цепочки. Почему я вообще решил поднять эту тему? Пообщавшись со знакомыми разработчиками, я понял, что не каждый кто использует этот инструмент понимает, как он работает. И тогда я решил разобраться как же устроены подписки в RxJava2 и в какой последовательности вся работа инициализируется. Я не нашел ни одной статьи, поясняющей это. В свете этого я полез в исходники, чтобы посмотреть, как же все работает и набросал для себя небольшую шпаргалку, которая выросла в данную статью.

В этой статье я не буду описывать что такое Observable, Observer и все остальные сущности, которые используются в RxJava2. Если вы решили прочитать данную статью, то я предполагаю, что вы уже знакомы с этой информацией. А если вы всё же не знакомы с этими понятия, то я рекомендую перед началом чтения ознакомиться с ними.

Вот с чего можно начать:

Грокаем* RxJava

Исследуем RxJava 2 для Android

Давайте посмотрим, как работает простейшая цепочка.

Читать далее

Развеиваем мифы об управлении памятью в JVM

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

В серии статей я хочу опровергнуть заблуждения, связанные с управлением памятью, и глубже рассмотреть её устройство в некоторых современных языках программирования — Java, Kotlin, Scala, Groovy и Clojure. Надеюсь, эта статья поможет вам разобраться, что происходит под капотом этих языков. Сначала мы рассмотрим управление памятью в виртуальной машине Java (JVM), которая используется в Java, Kotlin, Scala, Clojure, Groovy и других языках. В первой статье я рассказал и разнице между стеком и кучей, что полезно для понимания этой статьи.
Читать дальше →

Новые функции языка, начиная с Java 8 до 16

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

Улучшения языка Java, которые вам следует знать

Последнее обновление 30.03.2021, чтобы включать изменения до JDK 16.

Когда в Java 8 были представлены Streams и Lambdas, это было большим изменением, позволившим использовать функциональный стиль программирования с гораздо меньшим количеством шаблонного кода.

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

Читать далее

Язык определения интентов NlpCraft IDL

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

Данная статья является продолжением заметки “Проектируем интенты с Apache NlpCraft” и содержит детальное описание возможностей языка определения интентов NlpCraft IDL, созданного для использования в NLP проектах основанных на системе Apache NlpCraft. Поддержка NlpCraft IDL добавлена в систему начиная с версии 0.7.5.   

Новая версия декларативного языка определения интентов, получившая название NlpCraft IDL (NlpCraft Intents Definition Language), значительно упростила процесс работы с интентами в диалоговых и поисковых системах, построенных на базе проекта Apache NlpCraft и вместе с тем расширила возможности системы.  

Читать далее

MastermindCMS – что это такое? Система управления контентом? Фреймворк?

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

Вот и пришло время подвести итоги нашей разработки. Эта статья станет заключительной в описании истории развития нашего проекта. Я постараюсь подробно рассказать о полученном опыте создания нового инструмента для построения веб-сайтов.

Миллионы web-проектов увидели свет, но изо дня в день программисты все еще пишут тонны исходного кода, решая похожие задачи на разных инструментах. Речь в этой статье пойдет о технологии, которую мы разрабатываем на протяжении 4-х лет. Я уже ранее рассказывал о том, какой была моя задумка и цель в создании данного продукта и чего именно я хотел добиться, программируя инструмент для повседневной рутинной разработки веб-приложений. Мне пришлось пройти свой путь от презентаций моего продукта на стартап-pitch'ах и хакатонах и до получения первого реального проекта в сети, где я смог успешно применить мою разработку.

Все началось в далеком 2017 году, когда мне пришла идея написать для себя сайт. Я, недолго думая, взял Drupal и настроил его как headless-cms. Мне хотелось написать отдельно фронтэнд и не копаться с темами от Drupal. Но что-то пошло не так! Я столкнулся с множеством ограничений в проектировании сущностей в административном интерфейсе. Тогда я решил попробовать это сделать на WordPress. Но я совсем не ожидал, что мне придется создавать отдельные контроллеры под каждый тип сущности. Но честно признаться - меня это расстроило. В Drupal хотя бы есть Views, которые относительно легко сконфигурировать в административной консоли и создать endpoint'ы для доступа через REST API, но тем не менее там есть свои ограничения. После этого я провел небольшой анализ существующих CMS и понял, что придется писать все под себя.

Читать далее

Подробно о PECS

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

Всем привет. Сегодня я хочу поговорить о принципе PECS. Понимаю, что сейчас гуру программирования и многоопытные сеньоры в очередной раз впечатали ладонь в лицо, ибо «Java Generics появились в JDK 1.5, которая вышла 30 сентября 2004 года…». Но если есть те, для кого принцип PECS остаётся туманным и непонятным, а упорное гугленье только сгущает «туман», добро пожаловать под кат, будем вместе разбираться до полного духовного просветления. Хочу сразу предупредить, что в данной заметке не рассматривается, что такое дженерики и что такое wildcard. Если вы не знакомы с данными понятиями, то перед чтением необходимо с ними разобраться.

Читать далее

Реализация “чистой архитектуры” в микросервисах

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

Сейчас многие проекты используют микросервисную архитектуру. Мы также не стали исключением и вот уже больше 2х лет мы стараемся строить ДБО для юридических лиц в банке с применением микросервисов.



Авторы статьи: ctimas и Alexey_Salaev
Читать дальше →

Как оптимизировать повседневные backend-задачи: три видео с митапа по Java

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

20 мая прошел седьмой митап для Java-разработчиков ЮMoney Jam. Смотрите видео от наших докладчиков, которые делятся кейсами:

— Как добавлять в чистовой код на Java тестовое поведение и спать спокойно.

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

— Как не попасть в Jar Hell.

Смотреть видео

Работа с java.time в Kotlin: любовь, боль, страдания

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

Микоропост о том, как можно себя обмануть при использовании фичи Котлин: возможность работы с операторами сравнения типа Comparable.

Кто юзает Котлин не могли не оценить перегрузку операторов (ну точнее как она сделана), правда я допустим жил в Java и без нее прекрасно, но да тут не об этой фичи языка, а об основанной на ней: Comparison Operations. Это когда можно применять знаки сравнения для классов, реализующих Comparable, что является сахаром, но очень приятным.

Читать далее

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

Почему Kotlin лучше Java?

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

Это ответ на переведенную публикацию «Почему Kotlin хуже, чем Java?». Поскольку исходная аргументация опирается всего на два примера, то не теряя времени пройдем по этим «недостаткам» Kotlin.

Читать далее

«Почему Kotlin хуже, чем Java?»

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

Такой провокационный вопрос задал реддитор nenemen в сабреддите Java:

«Я думаю о том, чтобы свой следующий проект сделать на Kotlin + Spring Boot, но мощь всенародной любви к Kotlin и одновременно ненависти к Java заставляют всё это походить на какой-то культ. Поэтому хотел бы услышать аргументы «против».

Мы в FunCorp в своё время сделали именно такой выбор в пользу Kotlin. И сегодня соотношение Java/Kotlin у нас составляет примерно 20 на 80, продолжая уменьшаться при каждом удобном случае. Поэтому ответы на этот вопрос меня заинтересовали, и я стал листать секцию комментариев. Там наткнулся на реплику реддитора rzwitserloot, которая мне показалась настолько взвешенной, многосторонней и рациональной, что я захотел поделиться ей с нашей командой, а заодно и читателями Хабра.

Далее перевод его аргументов.

Читать далее

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

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

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

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

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

Чтобы понять актуальность проблемы можно рассмотреть весьма условный пример – строительная генподрядная компания строит жилой дом. Для этого есть проектная документация, которая определяет, кроме всего прочего, и объем трудозатрат (одна из основных статей затрат в строительстве) по каждому этапу строительства и каждому виду работ. То есть чтобы построить дом за определенный срок и за определенные деньги нужно иметь инструменты для правильной организации труда, анализа и контроля, которые позволят отслеживать прогресс проекта, контролировать затраты человеко-часов на работы и сравнивать реально затраченные (и, как правило, оплачиваемые) человеко-часы с объемом выполненных работ. Если инструментов нет, то неэффективность организации работы приводит к низкой производительности труда, увеличению сроков строительства и, как следствие, росту стоимости. До поры до времени компании могут свою неэффективность закладывать в себестоимость работ (услуг), но этот процесс не вечен.

Читать далее

Как на самом деле работает auto-commit в Kafka и можем ли мы на него рассчитывать?

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

В этой статье я хочу чуть подробнее раскрыть как же устроен механизм auto-commit у слушателей в библиотеке kafka-clients.

Читать далее

9 лучших практик для обработки исключений в Java

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

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

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

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

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

Читать далее

Битва Java-разработчиков Tech Monsters Night от «М.Видео-Эльдорадо»

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


4 июня состоится Tech Monsters Night. Специалисты уровня middle&senior Java Script, Java 15, Reactive Java, Spring Framework 5, Spring Boot 2, Kafka других и фреймворков эта битва для вас!

5 часов эпичного файта: нетривиальные задачки от лидов «М.Видео-Эльдорадо» и скиловые противники. Сразу после боя — лидерборд, вы увидите рейтинг, ники победителей и призы.

Сравнение современных построителей образов контейнеров: Jib, Buildpacks и Docker

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

В этой статье будут рассмотрены и сравнены различные методы контейнеризации ваших Java-приложений. Эти инструменты позволят вам получить контейнерное приложение с минимальными настройками. Возможно, вам даже не потребуется устанавливать Docker или работать с Dockerfile. К концу этой статьи вы сможете решить, какой построитель образов контейнера является самым быстрым, потребляет наименьшее количество ресурсов, проще в настройке и лучше всего подходит для вашего сценария использования.

Читать далее

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