Как стать автором
Обновить
169.01

Java *

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

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

Влезай — не убьёт! Как я попал из электромонтеров в разработчики

Время на прочтение6 мин
Количество просмотров6.7K

Привет! Меня зовут Иван, я бэкенд-разработчик в ЮMoney. Программистом я был не всегда: десять лет работал электромонтером. В своем первом посте расскажу, как попал в IT.

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

Читать историю успеха
Всего голосов 20: ↑16 и ↓4+12
Комментарии18

Автоматическое создание changeSet'ов Liquibase из Java entity

Время на прочтение6 мин
Количество просмотров8.9K

При разработке и дальнейшей поддержки приложения база данных изменяется: добавляются, удаляются таблицы, столбцы и т.д. Для упрощения отслеживания изменений существует Liquibase. Эта библиотека, в начале запуска приложения решает, надо ли на конкретной базе выполнить конкретные скрипты, или же они в ней уже выполнены.

Каждый раз при добавление или изменение Entity, мы должны добавить новый changSet. Но что если я скажу, что есть плагин, который сам создает changeSetы на основе нашей Entity и уже существующей структуры базы данных?

Нам понадобится java, spring, gradle и liquibase plugin.

Начальные данные

Для начала нужно создать проект и пару простых Entity.

В файл build.gradle добавляем плагин:

plugins {
id 'org.liquibase.gradle' version '2.0.4'
}

Можно так же указать в переменных файл

liquibase {

activities {

main {

changeLogFile "$buildDir/generated-migrations.yaml"

url database.getProperty("dbUrl")

username database.getProperty("dbUsername")

password database.getProperty("dbPassword")

referenceUrl 'hibernate:spring:entity?dialect=org.hibernate.dialect.PostgreSQL10Dialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy'

logLevel 'debug'

}

runList = "main"

}

}

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии8

Zeebe и Camunda: сравниваем известные BPM-системы под высокими нагрузками

Время на прочтение12 мин
Количество просмотров25K

Всем привет! Меня зовут Николай Первухин, я Senior Java Developer в Райффайзенбанке. В последнее время я активно занимаюсь BPM-системами Camunda и Zeebe (основа Camunda-cloud). Если вы, как и я, с ходу не можете ответить на вопрос, кто быстрее — Camunda или Zeebe, насколько, и в каких случаях они могут тормозить, то добро пожаловать под кат.

Читать далее
Всего голосов 17: ↑16 и ↓1+15
Комментарии7

ZGC | Что нового в JDK 17

Время на прочтение8 мин
Количество просмотров7.5K

JDK 17 был выпущен 14 сентября. Это релиз Long-Term Support (LTS), что означает, что он будет поддерживаться и получать обновления в течение многих лет. Также это первый выпуск LTS, в который включена продакшн-реди версия ZGC. Освежим вашу память: экспериментальная версия ZGC была включена в JDK 11 (предыдущий выпуск LTS), а первая продакшн-реди версия ZGC появилась в JDK 15 (выпуск не LTS).

В JDK 17 ZGC получил 41 исправление и улучшение, и я остановлюсь на некоторых из них. Но прежде чем перейти к этому, если вам интересно узнать больше о возможностях/улучшениях ZGC в предыдущих выпусках JDK, прочитайте мои прошлые сообщения.

Читать далее
Всего голосов 10: ↑8 и ↓2+6
Комментарии1

Истории

Обзор прошедших конференций JUG Ru Group и анонс весенних: Heisenbug, DotNext, HolyJS, JPoint, Mobius, C++ Russia, Hydra

Время на прочтение10 мин
Количество просмотров2.6K

Мы провели этой осенью девять конференций, причём у каждой часть программы сразу сделали доступной всем. И теперь хотим:

— поделиться с Хабром видеозаписями общедоступной части (суммарно по всем конференциям это более ста часов видео!)

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

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

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии6

Создаем нативный образ при помощи Spring Boot

Время на прочтение10 мин
Количество просмотров6K

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

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

По Википедии

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

«Интернет в огне»: критическая уязвимость Log4Shell терроризирует онлайн-сервисы

Время на прочтение3 мин
Количество просмотров46K


Критическая уязвимость в Java, в библиотеке log4j, которая используется в тысячах сервисов, начиная от Minecraft и заканчивая Apple Cloud, быстро превращается в серьезную угрозу для организаций по всему миру. Уязвимости подвержены сервера Apple, Valve, Microsoft и других.

Читать дальше →
Всего голосов 45: ↑36 и ↓9+27
Комментарии62

TINKOFF-INVEST. Разработка торгового робота на JAVA. Часть 1

Время на прочтение16 мин
Количество просмотров21K

Многие что-то слышали, некоторые даже пробовали, но лишь единицы рассказали о таком мощном и удобном инструменте автоматизации биржевой торговли, как TNIKOFF INVEST API. Полностью раскрыть все возможности API или написать полноценного робота в рамках одной статьи – непосильная задача, поэтому будем двигаться постепенно, не перегружая мозг читателя чрезмерным объемом информации.

Если разработка программного обеспечения не входит в сферу ваших интересов, но слова "акции" и "брокер" не являются чуждыми, то загляните под кат ради интереса, где можно будет узнать о том, что тикер неуникален, а также о таких идентификаторах, как ISIN и FIGI, кроме того, в конце статьи будет доступен для скачивания свод инструментов, доступных у брокера TINKOFF. Чуть не забыл, еще и про всеми любимый Agile немного можно почитать.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии30

Возможности Java — от Java 8 до Java 17

Время на прочтение19 мин
Количество просмотров29K

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

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

Примечание переводчика,

Эта статья переведена по просьбе одного из читателей Хабр. Надеюсь она будет полезна как краткий справочник по новым фичам языка Java 8 - 17.

Читать далее
Всего голосов 20: ↑13 и ↓7+6
Комментарии12

Разбор вступительных заданий в Школу Программистов hh.ru 2021

Время на прочтение6 мин
Количество просмотров12K

Привет! Подошел к концу двенадцатый набор в Школу Программистов hh.ru. Самое время рассказать, как Петр Васильевич раздавал премии менеджерам, кто вышел победителем из "Релиза до выходных" благодаря ролевому помощнику, и как впервые в истории Школы нам пришлось облегчить условия вступительного задания прямо во время набора. 

В этой статье будет подробный разбор заданий свежего набора в Школу Программистов hh.ru.

Поехали разбираться
Всего голосов 9: ↑9 и ↓0+9
Комментарии13

GraphQL + SPQR + Spring Boot Starter 2021

Время на прочтение3 мин
Количество просмотров5.2K

GraphQL + SPQR + Spring Boot Starter 2021

GraphQL — это язык запросов к API-интерфейсам. Он отображает предоставляемые сервером данные, чтобы клиент смог выбрать именно то, что ему нужно. GraphQL SPQR призван упростить добавление GraphQL API в любой Java-проект. SPQR работает, динамически генерируя схему GraphQL из кода Java по средствам аннотаций. Перейдем к самой сути!

Читать далее
Всего голосов 6: ↑3 и ↓30
Комментарии12

Как сделать маппинг полиморфных JSON-объектов с помощью JPA и Hibernate

Время на прочтение6 мин
Количество просмотров11K

В этой статье я собираюсь показать вам, как можно выполнять маппинг полиморфных объектов JSON используя JPA и Hibernate.

Поскольку Hibernate не поддерживает JSON нативно, то для достижения этой цели я буду использовать библиотеку Hibernate Types.

Читать далее
Всего голосов 5: ↑3 и ↓2+1
Комментарии6

“Вы бигдату анализируете?” Чем занимаются разработчики в исследовательской компании

Время на прочтение9 мин
Количество просмотров8.4K

Мы в Mediascope считаем аудиторию ТВ, интернета, радио и прессы. Мониторим контент в СМИ. Измеряем потребительские предпочтения россиян. Фиксируем выходы рекламы во всех медиа. В результате пользователи наших данных получают огромное количество датасетов для анализа и решения самых разных задач бизнеса. Кроме того, многие наши данные лежат в основе рекламных взаиморасчетов медиарынка и являются своего рода индустриальной "валютой" в диалоге разных его игроков.

Кому все это нужно? Компаниям, работающим на российском рынке рекламы (сегмент - сугубо В2В) - непосредственно СМИ, медиа-холдингам, рекламным агентствам и компаниям-рекламодателям.

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

Расскажем обо всем поподробнее.

Поехали!
Всего голосов 15: ↑14 и ↓1+13
Комментарии7

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

Настройка Podman для Quarkus Dev Services и Testcontainers в Linux

Время на прочтение4 мин
Количество просмотров2.5K

Podman - это контейнерный движок без демонов (daemonless) для разработки, управления и запуска контейнеров в системах Linux. Начиная с выпуска версии 3, Podman позволяет пользователю запускать службу, имитирующую Docker API. Это позволяет использовать Testcontainers и Quarkus Dev Services вместе с Podman.

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

Основы HTTPS, TLS, SSL. Создание собственных X.509 сертификатов. Пример настройки TLSv1.2 в Spring Boot

Время на прочтение10 мин
Количество просмотров83K

Привет, Хабр! В современном мире абсолютное большинство сайтов используют HTTPS (Google даже снижает рейтинг сайтов работающих по HTTP в поисковой выдаче), а подключение к различным системам происходит по протоколу TLS/SSL. Поэтому любой разработчик рано или поздно сталкивается с этими технологиями на практике. Данная статья призвана помочь разобраться, если вы совершенно не в курсе что это такое и как оно устроено. Мы разберем как работает соединение по протоколу TLS, как выпустить собственные сертификаты и настроем TLS в Spring Boot приложении. Поехали!

Читать далее
Всего голосов 17: ↑13 и ↓4+9
Комментарии12

Code Review. 80 lvl

Время на прочтение4 мин
Количество просмотров18K

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

Основными критериями качественного кода являются следующие: простота восприятия, гибкость для модификаций, возможность обновления, понятность, тестируемость. Однако зачастую работа над проектом ведется в спешке, под давлением и код пишется людьми с разным уровнем квалификации (с разным мышлением). И даже опытные разработчики не всегда пишут код самого высокого качества. Поэтому для повышения качества кода проводится процедура code review.

Читать далее
Всего голосов 18: ↑17 и ↓1+16
Комментарии13

Включение метрик Apache Camel в Spring Boot Actuator Prometheus

Время на прочтение4 мин
Количество просмотров2.7K

В данной статье я привёл решение проблемы интеграции Apache Camel метрик с Spring Boot Actuator Prometheus, которое мне не встречалось в интернете.

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

MastermindCMS2 vs Next.js

Время на прочтение5 мин
Количество просмотров3K

Подходит концу 2021 г. и я думаю сейчас самое время подвести итоги как продвигалась веб разработка в условиях пандемии в мире и какие технологии сейчас используется для веб-программирования. 

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

Платформы с предложениями о работе в IT-сфере, просто кишат вакансиями фронтенд разработчиков со сознанием React.

С одной стороны React нам дал возможность частями программировать интерфейс пользователя, разбирая его на части. А с другой стороны мы получили “молоток и гвозди” с помощью которых нам придется построить дом. И получилось так что сообщество программистов использует фреймворк React, чтобы написать свой фреймворк. И поэтому на рынке появляются новые фреймворки, основанные на React, которые уже решают конкретные задачи на реальных проектах. Одним из таких фреймворков является Next.js

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

А вот что конкретно сделали разработчики Next.js мы рассмотрим и сравним в этой статье с технологией MastermindCMS2. Поехали!

Fight!
Всего голосов 6: ↑4 и ↓2+2
Комментарии7

MLflow: вывод моделей в продакшн и инструмент MLOps

Время на прочтение5 мин
Количество просмотров15K

В данной статье речь пойдёт о том, что такое инструмент MLflow и из каких компонентов он состоит. Как работает данный фреймворк, в каких случаях рекомендуется его использовать и какие проблемы он позволяет решить. Затронем основные плюсы и минусы данного инструмента.

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

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

Время на прочтение11 мин
Количество просмотров26K

Привет, Хабр! Обратите внимание, Распродажа «Чёрная Пятница» от издательства «Питер» скоро закончится.

Поговорим о том, как в известных играх, например, Minecraft и Terraria, из ничего генерируются бесконечные и разнообразные миры. Пост снабжен подробными примерами кода.  

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

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

Читать далее
Всего голосов 21: ↑19 и ↓2+17
Комментарии4

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

Работа

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