Обновить
4
0

Пользователь

Отправить сообщение

История о том, как я вытащил себя из бесконечной ленты и стал успевать все

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

Просыпаюсь, тянусь к телефону, «на минуточку» захожу в Instagram* (*запрещённая соцсеть, ну вы поняли), сморкаюсь в мемы, новости, рилсы, комментарии. Спустя сорок минут уже нужно собираться, кофе не успел сварить, голова гудит — а я ни одной строки в документе не написал.

Такое утро повторялось чаще, чем хотелось бы признавать вслух. В какой‑то момент стало очевидно: если я сразу кормлю мозг быстрым «сахаром» из ленты, он потом воротит нос от любой «брокколи» — от сложных текстов до длинных писем клиентам.

Читать далее

Не UML-диаграммы на PlantUML. Обзор с примерами

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

Привет Хабр! Меня зовут Татьяна Ошуркова, я разработчик и аналитик Назначением инструмента PlantUML принято считать построение UML-диаграмм. Но на самом у него намного больше возможностей и типов диаграмм, которые можно создать.

В этой статья я расскажу о нескольких диаграммах, которые не относятся к UML, но могут быть построены с помощью PlantUML.

Читать далее

net/http: Разбираем работу сервера «под капотом»

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

Всем привет! Эта статья посвящена всеми любимому "разбору под капотом". На этот раз мы взглянем на работу HTTP сервера в Go и разберем некоторые нюансы и ключевые механизмы. Статья будет полезна как новичкам, так и опытным разработичкам!

Читать далее

Архитектурные принципы Spring Security. Часть третья

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

Команда Spring АйО перевела и адаптировала доклад Даниэля Гарнье‑Муару «Spring Security Architecture Principles», в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль. 

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

Читать далее

Архитектурные принципы Spring Security. Часть вторая

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

Команда Spring АйО перевела и адаптировала доклад Даниэля Гарнье-Муару “Spring Security Architecture Principles”, в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль. 

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

Читать далее

Архитектурные принципы Spring Security. Часть первая

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

Команда Spring АйО перевела и адаптировала доклад Даниэля Гарнье-Муару “Spring Security Architecture Principles”, в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль. 

Доклад будет опубликован тремя частями. В первой части будет рассказано об основных подходах к созданию цепочек фильтров, а также разработан простейший фильтр с красивым названием “Es prohibido” (“Это запрещено” в переводе с испанского).

Читать далее

Всё, что вам нужно знать о Feign-клиентах в Spring Boot: Что под капотом, настройка, использование, функции

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

Чтобы сделать вызовы REST API проще и декларативнее, Spring Boot предлагает встроенную интеграцию с Feign‑клиентами. Feign представляет собой HTTP‑клиент, который позволяет разработчикам определять REST‑эндпоинты с помощью интерфейсов Java. Вместо того чтобы писать дублирующийся код для обработки HTTP‑запросов, мы можем определять эндпоинты и их поведение в наглядной и лаконичной форме.

В этой статье мы подробно рассмотрим технические аспекты работы Feign‑клиентов в Spring Boot. Вы узнаете, как их настраивать, как под капотом обрабатываются запросы, ответы и ошибки.

Читать далее

Введение в GitHub Actions. Делаем пайплайн для деплоя Spring Boot проекта на VPS с помощью Docker

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

В этой статье я расскажу как построить простой пайплайн для деплоя Spring Boot проекта на сервере используя GitHub Actions и Docker.

Читать далее

Библиотека для кэширования Caffeine: анализ кода

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

То и дело, прожигая время за чтением reddit, я натыкаюсь на очередной пост, в котором упоминается метод S3 FIFO и говорится, что он лучше LRU (вытеснение реже всего используемых значений) — потому, что даёт более низкий процент промахов кэша. Видные компании, в частности, RedPandas, Rising Wave и Cloudflare уже внедрили S3 FIFO у себя на различных мощностях, что только подогрело мой интерес к нему. Кэши — чертовски интересная тема, а по работе мне приходится сильно полагаться на работу с кэшами при обслуживании нескольких сервисов. Так что я был уверен, что рано или поздно мне потребуется протестировать S3 FIFO или, как минимум, удостовериться, что я понимаю ключевые идеи, заложенные в этой технологии.

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

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

Читать далее

Spring-потрошитель

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

Технические доклады могут быстро устаревать и становиться невостребованными. Но со «Spring-потрошителем» Евгения Борисова получилось совсем иначе: мы провели мероприятие и опубликовали запись ещё 11 лет назад, а её просмотры по-прежнему растут, и уже перевалили за за 500 000. Перед собеседованиями этот доклад порой штудируют обе стороны: соискатели — чтобы подтянуть матчасть, работодатели — чтобы задать заковыристые вопросы.

В общем, получился главный доклад русскоязычного Java-сообщества. И теперь мы решили, что ему будет полезна ещё и текстовая версия на Хабре. Да, что-то в материале устарело (там речь заходит ещё про Java 7), так что делайте поправку на возраст. Но раз этот материал продолжают смотреть в видеоформате, то и возможность делать Ctrl+F кому-то наверняка пригодится.

А если кому-то хочется более свежих Java-докладов — мы тем временем вовсю готовим конференцию JPoint 2025 (пройдёт уже 3-4 апреля).

Далее повествование ведется от лица спикера.

Читать далее

У вас не хватает мотивации, чтобы достичь важной цели? Вот только дело вообще не в мотивации

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

«Ничего не делаю, поскольку мотивации не хватает. Где бы взять мотивацию?» — так рассуждают многие, не понимая, что сама идея гнаться за мотивацией — ошибочна, ведь целей вы не достигаете совсем по другим причинам. По каким же?

Читать далее

WireMock: Легкий путь к эффективному тестированию

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

Привет, меня зовут Иван, и я зануда.

Сразу скажу, что в моем понимании зануда в тестировании — не тот человек, который всех достал и которого все хотят удушить, а тот, который умеет показать людям, что нужно делать хорошо и не делать плохо, и добиться от них этого. Я считаю, что QA должно расшифровываться как Quality Assistant. Это даже не про Assurance, когда вы обеспечиваете качество, это именно про то, что вы как тестировщик и участник команды помогаете на каждом этапе от требований до выкатки в прод и работы с сопровождением и вашими коллегами добиться того, чтобы каждый этап проходил все лучше и лучше.

В тестировании я уже семь лет, для кого-то это маленький срок, для кого-то — большой, я очень впечатлен коллегами, которые работают уже по 15-20 лет, но развиваюсь, стараюсь нести добро в массы. Одна из моих основных специализаций заключается в том, что я прихожу на проекты, которые начинаются с большой бизнес-идеи, движущейся через много команд. Мне нравятся все вопросы межкомандного тестирования, интеграционного взаимодействия, выстраивания стендов, как драйвить коллег, чтобы мы двигались в одном направлении и не словили на проде кучу ошибок — этим я и занимаюсь.

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

Читать далее

Оптимизация SQL запросов

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

Оптимизация SQL-запросов является одной из ключевых задач при работе с реляционными базами данных. Эффективные SQL-запросы позволяют значительно улучшить производительность приложений и обеспечить более быстрый доступ к данным. В данной статье мы рассмотрим как переписать запрос, чтобы выполнялся быстрее. В статье пойдет речь о PostgreSQL, хотя применять данные советы к любой базе данных SQL Ниже будут представлены термины и операторы, о которых пойдет в данной статье.

Читать про оптимизацию

Cоздание Приватной Сети Блокчейн на Go. Часть 1

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

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

Меня зовут Олег, я работаю разработчиком в одной крупной IT-компании и недавно в разговоре со знакомыми логистами, я узнал, что у них в штате работает блокчейн-специалист. Для меня мир логистики был максимально далек от цепочки блоков, как и цепочка блоков от меня, поэтому я решил погрузиться в эту технологию.

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

Нужно понимать, что между наработками, которые я буду рассматривать, и «настоящим» блокчейном есть большая разница: на ранних этапах разработки блокчейн-сеть может иметь низкую производительность, уязвимости и неоптимизированные механизмы консенсуса, которые улучшатся в финальной версии. Но в любом случае этот проект будет основан на ключевых принципах децентрализованных систем. Мой пост будет полезен для таких же новичков, как я, которые имеют некоторый опыт разработки, но с технологией блокчейн не были знакомы или слышали про него краем уха. В этой статье мы рассмотрим, как создать простую приватную сеть блокчейн с использованием языка Go.

Читать далее

OpenTelemetry с нуля до 100: пример внедрения Норвежским управлением труда и соцобеспечения

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

Сейчас OpenTelemetry — это самый быстрорастущий проект CNCF. Опытом внедрения этого набора инструментов для отладки и анализа производительности распределённых систем поделился тимлид платформенной команды Норвежского управления труда и социального обеспечения. В переводе под катом вас ждёт тернистый путь от первых коммитов до реального применения OpenTelemetry в production, а также планы команды на будущее.

Читать далее

Генерация OpenAPI из Spring Boot MVC

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

В этой статье посмотрим, насколько хороша генерация в OpenAPI из Spring MVC (спойлер — довольно хороша), какие есть подводные камни и костыли, чтобы с ними справится.

Наше API будет включать:
— валидацию тела и параметров с помощью JSR-303 
— различные коды ответа с помощью ControllerAdvice и без него
— работа с Page и Pageable
— авторизация запросов

Читать далее

Большая шпаргалка по Docker: как распилить монолитный проект на части

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

Погружение в мир контейнеризации с докером — это путь к оптимизации развёртыванию приложений, а также ключ к упрощению жизни разработчиков и системных администраторов. Меня зовут Андрей Аверков, в IT c 2008 начинал пусть с аналитика-проектировщика IT систем, 11 лет в роли разработчика и последние годы на руководящих должностях. Сейчас я тимлид команды разработки из 9 человек в группе компании Кокос. Мы занимаемся созданием и поддержкой CPA платформ (gdeslon.ru, fxpartners.ru, ads.mobisharks.com), а также проектом по генерации лендингов — lpgenerator.ru. У нас большой опыт в разделении продуктов на части, поэтому, сегодня мы собрали самое основное и необходимое для работы с Docker. В нашей шпаргалке вы найдете все необходимое для успешного старта с докером: от базовых концепций и установки до продвинутых техник работы с контейнерами.

Читать далее

Магия Spring Framework своими руками

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

Spring Framework позволяет сфокусироваться на бизнес-логике, а вся настройка инфраструктуры выполняется автоматически благодаря постобработке бинов. Зачастую для реализации дополнительной функциональности применяется Spring AOP - аспектно-ориентированное программирование.

Spring AOP бин, который накручивает дополнительную функциональность другим Spring бинам, помечается аннотацией @Aspect, но как потом этот бин используется для добавления дополнительной функциональности в поток исполнения?

В статье будет рассмотрен механизм проксирования объектов и его применение в Spring Framework.

Читать далее

Как на самом деле работает Java ClassLoader system? (с картинками) — Часть 1/3, Загрузка

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

Так ли на самом деле работает процесс загрузки классов, как его описывает Wikipedia и Baeldung? ClassNotFoundException — это откуда и чье? Какие виды загрузчиков классов актуальны в Java 20?

Объясняем подпроцесс загрузки, из системы Java ClassLoader, на приятных Excalidraw диаграммах, со ссылками на оригинальные источники.

Читать далее

Собеседования для бэкендеров: как готовиться, тренироваться и не облажаться

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

Привет, Хабр! Меня зовут Гриша Скобелев, я бэкенд-разработчик, у меня есть гитара, кошка и скейтборд. Я так сильно люблю Spring Framework, что назвал кошку в честь него — Веснуша. Возглавляю программный комитет Podlodka Java Crew, где мы делаем классные конференции. Еще я организовал книжный клуб для бэкенд-разработчиков { между скобок }. Хочу поделиться своим опытом развития бэкендера — от собеседования до наработки разных навыков для роста. Тут будет много ссылок, практических советов и инструкций, которые я наработал за время своей карьеры, общения с другими бэкендерами и проведения конференций и консультаций.

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Ижевск, Удмуртия, Россия
Работает в
Дата рождения
Зарегистрирован
Активность