Pull to refresh
14
0
Алексей Волков @cface

Руководитель Центра разработки РТК ЦОД

Send message

Автоматическая документация API Django Rest Framework с помощью DRF Spectacular

Level of difficulty Medium
Reading time 5 min
Views 12K

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

Читать далее
Total votes 9: ↑9 and ↓0 +9
Comments 3

Можно ли экспортировать макеты из Figma в готовое React приложение?

Level of difficulty Easy
Reading time 6 min
Views 10K

Последнее время из каждого утюга кричат по технологии будущего - что Chat GPT может писать код вместо программистов, а MidJourney создавать интерфейсы вместо дизайнеров. Мы полезли в Community фигмы, а там по запросу Figma to Code больше сотни плагинов, которые обещают сгенерировать чистый работающий код на основе ваших макетов и за пару кликов создать готовое web-приложение вместо ваших frontend-разработчиков. Все это звучит вдохновляюще, но так ли это на самом деле?

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

Читать далее
Total votes 3: ↑0 and ↓3 -3
Comments 8

Как не превратить микросервисы в киберпанк-дистопию

Reading time 14 min
Views 4.3K

Вашему вниманию представлена квинтэссенция подготовленной мной серии докладов под названием «Распределенное понимание распределенных систем» (“Distributed Distributed Systems unDerstanding”), посвященной определению и оптимизации микросервисных архитектур. Эта серия основана на книгах «Основы архитектуры программного обеспечения: инженерный подход» и «Архитектура программного обеспечения: сложные моменты».

Читать далее
Total votes 15: ↑13 and ↓2 +11
Comments 1

KeyCloak и микро-сервисы. Как облегчить жизнь программисту

Level of difficulty Medium
Reading time 12 min
Views 18K

Привет! Если ты так же как и я решил использовать keycloak для аутентификации и авторизации в своей микро‑сервисной архитектуре, то я расскажу вам как правильно настроить сам keycloak, его рабочую среду а в конце мы подключим Active Directory к нашему приложению.

Читать далее
Total votes 6: ↑5 and ↓1 +4
Comments 12

Типовое использование RabbitMQ

Reading time 4 min
Views 31K

Алексей Барабанов, IT-директор «Хлебница» и спикер курса «RabbitMQ для админов и разработчиков», подготовил конспект о типовых архитектурных паттернах RabbitMQ. Из него вы узнаете, как настроить пайплайны обработки и реализовать очереди повторных попыток (в том числе, через механизм dead letter exchange). 

Читать далее
Total votes 41: ↑39 and ↓2 +37
Comments 4

Выгорание разработчиков

Reading time 6 min
Views 8.3K

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

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

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

Читать далее
Total votes 15: ↑11 and ↓4 +7
Comments 18

Deep Dive Into Deep Link. Часть 5. Нюансы: port, mime, path, диспетчеризация, обратная совместимость

Reading time 8 min
Views 2.8K

Приветствуем вас на в заключительной части Deep Dive Into Deep Link! Вот уже пятая статья цикла, а мы до сих пор не со всем разобрались. Сегодня мы ответим на вопросы:

- Почему способности path паттерны такие ограниченные?

- Как происходит диспетчеризация deep link, как его делают библиотеки навигации и мы?

- Как можно сломать обратную совместимость?

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

TypeScript в React-приложениях. 1. Как типизировать данные

Reading time 7 min
Views 16K

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

Это далеко идущие планы, а на текущий момент задача цикла статей — собрать фидбек о правильности авторских суждений, которые основаны на личном опыте разработки приложений на Typescript и местами противоречат популярной литературе по языку Typescript. Тем не менее доводы к этим суждениям должны заинтересовать сообщество фронтэнд-разработчиков.

Читать далее
Total votes 7: ↑6 and ↓1 +5
Comments 9

TypeScript: паттерны проектирования. Часть 2

Reading time 10 min
Views 11K


Привет, друзья!


Представляю вашему вниманию перевод второй части серии статей, посвященных паттернам проектирования в TypeScript.


Спасибо Денису Улесову за помощь в переводе материала.


Паттерны (или шаблоны) проектирования (design patterns) описывают типичные способы решения часто встречающихся проблем при проектировании программ.


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

Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 2

IT для неайтишников: Технический долг или почему теперь всё так долго?

Reading time 15 min
Views 24K

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

Читать далее
Total votes 33: ↑31 and ↓2 +29
Comments 10

Как оптимизировать работу с Paging 3 и работа над ошибками. Boilerplate ч. 4

Reading time 7 min
Views 5.7K

Всем привет после такого длительного перерыва возвращаем серию статей Boilerplate. Сегодня будем разбирать как облегчить пагинацию с помощью библиотеки Paging 3. За это время достаточно правок произошло в самом репозитории Boilerplate которые мы сегодня тоже разберем.

Читать далее
Rating 0
Comments 0

Что там по автотестам на Android в 2022?

Reading time 7 min
Views 7.2K

Всем привет!

Меня зовут Женя, и я люблю автотесты. Причем люблю так сильно, что даже стал соавтором Kaspresso, OpenSource библиотеки для написания автотестов под Android, и автором ряда докладов и статей про тесты (Kaspresso: фреймворк для автотестирования, который вы ждали, Автотесты на Android. Картина целиком, Kaspresso tutorials. Часть 1. Запуск первого теста, Дмитрий Мовчан, Евгений Мацюк — Как начать писать автотесты и не сойти с ума). Также со мной полюбил автотесты и мой товарищ, Сергей Ярцев, который является CTO в HintEd, и также вынужден трогать автотесты, причем под разные платформы.

В одной из своих статей (Автотесты на Android. Картина целиком) я описывал, что вообще в себя включают Автотесты под Android. Если кратко, то я выделял 4 большие области: Процесс написания автотестов, Runner, Инфраструктура и Остальное, которое включало в себя отчеты, интеграцию с CI/CD и тд. В свое время (2019-2020) когда мы делали Kaspresso, мы закрывали боль с написанием автотестов. Теперь разработчики и тестировщики могут писать красивый и понятный DSL и не думать про проблемы с флаканием, логами, скоростью и тд. По другим же областям были некоторые решения, но команды, выстраивающие весь процесс, должны были сами со всем этим разбираться и все это стыковать. Особенно больно было с Инфраструктурой, где приходится нырять в дивный мир DevOps и частично даже Highload.

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

Читать далее
Total votes 17: ↑17 and ↓0 +17
Comments 3

Как работают глаза и что надо учитывать, создавая тёмную тему приложения

Reading time 11 min
Views 12K

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

Далеко не все пользуются тёмной темой, но однажды ослепнув от яркого монитора и обзаведясь очками, невольно переходишь на тёмную сторону. Так как же грамотно подойти к её созданию? Меня зовут Мария, я QA-инженер в ISPmanager и сегодня расскажу, как спроектировать и протестировать тёмную тему с учётом человеческой физиологии.

Читать далее
Total votes 19: ↑19 and ↓0 +19
Comments 34

Важные основы фреймворка Скрам, про которые забывают

Reading time 4 min
Views 6.4K

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

Данные события часто проводятся как механические упражнения и ритуалы, что является одной из дисфункций фреймворка. Дают ли такие события пользу без других важных основ? Ответ очевиден. Давайте разберёмся, что должно стоять за событиями.

Читать далее
Total votes 12: ↑11 and ↓1 +10
Comments 17

API-First и микросервисы

Reading time 15 min
Views 19K

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

Читать далее
Total votes 9: ↑9 and ↓0 +9
Comments 11

Понедельный план онбординга для QA-инженера с опытом

Reading time 8 min
Views 8.7K
За последние четыре года мы выстроили процесс адаптации, который оставляет хорошее впечатление даже у мегаопытных новых сотрудников. Сегодня мы расскажем про основные этапы и поделимся списком действий первостепенной важности. Эти принципы легко можно адаптировать под инженеров любого уровня, которых вы нанимаете.
Читать дальше →
Total votes 4: ↑3 and ↓1 +2
Comments 1

Книга «Разработка интерфейсов. Паттерны проектирования. 3-е изд.»

Reading time 11 min
Views 11K
image Привет всем, Хаброжители!

Спроектировать хороший интерфейс приложения не так просто. Все заказчики хотят, чтобы пользовательский опыт (user experience) был гладким, чтобы пользователь быстро и безболезненно получал то, что ему нужно, на любом устройстве и пользуясь любым каналом взаимодействия.

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

Для опытных разработчиков книга станет источником интересных идей, а начинающие найдут ориентиры в мире интерфейсов, позволяющие не сбиться c пути и применять лучшие паттерны.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 4

Grafana OnCall — Open Source хаб для алертов и инцидентов

Reading time 4 min
Views 20K

Привет, хабр! С удивлением обнаружил, что здесь нет ни одного упоминания Grafana OnCall, Incident Response Tool с открытым исходным кодом от Grafana Labs. И это нужно исправлять, ведь мы бурно растем как по звездочкам на гитхабе, так и как часть Grafana Cloud, а в issues на гитхабе, в основном, встречаются техлиды из FAANG.

Если кратко, OnCall — это инструмент, который поможет организовать надежные оповещения/реагирование на инциденты в команде, соблюдать SLA и не просыпаться ночью от звонков.

Что умеет и как поставить?
Total votes 36: ↑36 and ↓0 +36
Comments 15

SSO на микросервисной архитектуре. Используем Keycloak. Часть №1

Reading time 10 min
Views 129K
В любой крупной компании, и X5 Retail Group не исключение, по мере развития возрастает количество проектов, где требуется авторизация пользователей. С течением времени требуется бесшовный переход пользователей из одного приложения в другой и тогда возникает необходимость использования единого сервера Single-Sing-On (SSO). Но как быть, когда такие идентификационные провайдеры как AD или иные, не обладающие дополнительными атрибутами, уже используются в различных проектах. На помощь придет класс систем под названием «идентификационные брокеры». Наиболее функциональными являются его представители, такие как Keycloak, Gravitee Access management и пр. Чаще всего сценарии использования могут быть различны: машинное взаимодействие, участие пользователей и пр. Решение должно поддерживать гибкий и масштабируемый функционал, способный объединить все требования в одном, и такие решением в нашей компании сейчас является индикационный брокер – Keycloak.


Total votes 16: ↑16 and ↓0 +16
Comments 27

Памятка архитектору

Reading time 8 min
Views 21K

Я работаю архитектором (Solution Architect если быть точным) в аутсорсинговой компании. В ходе работы я занимаюсь такими активностями как: дизайн и внедрение архитектурных решений, аудит систем заказчика и разного рода консультации вокруг архитектуры систем.

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

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

Что там уже в списке?
Total votes 53: ↑52 and ↓1 +51
Comments 23

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Mobile Application Developer
Lead
Git
Linux
OOP
SQL
Kotlin
Android development
Dagger 2
MVVM
Google Maps API
Development of mobile applications