Pull to refresh
0
@Jnsterread⁠-⁠only

User

Send message

Как расширить JPA для работы с PostgreSQL

Level of difficultyMedium
Reading time4 min
Views5.6K

Всем привет! Меня зовут Антон, я — архитектор компании ITFB Group. Пережив несколько проектов, на которых встречается стек PostgreSQL с использованием связки PostgreSQL + JPA, мне удалось устранить большое количество проблем, связанных с неоптимальной интеграцией функциональности PostgresSQL в Java-приложения. В этой cтатье мы максимально подробно разберем, как можно настроить JPA для эффективной работы с PostgreSQL. Всем, кому интересна эта тема, добро пожаловать под кат)

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments8

Java-рантаймы с точки зрения Spring Boot

Level of difficultyEasy
Reading time10 min
Views6.4K

На первый взгляд, выбор правильного Java-рантайма для вашего проекта на Spring Boot может показаться тривиальным. В конце концов, все популярные рантаймы основываются на коде OpenJDK и предлагают одинаковые программные интерфейсы (от англ. Application Programming Interface).

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

Оригинал статьи написан на английском языке Aleksey Stukalov, который является Team Lead’ом проекта IntelliJ IDEA в компании JetBrains, и Catherine Edelveis, работающей Developer Advocate в компании BellSoft, в соавторстве.

Читать далее
Total votes 14: ↑14 and ↓0+15
Comments6

Обновление Java с 17 на 21: через тернии к звездам

Level of difficultyEasy
Reading time10 min
Views7.1K

Меня зовут Денис, я тимлид команды R&D в Naumen Service Management Platform.

Так как наш продукт написан в основном на Java, мы с большим нетерпением ждали очередной LTS релиз в прошлом году, предвкушая мощь виртуальных потоков и крутизну доработанного pattern matching.

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

Читать далее
Total votes 18: ↑15 and ↓3+14
Comments28

Коварные утечки памяти в React: как можно обжечься на useCallback и замыканиях

Reading time9 min
Views7.5K
image

Я работаю в Ramblr, это ИИ-стартап, где мы строим на React сложные приложения для аннотирования видео. Недавно мне попалась сложная утечка памяти, которая возникает при одновременном использовании замыканий JavaScript и хука useCallback в React. Поскольку я вырос на .NET, мне потребовалось немало времени, чтобы разобраться в происходящем. Поэтому я решил написать этот пост и рассказать вам, чему меня научила эта ситуация.
Читать дальше →
Total votes 14: ↑14 and ↓0+22
Comments24

Творим дичь с помощью инструментов веб-разработки

Level of difficultyHard
Reading time11 min
Views14K

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

Читать далее
Total votes 40: ↑40 and ↓0+51
Comments15

Как защитить веб сервисы при помощи шлюза OpenIG

Level of difficultyMedium
Reading time16 min
Views998

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

Исходный код для статьи https://github.com/maximthomas/openig-protect-ws/

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments0

WhatsApp, Discord и как организовать одновременную коммуникацию для миллионов пользователей

Reading time10 min
Views4.7K

Я фулстек-разработчик, индивидуальный предприниматель. По моему опыту, один из самых востребованных классов проектов, за разработкой которых к нам обращаются, — приложение для работы в режиме реального времени. Конечно, вам такие приложения известны: WhatsApp, Discord, Slack, т.д. При разработке приложений для работы в режиме реального времени следует учитывать различные факторы, в частности, масштабируемость, отказоустойчивость, отзывчивость и распределённость. Это задача не из лёгких, в особенности для небольшой команды или разработчика‑одиночки.

Но что если бы я вам сказал… что можно создавать приложения для работы в режиме реального времени, которые можно масштабировать более чем на миллион пользователей силами всего нескольких разработчиков? К тому же, такие приложения можно было бы развёртывать почти без задержек и ценой минимальных затрат. Здесь я имею в виду, что для этого нужно освоить секретное оружие под названием «Виртуальная машина Erlang» или BEAM (Абстрактная машина Богдана/Бьёрна для языка Erlang).

Читать далее
Total votes 10: ↑8 and ↓2+8
Comments1

Введение в Cloud native. Часть 2. Принципы облачных приложений

Level of difficultyEasy
Reading time5 min
Views2K

В прошлой первой части мы рассмотрели само понятие Cloud native и модели облачных вычислений. А так же выделили концепцию облачных приложений. В этой части рассмотрим их принципы.

Читать далее
Rating0
Comments1

Введение в Cloud native. Часть 1. Определение и модель облачных вычислений

Reading time5 min
Views3.7K

Широкое распространение облачных технологий привело к появлению парадигмы в разработке, внедрения и обслуживании компьютерных систем. Наиболее закрепившееся название этой парадигмы - "Cloud native".

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments0

Amplicode: учим IDE говорить на языке фреймворка

Level of difficultyEasy
Reading time8 min
Views7.9K

Вы когда-нибудь задумывались, как много кода, который мы пишем, предназначено именно для решения поставленных задач? Казалось бы, странный вопрос: зачем писать код, который не нужен? Но давайте подумаем, ставят ли разработчику бизнес-задачу написать скрипты миграции? Или подключить Kafka? А может быть, написать тесты? Настроить annotation processor? Можно утверждать, что большая часть кода, который мы пишем ежедневно, обслуживает другой код, который решает бизнес-задачи. Демаркационную линию между ними провести очень сложно. Да и нужно ли?  

Сегодня мы хотим представить вам наш новый продукт - Amplicode. Это целая коллекция инструментов, работающих на основе IntelliJ IDEA Community, Ultimate и VS Code. Amplicode учит вашу IDE говорить и думать на языке библиотек и фреймворков – Spring Boot, JPA, Docker, Kafka, Liquibase, MapStruct, StoryBook, ReactAdmin. Все эти инструменты объединены общими принципами, что гарантирует быстрое погружение и удобную работу, несмотря на обилие функций. В результате вы пишете «обслуживающий» код быстрее, эффективнее и качественнее. Как это работает? Расскажем под катом.

Читать далее
Total votes 20: ↑19 and ↓1+21
Comments9

Собственные проекты, углубленная практика алгоритмов и другое: поднимаем навыки программирования на новый уровень

Level of difficultyEasy
Reading time7 min
Views5.4K

Неважно, новичок ли вы, отлаживающий вашу первую программу «Hello World», или опытный инженер, — у каждого из нас всегда есть возможность улучшить свои навыки. Александр Шелютин, Data Architect в KarmaHQ, расскажет о разнице между тем, как просто заставить что-то работать, и написанием действительно хорошего кода.

Читать далее
Total votes 7: ↑4 and ↓3+3
Comments0

Java Digest #12

Level of difficultyEasy
Reading time6 min
Views5K

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

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

В этом месяце в меню обновления: Intellij Idea с модным терминалом и AI-подсказками, миграции на новые версии Spring Boot за пару кликов в новой версии Java on VS Code, не забыли обновить и Micronaut, GraalVm, PMD и JMC. На горячее JEPы: Exception handling in switch, Derived Record Creation, Stream Gatherers, Vector API, String Templates. Не забыли и про бесплатный сыр — доступ к Spring Academy Pro. 

Утоляем голод по новым знаниям интересными статьями и видео, для любителей экзотики — новые инструменты сборки, если не пробовали bld. А на десерт стоит присмотреться презентациям с прошедшего Jpoint 2024. 

Читать двенадцатый выпуск
Total votes 22: ↑22 and ↓0+23
Comments5

Быстрее, выше, сильнее: оптимизируем Spring-контекст для тестов

Level of difficultyMedium
Reading time22 min
Views4.6K

Всем привет! Я Юнес, SDET в Тинькофф. Помогаю автоматизаторам создавать более эффективные и надежные тесты, готовить тестовые данные и настраивать CI/CD-пайплайны. 

Расскажу о доступных способах оптимизации Spring-контекста для тестов. Будет здорово, если у вас есть знания о Spring Framework и опыт написания тестов: тогда мы будем на одной волне. Давайте разберемся в хитросплетениях аннотаций и конфигураций вместе под катом!

Читать далее
Total votes 9: ↑8 and ↓1+7
Comments4

Декомпозиция — ваша суперсила

Level of difficultyMedium
Reading time7 min
Views11K

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

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

Читать далее
Total votes 27: ↑26 and ↓1+25
Comments2

От технарей — для технарей: как я заглянул в будущее на конференции SmartDev 2023

Level of difficultyEasy
Reading time12 min
Views17K

Привет, Хабр! На связи Андрей Аврамчук (@Mimizavr). Недавно я побывал на конференции «Сбера» SmartDev 2023. Там у Хабра была собственная медиастудия, где мы поговорили о новых продуктах со спикерами компании.

Прямо скажу, почувствовал себя Фраем из Футурамы. Оказалось, будущее наступило, а я даже не заметил. И ключевой вопрос айтишного будущего: как сплотить сообщество? Если хотите узнать, какие ответы на него давали спикеры-эксперты — от Евгения Касперского до гендиректора Gitee, приходите под кат. Я расскажу, что увидел, заглянув в будущее, и что о нём рассказали спикеры «Сбера». 

Увидеть будущее
Total votes 14: ↑10 and ↓4+18
Comments8

Как упростить себе жизнь: удобные юнит-тесты с JUnit и AssertJ

Level of difficultyEasy
Reading time10 min
Views14K

Для тестирования Java-приложений создано столько полезных инструментов, что в них немудрено запутаться. Вместе с тем с помощью каждого из них можно решить строго определенный круг прикладных задач. Меня зовут Константин Шибков, я старший Java-разработчик CDEK и программный директор курсов по Java в Skillbox. Сегодня расскажу о практике использования фреймворка для модульного тестирования JUnit 5, а также покажу на конкретных примерах, как проводятся стандартные юнит-тесты и параметризованные тесты. Вы сможете самостоятельно повторить их, воспользовавшись подготовленным репозиторием с готовыми примерами тестов на Java. 

Читать далее
Total votes 17: ↑15 and ↓2+19
Comments4

Советы по оптимизации кода на Java: как не наступать на грабли

Reading time10 min
Views35K
Добрый вечер, коллеги.

Перевод статьи, который мы вам предложим сегодня, призван помочь ответить на вопрос: а назрела ли необходимость целой книги по оптимизации кода на Java? Надеемся, что материал не только покажется вам интересным, но и пригодится на практике. Пожалуйста, не забудьте проголосовать.
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments15

Information

Rating
Does not participate
Registered
Activity