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

Java *

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

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

Настройка HTTPS для контейнеризированных Java-сервисов

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3.1K

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

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

Для создания приложения мы будем использовать фреймворк Jmix, который основан на Spring Boot и Vaadin, поэтому описанные подходы будут работать также для широкого класса веб-приложений на Spring Boot. 

Мы предполагаем, что вы установили Docker актуальной версии для своей ОС, используя brew, chocolately или deb/rpm.

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

Что скрывается в коде игрового движка, написанного на Java?

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров7.7K

Вы когда-нибудь интересовались игровыми движками, написанными на Java? В этой статье мы рассмотрим и проверим на наличие ошибок в исходном коде один из популярных игровых движков — jMonkeyEngine. Возможно, мы даже узнаем, почему игры пишутся на C# и C++, а не на Java.

Читать далее
Всего голосов 12: ↑14.5 и ↓-2.5+17
Комментарии8

Как создать свой Spring Boot 3 — стартер?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров5.6K

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

Spring Boot starter'ы - отличный способ управлять созданием, развитием и поставкой общей кодовой базы. О том как создать свой Spring Boot 3 стартер и поговорим в этой статье.

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

Java Digest #11

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4.1K

Всем привет! 👋 👋 👋👋

Мы — Java-разработчики Тинькофф: Андрей, Арсений, Константин и Константин — наша команда выросла на целого Костю. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки теперь на 25% больше и делимся этим со всем сообществом.

Главная новость прошедшего месяца: вышла Java 22. В этом выпуске мы собрали много материалов на эту тему: обзоры JEP, видео и статьи, посвященные изменениям. Будут обзоры о новых релизах и дорожная карта Ktor. Нашлось место туториалам, посещенным Testcontainers, ExecutorService, Spring и Java NIO. Кстати, 24 марта Spring 1.0 исполнилось 20 лет — на эту тему тоже есть интересный материал. Приятного чтения 🙂

Читать свежий выпуск
Всего голосов 15: ↑15 и ↓0+15
Комментарии3

Истории

Что нужно знать джависту, чтобы пройти собеседование

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров15K

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

Читать далее
Всего голосов 21: ↑16.5 и ↓4.5+12
Комментарии17

Заставляем дружить OpenGL c JVM на macOS

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1K

Исторически так сложилось, что macOS сильно отличается от других операционных систем, когда дело доходит до нативной работы с окнами и графикой. И нельзя сказать, что это определенно плохо или хорошо. В этом плане Apple решили пойти своей любимой дорогой: "мы лучше знаем что тебе нужно, поэтому сделали все за тебя". Как же это проявляется?

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

А точно ли программистам не нужны алгоритмы?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров15K

Мне 21 год и я работаю программистом всего 4 года, за это время я побывал на 2–3 мелких проектах и 3–4 проектах крупных компаний, таких как: Luxoft (упокой его душу), Альфа, ОТП, ГПБ и др. Так же я часто прохожу собеседования и в другие компании, чтобы «держать себя в форме», собирать статистику и т. п. Прохожу собеседования, в том числе и в крупные финтехи и пока что не хочу туда идти.

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

Читать далее
Всего голосов 36: ↑25 и ↓11+14
Комментарии74

Backend-разработчик: из стажера в джуны

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

Всем привет! Меня зовут Егор, я стажёр backend-разработчик в зарплатном проекте Росбанка (он же Payroll). В этой статье я расскажу про путь становления от «зеленого» стажера до боевой единицы в команде: через что мне пришлось пройти, с какими трудностями я столкнулся и как прокачал свои скилы.

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

Повышение наглядности интеграционных тестов

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2K

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

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

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

Kotlin (не) против Java: особенности компиляции в байткод

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

В 1995 году Sun Microsystems представили Java — объектно-ориентированный язык программирования, основное кредо которого можно сформулировать так: «Написано один раз, работает всегда». В 2011 году как улучшенную альтернативу Java компания JetBrains представила Kotlin — язык с той же философией, но иной реализацией. С тех пор в сообществе программистов между адептами Java и Kotlin ведется непримиримая вражда…

Всем привет! Меня зовут Артем Панасюк, я ведущий backend-разработчик на Java/Kotlin в «Леруа Мерлен». В этом тексте я постараюсь залезть к этим языкам «под капот» и посмотреть, правда ли они такие разные — и в чем преимущества каждого из них.

Читать далее
Всего голосов 16: ↑13.5 и ↓2.5+11
Комментарии21

Паттерны или химеры программирования

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров5.9K

Данная статья будет полезна для Junior / Middle Java разработчиков, которые готовятся к собеседованию или просто развиваются и хотят немного конкретики по части паттернов, и так как в данной статье я покажу 5 паттернов, с которыми мы как разработчики работаем в Java Core, с самого начала нашего пути, то они точно останутся в вашей голове и при последующем написании кода будут только всплывать и крепнуть. И даже просто, не знать что они это они - это не хорошо.

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

Опять транзакции…

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров12K

Всем привет. На своем последнем месте работы я выполнял обязанности Java разработчика в одной из команд сервиса, чье приложение установлено в смартфоне большинства жителей РФ. Использовался стандартный стек технологий: Java, Spring(web, jdbc, core), PostgreSQL, Kafka. Обычное синхронное API по работе с данными, без всякой реактивщины, с нагрузкой более миллиона пользователей в день. Я столкнулся с тем что сервисы по работе с БД были обильно «усыпаны» Spring аннотациями @Transactional. Даже одиночные запросы на чтение данных использовали аннотацию с параметром readOnly=true. Я пытался писать комментарии к мердж‑реквестам с вопросом: «зачем вы это делаете?». Но получал ответы из разряда: «для перфоманса», «у нас так принято, чтобы случайно не упустить случай когда транзакция будет действительна нужна», «раньше у нас была какая‑то проблема с коннектами (какая именно никто так и не вспомнил сколько я не пытал), мы везде добавили аннотации и все заработало». Если интересно чем в итоге закончилась эта дискуссия, то подробности далее.

Читать далее
Всего голосов 33: ↑32 и ↓1+31
Комментарии44

Java Тренажер

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

Хочу представить вашему вниманию бесплатный курс Java Тренажер, который недавно опубликовал на платформе Stepik.

Java — это объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (позднее приобретённой компанией Oracle). Он был выпущен в 1995 году и с тех пор стал одним из наиболее популярных языков программирования благодаря своей платформенной независимости, простоте использования, масштабируемости и широкому спектру применения.

Читать далее
Всего голосов 17: ↑14 и ↓3+11
Комментарии4

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

Стейт-машины: The Good, The Bad and The Ugly

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

Стейт-машины: The Good, The Bad and The Ugly 

Привет! Меня зовут Дарья Андреева, я тимлид в команде бэкенда Биллинга Яндекс 360. Яндекс 360 объединяет такие сервисы, как Диск, Телемост, Почта и другие, в единую экосистему, а мы собираем их в цельный продукт и реализуем функции оплаты и подписочные модели. 

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

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

Telegram Desktop и Compose Multiplatform

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров4.5K

Всем привет! В своей прошлой статье я рассказывал как можно запустить Telegram клиент в качестве backend‑сервиса. В описываемой там библиотеке с тех пор были внесены некоторые оптимизации, и в целом, я остался доволен возможностями, которые получил. После чего возникло желание добавить визуальную часть к имеющемуся бэкенду и заодно изучить что‑то новое для себя. Выбор пал на фреймворк Compose Multiplatform. Давайте сделаем десктопную версию Telegram!

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

Развертывание защищенного dev кластера bitnami/kafka в k8s с помощью helm

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров3.2K

Всем привет. На этот раз хотел бы поделиться материалом, связанным непосредственно с devops работой. Недавно возникла потребность раскатить kafka кластер в kubernetes. В ходе развертывания возникло очень много сложностей, встречено множество подводных камней, и, естественно, в большинстве случаев рецепта в интернете найдено не было, поэтому приходилось искать решения самостоятельно методом проб и ошибок. Все, что здесь будет описано это сугубо личный опыт на одном из проектов. Сегодня я расскажу как с нуля раскатить dev контур bitnami/kafka кластера с помощью helm чартов, как обезопасить ваш кластер kafka и какие сложности могут вам встретиться.

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

На что способны виртуальные потоки Java в обработке файлов

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5.6K

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

Предисловие

Начнем с того,что я не специалист по Java и у меня нет коммерческого опыта на этом языке. Я просто обычный кодер, который по вечерам пилит проекты на Java, а основной мой стек состоит из PHP и смеси Python + Go. В данной статье хочу с вами поделиться опытом с использованием виртуальных потоках (Virtual Threads) в обработке файлов.

Читать далее
Всего голосов 15: ↑13 и ↓2+11
Комментарии9

Как я разрабатывал веб-сервис по бронированию зарядных станций для электромобилей (часть 2)

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.2K

Всем привет, на связи снова Арсений Елисеев! Продолжаем работу над созданием веб-приложения для управления бронью ЭЗС, которое мы начинали ранее: …. Сейчас мы обратим внимание на практические аспекты: построение математической модели метода, его программная реализация и экономическое обоснование разработанного ИТ-решения.

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

JVM, Spring, Kotlin и не только: о чём расскажут на JPoint 2024

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

Как подготовить Java-код к виртуальным потокам? Как (и зачем) писать на Kotlin Script? Какими бывают интринсики? Зачем тащить Undertow? Как логгер должен реагировать на исключение? Как укротить БД? Как машины пишут музыку?

Так много вопросов — и все они найдут ответы на конференции JPoint. Там поговорят и о производительности, и о фреймворках, и об архитектуре — в общем, обо всём, полезном Java-разработчику.

Программа конференции готова, и пришло время представить её Хабру.

Программа JPoint 2024
Всего голосов 14: ↑13 и ↓1+12
Комментарии5

Как я разрабатывал веб-сервис по бронированию электронных зарядных станций для электромобилей (часть 1)

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров2.1K

Привет всем, на связи Арсений Елисеев, я fullstack-разработчик в одном ИТ-интеграторе! Относительно недавно мы получили заказ на разработку веб-сервиса, который позволял бы нашим клиентам, владельцам электрокаров, строить маршруты и на их протяжении бронировать электронные зарядные станции под свои нужды. Я представил свою версию системы и хотел бы поделиться с вами ходом мыслей. Возможно, кто-то захочет прокомментировать мою модель или дать совет.

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

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

Работа

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