Pull to refresh
24
0
Антон Зубарев @aszubarev

User

Send message

Гайд для системного аналитика: как управлять требованиями на разных этапах проекта. Часть 1: Инициация

Level of difficultyMedium
Reading time14 min
Views19K

Жизненный цикл любого проекта включает в себя этапы инициации, планирования, исполнения, контроля и завершения. Гибкие методологии и итерационный подход используют в проектах по разработке программного обеспечения всё чаще. С ними этапы проекта повторяются несколько раз для каждой итерации, а перечень инструментов аналитика максимально упрощается и сводится до написания user story. 

Этой статьёй я открою серию материалов про управление требованиями на разных этапах проекта.  Уже больше 10 лет я работаю в IT и успела побывать бизнес аналитиком, системным аналитиком и руководителем проектов. Также я выступаю в роли ревьюера на курсе «Системный аналитик». 

Начинающим аналитикам бывает не просто разобраться в разных подходах к документированию  требований и множестве нотаций моделирования. У кого-то даже проскальзывают сомнения, а нужно ли все это знать или можно просто изучить формат описания user story? Я попробую развеять эти сомнения на примере учебного проекта.

Читать далее
Total votes 16: ↑14 and ↓2+12
Comments15

Нужны ли Unity разработчику проекты на гитхабе

Level of difficultyEasy
Reading time4 min
Views3K

Довольное большое количество собеседующих заглядывает на гитхаб. Первые хотят убедиться, что у вас есть в наличии хоть какой‑то написанный вами надеюсь код. Вторые хотят побольше в этот код повникать, чтобы посильнее вас потеребонькать на техническом собеседовании. Уже не знаю для чего… для поднятия собственного это, может быть. Или может хотят сбить с вас спесь вместе с денежными запросами) Хотя последняя категория собеседующих на моей практике попадалась всего два раза:

Читать далее
Total votes 6: ↑3 and ↓3+2
Comments5

Электронная подпись, шифрование данных с помощью RSA, AES. Реализация на Kotlin, Micronaut, bouncycastle

Level of difficultyMedium
Reading time10 min
Views2.5K

Электронная подпись, шифрование данных с помощью RSA, AES. Реализация на Kotlin, Micronaut, bouncycastle.

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

Как подружить Celery и SqlAlchemy 2.0 с асинхронным Python

Level of difficultyMedium
Reading time3 min
Views9.8K

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

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

Хорошая замена Celery для асинхрощины

Level of difficultyMedium
Reading time5 min
Views9.1K

Речь пойдет о библиотеки для работы с AMPQ - aio-pika. Она имеет всего в районе 1К звёзд на GitHub (по сравнению с 20К+ у Celery). Я рассмотрел абсолютно все популярные (500+ звёзд) решения и остановился именно на этом из-за активной (на текущий момент) разработке и соответствии всем моим требованиям.

Стек, который вы увидите в статье: FastAPI, RabbitMQ, aio_pika и docker. Статья будет полезна тем кто использует Celery в своих проектах, а так же тем, кто только слышал о том, что такое очереди и RabbitMQ.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments13

50 оттенков Celery

Reading time18 min
Views58K
Вам сюда, если хотите знать, как приручить широкоизвестный в кругах Python-разработчиков фреймворк под названием Сelery. И даже, если в вашем проекте Celery уверенно выполняет базовые команды, то финтех опыт может открыть вам неизведанные стороны. Потому что финтех — это всегда Big Data, а с ней и необходимость фоновых задач, пакетной обработки, асинхронного API и т.д.


Прелесть рассказа Олега Чуркина про Celery на Moscow Python Conf ++ помимо подробных инструкций, как настроить Celery под нагрузку и как его мониторить, в том, что можно позаимствовать полезные наработки.


О спикере и проекте: Олег Чуркин (Bahusss) 8 лет разрабатывает Python-проекты разной сложности, работал в многих известных компаниях: Яндексе, Рамблере, РБК, Лаборатории Касперского. Сейчас техлид в финтех-старапе StatusMoney.
Total votes 36: ↑35 and ↓1+34
Comments7

Celery: проясняем неочевидные моменты

Reading time8 min
Views80K

Да, действительно, в этом посте не будет гайда, как поднять Celery в Django. Это статья для тех, кто уже пощупал Celery и хочет погрузиться в детали.

Мотивацией перевести эту статью были следующие вопросы, на которые я не знал ответа: при запуске создается процесс или поток? В какую очередь попадают отложенные задачи с ETA? А какие бывают очереди (спойлер: она не одна)? А в какой момент задача удаляется из очереди? Если я создам задачу с ETA=завтра_в_12:00, она ровно в этот момент и выполнится (спойлер: нет)?

Ответы на все эти вопросы в статье, велком!

Запустить таску
Total votes 8: ↑6 and ↓2+5
Comments13

Микросеть: настройка роутера для ИТшной семьи

Level of difficultyMedium
Reading time8 min
Views32K

Привет, читатель!

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

Вперед к настройке
Total votes 17: ↑16 and ↓1+18
Comments32

Опять транзакции…

Level of difficultyEasy
Reading time8 min
Views15K

Всем привет. На своем последнем месте работы я выполнял обязанности Java разработчика в одной из команд сервиса, чье приложение установлено в смартфоне большинства жителей РФ. Использовался стандартный стек технологий: Java, Spring(web, jdbc, core), PostgreSQL, Kafka. Обычное синхронное API по работе с данными, без всякой реактивщины, с нагрузкой более миллиона пользователей в день. Я столкнулся с тем что сервисы по работе с БД были обильно «усыпаны» Spring аннотациями @Transactional. Даже одиночные запросы на чтение данных использовали аннотацию с параметром readOnly=true. Я пытался писать комментарии к мердж‑реквестам с вопросом: «зачем вы это делаете?». Но получал ответы из разряда: «для перфоманса», «у нас так принято, чтобы случайно не упустить случай когда транзакция будет действительна нужна», «раньше у нас была какая‑то проблема с коннектами (какая именно никто так и не вспомнил сколько я не пытал), мы везде добавили аннотации и все заработало». Если интересно чем в итоге закончилась эта дискуссия, то подробности далее.

Читать далее
Total votes 30: ↑28 and ↓2+30
Comments44

Оценка аналитика: взгляд со стороны IT-рекрутера

Level of difficultyEasy
Reading time9 min
Views7.1K

Привет, Хабр! Меня зовут Лиза, и я — руководитель команды подбора. В течение последних 3 лет я активно занимаюсь подбором IT‑специалистов, а системные аналитики занимают отдельное место в моем сердце. За это время я отсмотрела не одну тысячу резюме и провела несколько сотен собеседований. В данной статье я расскажу, как проходит оценка тех.скиллов на этапе IT‑рекрутера, и на что мы обращаем внимание во время общения. Вместе разберем ход собеседования на примере реальной вакансии системного аналитика. А также я поделюсь небольшими лайфхаками, как сделать взаимодействие аналитика и IT‑рекрутера продуктивным и приятным.

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

Читать далее
Total votes 11: ↑6 and ↓5+3
Comments12

ИТ в РФ. Все по прежнему: не нужно. Итоги 1 квартала 2024, обзор текущей прессы и статей на Хабре

Level of difficultyHard
Reading time8 min
Views54K

За МКАДом зарплаты в несколько раз меньше, чем в ДС. Это правда. Но нужно учитывать, что у каждого жителя замкадья есть огород и приусадебное хозяйство. Жители замкадья питаются с огородов, выращивают птицу и скот. Поэтому деньги им нужны только на одежду и коммунальные платежи. А значит вполне справедливо было установить им меньшие зарплаты, чем в Столице, где приходится покупать в том числе и продукты питания.
Как я вижу, эта паста из как минимум 2018 года не утратила силы, только стала звучать короче – «Для замкадья ЗП озвученную ранее считаю нормальной».
Для лиги лени: HR копируют друг у друга статьи «вода жидкая» и «На рынке дефицит высококвалифицированных низкооплачиваемых кадров». Иных изменений нет.
Сама статья - низкокачественное нытье, можно не читать.

Читать далее
Total votes 119: ↑72 and ↓47+36
Comments180

Масштабирование подписок GraphQL в Go с использованием Epoll и архитектуры, основанной на событиях

Reading time17 min
Views1.8K

«Сделай работающим, сделай правильным, сделай быстрым». Это мантра, которую вы, вероятно, слышали раньше. Это хорошая мантра, которая помогает вам сосредоточиться на том, чтобы не переусложнять решение. Я пришел к выводу, что обычно достаточно сделать это правильно, обычно это достаточно быстро, если сделать это правильно.

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

В процессе того, как мы делали это правильно, мы сократили количество горутин на 99% и потребление памяти на 90% без жертвования производительностью. В этой статье я объясню, как мы достигли этого. Использование Epoll/Kqueue сыграло большую роль в этом, но также переосмысление архитектуры, чтобы она была более событийно‑ориентированной.

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

Как донести секреты до dev-тачки и не пролить?

Level of difficultyMedium
Reading time11 min
Views6K

Чем дольше работаю, тем больше вижу разнообразных практик по работе с секретами. Некоторые рабочие, другие — нет, а от части просто берёт оторопь. В статье я разберу варианты и расскажу о плюсах и минусах разных подходов.

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

Этот текст — продолжение серии CI/CD в каждый дом, в прошлый раз мы обсуждали, как организовать сборочный цех базовых docker-образов.

TL;DR: На dev-тачках должны светиться только персональные/локальные секреты. Короткоживущие секреты лучше вечных. Храним безопасно. Передаём шифрованно. Употребляем сессионно.

Читать далее
Total votes 14: ↑13 and ↓1+14
Comments1

Выгорание: рассматривая золу под макроскопом

Level of difficultyMedium
Reading time12 min
Views17K

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

Я начал свой путь как разработчик и был им 15 лет, а сейчас руководитель группы разработки. Прошёл всю дорогу от младшего до ведущего и шагнул дальше. Пока я гнал по карьерному треку, я полноценно выгорал два раза, а потом решил, что хватит это терпеть. И не выгорел третий. Как получилось? Об этом и будет эта статья.

Читать далее
Total votes 81: ↑77 and ↓4+85
Comments22

Почему люди не делают бэкапы?

Level of difficultyEasy
Reading time6 min
Views16K
Есть у меня вузовский товарищ Сашка. Математик, физик, а теперь и разработчик (умело монетизирует мозги), умный до безобразия. Ещё в университете он проявлял патологическую собранность в походах: чего бы ни понадобилось, всё было у него в рюкзаке. Год за годом он погружался в тему жизнеобеспечения всё глубже — и вот в ковидные времена общество получило выживальщика, продуманного до мелочей. Это тот случай, когда тушёнка, сгущёнка, йодид калия, триста способов разжечь костёр, землянка в пригородном лесу уже выкопана и меблирована обставлена по последнему слову выживания. Так вот, этот разработчик, математик, физик и человек, желающий во что бы то ни стало сохраниться вместе с тихоходками, с полгода назад истерически кричал мне в трубку, что у него «стёрся» проект длиной в год. Причина истерики проста: он не сделал бэкап. И это могла быть курьёзная байка, но таких — сотни и тысячи. Это люди, которые доверяют какому-то авосю свой труд, свои силы, свой опыт, свои деньги, данные, судьбы своих компаний. А авось почему-то оказывается ненадёжным.


Это всё чёрная кошка виновата, а не бэкапы там какие-то несделанные

Почему так происходит? Предлагаю рассмотреть 9 возможных причин.
Читать дальше →
Total votes 43: ↑40 and ↓3+52
Comments91

Руководство по Kubernetes для хейтеров Kubernetes

Level of difficultyMedium
Reading time6 min
Views10K


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

Я и сам замешан в перемывании косточек на эту тему.
Читать дальше →
Total votes 13: ↑10 and ↓3+14
Comments10

PostgreSQL + pgAdmin + mTLS + certificate-based authentication + docker-compose в одном флаконе

Reading time4 min
Views5.9K

Чего у меня не отнять, дак это мастерства заголовка...

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

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

TL;DR исходники к вашим услугам.

В рамках любых взаимодействий мы сталкиваемся с такими сущностями как авторизация и аутентификация. Повторять в 100500 раз что есть что я не буду (но мне не лень такую длинную ремарку напечатать, ага). В рамках PostgreSQL первое обеспечивается через Roles, а второе через Privileges.

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

Мега-Учебник Flask Глава 1: Привет, мир! (издание 2024)

Level of difficultyMedium
Reading time18 min
Views43K

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

Начать изучение
Total votes 46: ↑46 and ↓0+46
Comments12

Information

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

Specialization

Backend Developer, Software Architect
Lead
Git
SQL
Docker
Python
Django
RabbitMQ
Kubernetes
Database
Designing application architecture
Creating project architecture