Search
Write a publication
Pull to refresh
5
0
Станислав Томилов @zeezdev

full stack разработчик

Send message

Интеграция платформ через Keycloak: SSO и JWT в действии

Level of difficultyMedium
Reading time34 min
Views3.5K

В крупных компаниях с множеством платформ, например, интерфейсом интернет-магазина и системой обработки данных, часто требуется настроить доступ между системами через единый вход (SSO). Эта статья рассматривает задачу: обеспечить доступ из фронт-системы (reports-frontend) к API отчётов (reports-api) через Keycloak, чтобы JWT-токен содержал роль report_user. В контексте e-commerce это можно представить как интерфейс магазина, где менеджеры запрашивают отчёты о продажах, а Keycloak управляет аутентификацией.

Кому будет полезно?

Аналитики: Узнаете, как составлять заявки (например, в Jira) на настройку Keycloak, координировать с командами и проверять JWT в DevTools, чтобы избежать ошибок, таких как отсутствие роли в токене.

Разработчики: Познакомитесь с примером кода для React-фронтенда и Node.js-бэкенда, реализующим OIDC и PKCE.

Архитекторы: Поймёте, как Keycloak поддерживает SSO, масштабируемость (через PostgreSQL или Active Directory) и безопасность (PKCE, HTTPS).

Что внутри?

Теория: Объясняем SSO, OpenID Connect (OIDC), компоненты Keycloak (realms, хранилища, PKCE) и как JWT с ролью report_user обеспечивает доступ.

Практика: Показываем проект с React (reports-frontend), Node.js (reports-api) и Keycloak, запущенный через Docker Compose. Код включает realm-export.json, App.tsx, server.js, ReportPage.tsx.

Аналитика: Рассказываем, как аналитик формирует заявки на настройку Keycloak и координирует работу с админами, разработчиками и DevOps.

Практика SSO с Keycloak и JWT

Как не облажаться с типами данных в PostgreSQL

Level of difficultyMedium
Reading time19 min
Views10K

Недавно вышла отличная книга PostgreSQL Mistakes and How to Avoid Them от Jimmy Angelakos — системного архитектора, практика и давнего участника сообщества PostgreSQL. Книга подробно разбирает распространённые ошибки, с которыми сталкиваются разработчики и администраторы при работе с PostgreSQL, и предлагает практичные решения: от тонкостей конфигурации и миграции до антипаттернов в SQL и выбора типов данных.

Я перевёл одну из ключевых глав этой книги — про неправильное использование типов данных. В ней подробно объясняется, почему, например:

timestamp without time zone может ломать логику расчёта интервалов;

money — это не то, чем кажется (и почему он опасен);

char(n) и varchar(n) не дают ожидаемой экономии и даже вредны;

serial — это прошлый век, а identity — настоящее.

Глава будет полезна всем, кто работает с PostgreSQL в проде — особенно backend-разработчикам, независимо от языка и фреймворка. Если вы проектируете схемы БД, пишете SQL-запросы или просто хотите избежать неприятных грабель — стоит прочитать.

Читать далее

CRDT: Conflict-free Replicated Data Types

Reading time10 min
Views53K

Как считать хиты страницы google.com? А как хранить счётчик лайков очень популярных пользователей? В этой статье предлагается рассмотреть решение этих задач с помощью CRDT (Conflict-free Replicated Data Types, что по-русски переводится примерно как Бесконфликтные реплицированные типы данных), а в более общем случае — задачи синхронизации реплик в распределённой системе с несколькими ведущими узлами.
Читать дальше →

Самый полный Роадмеп бэкенд-разработчика на Python с нуля 2025

Level of difficultyEasy
Reading time40 min
Views33K

Этот роадмэп мы начали собирать ещё в прошлом году вместе с нашей командой мидл-бэкендеров. Хотелось системно оформить весь стек технологий, с которым реально работает современный backend-разработчик на Python — от базовых тем вроде HTTP и SQL до CI/CD, микросервисной архитектуры, Kubernetes, облаков, безопасности и брокеров сообщений.

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

Читать далее

Anki — настолько круто, что я даже представить не мог

Reading time4 min
Views202K

Если вдруг кто не знает, Anki - это бесплатная opensource программа для запоминания слов (и не только). Есть версии под декстоп и мобилы. Она довольно популярна при этом имеет интуитивно-НЕпонятный интерфейс. Мне понадобилось много лет, чтобы понять, насколько она крута, т.к. базовые статьи и туториалы этого не описывают. А многие люди используют ее даже не понимая ее возможностей.

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

Читать далее

Postman логирует все ваши секреты и переменные окружения

Reading time2 min
Views15K

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

Читать далее

Эволюция программирования: как парадигмы украли нашу свободу

Level of difficultyEasy
Reading time11 min
Views9.7K

Представьте: вы — инженер-программист из 60-х. Ваш код — это дикие прерии, где goto прыгает через функции как ковбой через барную стойку, а память — ваше личное ранчо. Вас внезапно переносят в 2023 год. Вас окружают фразы вроде «SOLID», «иммутабельность», «реактивные потоки». Вы пытаетесь написать пару строк на Python, но слышите: «Стоп. Мутировать переменные? В 2023-то? Это же грех!».

Что случилось с нашей свободой?

За последние 70 лет программирование из искусства постепенно превращалось в ремесло со своими жёсткими требованиями и правилами. Мы больше не взламываем реальность — мы строим мосты по ГОСТу.

Читать далее

За полчаса установил DeepSeek 1.5B, пока вы искали GPT подешевле

Level of difficultyEasy
Reading time11 min
Views83K

DeepSeek 1.5B — маленький, но шустрый собрат больших языковых моделей. Работает локально, не требует железа на киловатт.

Внутри — инструкция по установке, настройке и запуску DeepSeek 1.5B на Ubuntu 24.04 с Ollama и Open WebUI.

Читать далее

Как проводит свободное время среднестатистическая семья зумеров-айтишников

Level of difficultyEasy
Reading time3 min
Views127K

В свободное от работы время зумеры-айтишники пилят игру в Telegram Mini App, и нет, это не тапалка!

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

Ее придумал Дэвид Смит – дипломированный бухгалтер, семьянин, бизнесмен и даже автор песен. Он опубликовал более 20 игр, но считает Trax своей лучшей придумкой. 
Вокруг неё формировались клубы в разных странах, организовывались турниры по электронной почте и даже чемпионаты мира. Из года в год Trax стабильно входил в топы лучших игр на протяжении 80-х и получал многочисленные награды.

И вот спустя годы давно запылившаяся, но когда-то популярная игра Тракс вдруг попалась моему мужу Кириллу, точнее его другу ака одногруппнику из ИТМО, при очень интересных обстоятельствах. Как-то раз он попал на комиссию по отчислению в ИТМО, где случайным образом попадался один из двух билетов:
первый - сделать бесконечные крестики нолики, где нужно сложить диагональ в 10 крестиков (по крайней мере так запомнил мой муж), а другой бесконечный Тракс в консольном варианте. Посмеялись, поиграли и затянуло. Тогда игра была доступна только в двух вариантах: настольная и ПО на Винду. Возможности поиграть онлайн не было, за исключением изощренных способов, например транслировать экран и под диктовку выставлять ходы оппонента или через TeamViewer. И тогда в голове Кирилла появилась мысль – а почему бы не запилить веб-версию Тракса.

Кирилл изначально бэкендер, но когда мы работали в одном IT-стартапе и над своими пет-проектами он подкачал навыки фронтедера и ступил на путь фулл-стек разработчика. И вот когда ему стало хватать навыков для написания этой игры в вэбе, он принялся за дело.

Читать далее

Почему мы отказались от выражения «assert» в Python

Level of difficultyEasy
Reading time5 min
Views11K

В текущем проекте на Python мы полностью отказались от использования выражений с ключевым словом assert, и в этой статье я расскажу почему.

Рассмотрим кейсы где использование выражений assert уместно, а где оно может выстрелить в ногу, и как этого избежать.

Читать далее

Не нужно становиться тимлидом

Level of difficultyEasy
Reading time4 min
Views68K

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

Читать далее

Как общаться с руководителем

Level of difficultyEasy
Reading time7 min
Views16K
Напишу несколько простых и избитых правил общения между руководителем и подчинёнными. Вы могли их видеть так или иначе много раз, но иногда, в моменты грусти по поводу собственного коллектива (такие моменты бывают у абсолютно всех руководителей!) хочется порефлексировать, конкретизировать и положить на бумагу мысли по этому поводу.

Ниже представленные правила, наверное, должны немного корректироваться вместе с рангом: я пишу из позиции линейного руководителя (тимлида), который управляет непосредственно исполнителями (разработчиками и тестировщиками). Скорее всего, на уровне топ-менеджмента есть свои важные нюансы. Однако в общем и целом идеи останутся теми же.

КДПЖ
Читать дальше →

Настройка SSO на KeyCloak или как я KeyCloak побеждал

Level of difficultyMedium
Reading time5 min
Views8.6K

Привет! Хочу поделиться, как я с KeyCloak-ом сражался.

Испытание воли на прочность, падение до глубин отчаяния и победа, как кульминация всех потраченных недель на поиски решения.

Читать далее

Почему я не готовлюсь к алгоритмическому интервью

Level of difficultyEasy
Reading time7 min
Views50K

Почему я не готовлюсь к алгоритмическому интервью

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

К собеседованию

Английский для продакта: как я выучил язык для срочного поиска работы

Reading time9 min
Views32K

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

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

Читать далее

10 не самых очевидных причин, чтобы уволиться

Level of difficultyEasy
Reading time8 min
Views39K

За 16 лет работы в компаниях разного масштаба, размаха и уровня корпоративного бескультурья мне приходилось видеть весьма экзотические причины увольнения. В топ-3 уверенно попадают увольнение из-за недостаточной высоты двери в туалете, из-за вызова скорой помощи на работу и из-за исчезновения булочек с курагой в меню столовой, отсутствия отдельного кабинета или парковочного места. Я однажды уволилась после фразы замдиректора: «И это последнее китайское предупреждение!» Не зная настоящего смысла этой идиомы, я как истинный самурай совершила карьерное харакири. Но, как нас учили на уроках истории, у каждого события есть причины, а есть повод — последняя капля, после которой срывает резьбу и вершится что-то необратимое. Конечно, булочки, такси не того класса, искры в микроволновке и проч — это всё повод. И часто бывает так, что о причинах никто ничего не знает или все узнают, но слишком поздно. 

Читать далее

Чему и почему учат тимлидов

Reading time5 min
Views11K

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

Читать далее

Как не нужно использовать паттерн Repository

Reading time7 min
Views60K
image

Данная статья является неким опытом, который был приобретен в результате весьма неприятной архитектурной ошибки, допущенной мной при длительной разработке проекта на Laravel5.

Я постараюсь рассказать, как использовал паттерн Repository в проекте, какие достоинства и недостатки были выявлены, как это повлияло на разработку в целом и какой профит был получен.
Читать дальше →

Секреты айтишной карьеры, о которых лучше не рассказывать…

Level of difficultyEasy
Reading time11 min
Views89K

Секреты айтишной карьеры, о которых лучше не рассказывать...

...но которыми всё же с нами поделился QA lead "ITQ Group" Сергей Мурашов.

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

Читать далее

Как не сжечь команду дотла, или Почему Work-life balance — задача руководителя

Level of difficultyEasy
Reading time9 min
Views21K

Всем привет! Я Саша Ворожищев, руководитель мобильной разработки в AGIMA. В интернете сотни статей о том, как важно не выматывать себя на работе, но всё без толку. Согласно недавнему исследованию Хабр Карьеры, более 90% российских IT-специалистов сталкивались с выгоранием. При этом более 40% доводят себя до поздних стадий, когда эмоциональное истощение уже перерастает в депрессию.

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

Читать далее

Information

Rating
10,365-th
Location
Россия
Registered
Activity