Обновить
-3
0

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

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

JVM + Память + GC без боли: моя шпаргалка для собесов в Java. Часть 2

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

Всем привет!

Работая Senior Java Developer в одном из банков, я успел пройти уйму собеседований, столкнуться с десятками каверзных вопросов и понять, сколько усилий требует подготовка. И каждый раз убеждаюсь в одном: тема JVM, память и GC — одна из самых недооценённых и одновременно самых частых на Java-собесах. Многие знают об этом “что-то где-то слышал”, но как только разговор заходит про Heap, Metaspace, JIT, Safepoint или разные типы GC — начинаются проблемы.

Поэтому эта статья — вторая часть моей шпаргалки по подготовке к Java-собеседованиям. Здесь я собрал всё самое важное о работе JVM и управлении памятью простым, человеческим языком, без боли и академической зауми. Разберём архитектуру JVM, устройство памяти, JIT, GC, типы ссылок и самые частые вопросы, которые любят спрашивать на интервью.

В профиле уже есть первая часть для подготовки — Многопоточность без боли.

Читать далее

Вертикальное шардирование базы данных: проблемы, решения, практические рекомендации

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

База данных — это сердце системы. И в какой-то момент это сердце начинает давать сбои. Не от объема данных, а от их разнородности. Таблица users разрастается до 200 колонок. Одни нужны для логина каждую секунду, другие — для годового отчета раз в год. В итоге, чтобы прочитать два "горячих" поля, база тащит с диска целый блок с "холодными" данными. Это неэффективно.

Читать далее

SSE + Java + WebFlux = энтерпрайз решение для отправки пушей

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

В этом посте я расскажу, почему для доставки push-уведомлений в клиентское приложение была выбрана технология Server-Sent Events, и главное, как реализовать масштабируемый SSE сервис на Java + Spring Boot + Webflux, который подойдет для использования не только в небольших проектах, но и в крупных организациях с большим количеством пользователей. Естественно, без подготовки дополнительной инфраструктуры не обойдется.

Читать далее

Почему я больше никогда не буду Team-Lead и тебе не советую

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

Я расскажу вам о своем опыте тимлида командой разработки в крупном банке, где старые управленческие привычки иногда брали верх над здравым смыслом. Это субъективная точка зрения на реальную ситуацию, где я — Д«Артаньян, а все остальные — редиски.

Читать далее

«Архитектура бэкенда», или как я написал мою первую техническую книгу

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели8.3K

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

За время своего развития, люди научились передавать информацию различными способами. Сначала это могла быть устная речь, далее были письменные источники, а в современном мире многообразие способов обучения действительно поражает: это и множество видеокурсов, интерактивных платформ, блогов и так далее. Однако на фоне всего этого особняком стоят книги. Нередко изучение книги может быть долгим и может казаться не таким эффективным, поскольку похожие знания можно получить быстрее, используя более динамичные и наглядные инструменты. Плюс, сами знания имеют свойство устаревать, и описанные истины могут не поспевать за техническим прогрессом. Однако, на мой взгляд, книга имеет и свои преимущества — при помощи нее можно исчерпывающе описывать те или иные темы, не срезая углы, подробно и конкретно описывая идеи, которые могло быть сложно выразить как то иначе.

Читать далее

Книга: «Технический директор. Эффективное техническое лидерство»

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

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

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

Читать далее

Собеседования в IT превратились в экзамены, которые с трудом проходят даже опытные разработчики

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

Я нанимаю людей постоянно. На самые разные позиции и роли. Мне также требуется растить людей в своей команде, помогая им пробовать себя в совершенно непривычных для них ролях. Возможно, мне просто везёт, и у меня всё получается в 9 из 10 случаев. Случаются провалы, которые почти всегда можно объяснить как минимум двумя факторами: неучтённый бэкграунд человека и его (или её) банальная усталость.

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

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

Давай зачетку!

AsyncAPI — Swagger для асинхронного API

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

Привет, Хабр! Меня зовут Александр Митин. Я Java разработчик в компании ИТ-холдинг Т1 с 15 летним опытом, из которых последние 5 лет работаю в финтехе. Мой любимый стек — Java Spring. Я хочу рассказать такое AsyncAPI, как работать со спецификациями, какие есть инструменты и поделюсь нашим опытом перехода на подход API First в наших системах.

Читать далее

Как мы с третьего раза сделали надёжную и быструю аутентификацию в микросервисном приложении (гибридный подход к JWT)

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

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

Всё-таки нашли оптимальный вариант, совместив JWT-токены с обменом запросами между сервисами.

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

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

Читать далее

Почему SELECT FOR UPDATE считается в PostgreSQL вредным

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели24K

Разбирая взаимоблокировки, Лоренс вспомнил, насколько опасным может быть использование SELECT FOR UPDATE при конкурентном доступе. В этом нет ничего нового, но Лоренс заметил, что многие не знают о режимах блокировки строк в PostgreSQL. Лоренс решил подробно описать, когда следует избегать SELECT FOR UPDATE.

Читать далее

Как мы строили безопасную микросервисную архитектуру с Service Mesh: взгляд изнутри

Уровень сложностиСредний
Время на прочтение45 мин
Охват и читатели6.9K

Привет, Хабр! Меня зовут Валентин Вертелецкий, я DevOps в СберТехе, занимаюсь развитием Platform V Kintsugi — это графическая консоль для сопровождения Postgres-like СУБД. Наш продукт построен на микросервисной архитектуре и сначала разрабатывался с использованием базовой функциональности Kubernetes — там нет встроенных механизмов аутентификации, авторизации, управления доступом и шифрования трафика. Когда же у нас стало больше сервисов, нам понадобилось повысить защиту и отказоустойчивость, добавить возможности управления доступом.

Мы опираемся на подход Zero Trust: ни одному элементу системы не доверяем по умолчанию. Каждый запрос проверяется, привилегии для администраторов минимальны, трафик валидируется и шифруется. Нам предстояло обеспечить надёжную аутентификацию и авторизацию, а также централизованный контроль и мониторинг запросов. В этом нам помогла технология Service Mesh. 

Для управления микросервисами в Kubernetes мы используем Platform V Synapse Service Mesh от СберТеха — это решение на основе платформы Istio. Покажу, как всё работает у нас. Плюс, я подготовил демо-проект для тестирования кейсов (ссылка в конце статьи). Надеюсь, он будет полезен командам, работающим с микросервисами. 

Читать далее

Строим свой SSO сервер используя Spring Authorization Server

Уровень сложностиСредний
Время на прочтение45 мин
Охват и читатели63K

На днях я решил сделать под все свои pet-проекты собственный SSO сервис, дабы не заморачиваться каждый раз с авторизацией и аутентификацией. Возиться с этим особо долго мне не хотелось. Все таки это для pet-проектов. Поэтому выбор пал на Spring Security. Мне давно уже было интересно посмотреть в действии как на Spring Boot 3, так и новый Spring Authorization Server версии 1.x.x. В данной статье речь пойдёт о проблемах и их решениях при построении собственного SSO. А также я поставил себе ряд интересных требований, с которыми я постараюсь справиться и рассказать о своём опыте.

Читать далее

Аудит безопасности КИИ. Детальный разбор проверки ФСТЭК

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


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

Читать далее

Как мы сократили потребление памяти мониторингом на 75%, мигрируя с Prometheus на VictoriaMetrics Agent в OKD-кластерах

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

Расскажу про то, как устроен мониторинг в OKD-кластерах, какие у него есть минусы и как мы их побороли, мигрируя основную функциональность на VictoriaMetrics Agent.

Читать далее

Галопом по архитектуре. Часть 1. Структурный дизайн

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели6.7K

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

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

Читать далее

Команда на одной волне: неформальные правила ИТ разработки, которые реально работают

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

Вся жизнь IT-команды в одной статье.

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

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

Статья подойдёт:

— Новичкам в IT — тем, кто только начинает разбираться в Agile и хочет увидеть реальные процессы «изнутри».
— Коллегам из других сфер — если ваш опыт работы отличается, здесь вы найдёте конкретные примеры и, возможно, идеи для своих проектов.
— Критикам и экспертам — если вы замечаете спорные моменты или хотите поделиться альтернативным подходом, добро пожаловать в комментарии!
— Моей команде — как напоминание о наших договорённостях и повод для дальнейшего улучшения процессов.

Это моя первая статья поэтому я буду рад вашим комментариям и ценным советам.

Заглянуть в кухню команды

Размышления архитектора

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

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

Читать далее

Передача знаний: инструкция на случай ухода эксперта

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

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

Читать далее

Istio как мультикластерное решение: возможности, подходы и компромиссы

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

Привет, Хабр. Продолжаем изучение Istio и сегодня рассмотрим некоторые интересные особенности, которые в дальнейшем могут облегчить сопровождение и развитие сервисной mesh-инфраструктуры в Kubernetes. С ростом распределённых систем и микросервисных архитектур в Kubernetes всё чаще встаёт вопрос о построении надёжной, масштабируемой и безопасной сетевой инфраструктуры. Когда одного кластера становится недостаточно, возникает потребность объединить несколько инсталляций в единую mesh-сеть. Здесь и появляется Istio, как кандидат на реализацию мультикластерной архитектуры.

Читать далее

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

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

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

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

Читать далее

Информация

В рейтинге
6 668-й
Зарегистрирован
Активность