Pull to refresh
0
0

.Net Developer

Send message

Фоновые асинхронные задачи в FastAPI и их мониторинг

Reading time19 min
Views10K

Привет! Меня зовут Иван, я бэкенд-разработчик в KTS.

Сегодня расскажу, как в FastAPI эффективно работать с фоновыми задачами и настроить их мониторинг в Prometheus.

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

В статье опишу 5 вариантов: встроенный в FastAPI Background Tasks и 4 библиотеки — ARQ, SAQ, FastStream, адаптированный к асинхронному коду Celery.

В конце расскажу, как мониторить фоновые задачи.

Читать далее
Total votes 49: ↑49 and ↓0+51
Comments30

Публикация локального сервера из дома в интернет

Level of difficultyEasy
Reading time10 min
Views43K

Приветики. Надеюсь, все отошли от новогодних, и можно писать и читать дальше. Как хозяин умного дома, я состою в чатике по Home Assistant, там прекрасное ответчивое комьюнити,
но периодически задаётся вопрос по тому, как собственно выставить свой веб сервис в интернет. И оказывается, что в двух словах тут не ответишь, а вменяемой инструкции на которую можно дать ссылку - нет. Так что теперь она будет здесь.

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

Мы рассмотрим здесь несколько сценариев - статический белый айпи, динамический белый айпи, и серый. Для серого рассмотрим варианты с готовыми сервисами, с помощью Keenetic и с помощью ssh туннеля. Погнали!

Читать далее
Total votes 57: ↑55 and ↓2+62
Comments97

Part 0. Инструментарий QA в Альфа Банке

Level of difficultyEasy
Reading time9 min
Views8.7K

Всем привет! Меня зовут Вадим Лунин. Я — QA Manager из Альфа Банка в Беларуси. Этой статьёй  хочу начать цикл статей по инструментам, которые мы используем для тестирования наших продуктов в Альфа Банке.

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

ThreadPool.Workers

Reading time13 min
Views5.8K

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

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

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

ReactiveValidation 2.0: валидация данных в Avalonia и WPF

Level of difficultyEasy
Reading time10 min
Views2.5K

Всем привет!
5 лет назад я рассказывал, как написал библиотеку для валидации данных в WPF. Всё это время активно развивался и продолжает развиваться другой десктоп фреймворк - Avalonia UI. Мне очень хотелось поддержать также и его, что и было сделано во второй версии библиотеки. Помимо этого, туда вошли другие интересные фичи.

Чтобы не было необходимости перечитывать предыдущую статью (тем более, многое поменялось с тех пор), под катом есть практически всё, что умеет библиотека на данный момент.

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

ReactiveValidation: валидация данных в WPF

Reading time9 min
Views11K
Здравствуй, Хабр!

Мне хотелось бы рассказать об Open Source библиотеке для WPF — ReactiveValidation, в процессе написания которой я пытался ориентироваться на FluentValidation и Reactive UI. Её задача — это валидация формы каждый раз, когда пользователь изменил данные внутри неё.


Пример работы с библиотекой. Хорошая новость — шаблон можно использовать свой

Основные фичи библиотеки:

  • Правила создаются через fluent-интерфейс
  • Полный внутренний контроль над изменением свойств
  • Поддержка локализации (в том числе «на лету»)
  • Отображение сообщений в GUI
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments4

Как работает хэширование

Level of difficultyMedium
Reading time12 min
Views64K

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

Хэш-функции фундаментальны и используются повсюду.

Но что же такое хэш-функции и как они работают?

В этом посте я собираюсь развенчать мифы вокруг этих функций. Мы начнём с простой хэш-функции, узнаем, как проверить, хороша ли хэш-функция, а затем рассмотрим реальный пример применения хэш-функции: хэш-таблицу.
Читать дальше →
Total votes 62: ↑59 and ↓3+70
Comments49

Проблемы накапливаются. Софт тормозит. Везде некомпетентность и хаос

Level of difficultyEasy
Reading time6 min
Views53K


Закон Старджона гласит: «Ничто не может всегда идти правильно». Рано или поздно всё ломается.

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

Взять недавний случай с багом в Windows Defender, который вызывал тормоза Windows. Крайне показательная история. Да, этот баг обнаружили, но в кодовой базе остались такие же. Мы этого не знаем наверняка, но вполне логично предположить, что количество скрытых багов растёт пропорционально кодовой базе. Поэтому софт всё больше тормозит со временем. Это естественный процесс, почти как закон природы.
Читать дальше →
Total votes 148: ↑106 and ↓42+91
Comments396

Дублирование тест-кейсов в Allure TestOps при использовании Playwright

Level of difficultyEasy
Reading time5 min
Views5.1K

Дублирование тест — кейсов в Allure TestOps при использовании Playwright (JS/TS). Описание проблемы и решение.

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

Программирование квантовых компьютеров: джентльменский набор издательства «Питер»

Reading time7 min
Views13K

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

Эта история началась 4 года назад и теперь, в конце 2020, у нас уже сформирован небольшой, но весьма доступный и актуальный портфель.

Вот как это было
Total votes 22: ↑22 and ↓0+22
Comments3

DDD, Hexagonal, Onion, Clean, CQRS… как я собрал всё это вместе

Reading time14 min
Views101K


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

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

С тех пор я всегда чувствовал, что мне нужно восстановить «потерянное» время и узнать как можно больше, как можно быстрее. Поэтому я стал немного увлекаться экспериментами, много читать и писать, уделяя особое внимание дизайну и архитектуре программного обеспечения. Вот почему я пишу эти статьи, чтобы помочь себе в обучении.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments14

Как я несколько лет боролся с прокрастинацией и победил: полное практическое руководство

Reading time8 min
Views294K

Постоянно откладываешь дела на потом и не видишь в этом проблемы? Мне это знакомо. Расскажу как не повторить моих ошибок и почему пора это прекращать. Не откладывай эту статью на потом!

Начать читать
Total votes 125: ↑100 and ↓25+95
Comments174

Что нового в .NET 7?

Reading time5 min
Views28K

Вышел .NET 7, а это значит, что можно вдоволь насладиться различными нововведениями и фишками. Расскажем про самые интересные улучшения: C# 11, контейнеры, производительность, GC и прочее.

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

Насколько быстр ASP.NET Core?

Reading time15 min
Views27K

В последние годы команда .NET усиленно рекламирует ASP.NET Core как один из самых быстрых веб-фреймворков на рынке. Источником этих утверждений всегда были бенчмарки TechEmpower Framework Benchmarks.

Скотт Хантер - директор по управлению программами .NET, утверждает, что .NET более чем в 10 раз быстрее, чем Node.js.

Скотт также утверждает, что .NET быстрее, чем Java, Go и даже C++.

Читать далее
Total votes 64: ↑63 and ↓1+72
Comments31

Микросервисы и неизбежная боль?

Reading time20 min
Views31K

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

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

Читать далее
Total votes 55: ↑53 and ↓2+64
Comments105

От нулевой организационной зрелости до девальвации менеджмента: четыре доклада для PM

Reading time3 min
Views7.6K

Руководитель проектов Валерий не всегда успевает на митапы — тогда он слушает записи в х1,5 с заботливо проставленными таймкодами. В этот раз он смотрит доклады с Пиэмной — онлайн-митапа ЮMoney для руководителей ИТ-проектов. Из видео он узнает:

◾️ на каком уровне организационной зрелости находится его команда и как использовать формулу эволюции для её прокачки;

◾️ почему менеджер проектов — это уже не управляющий, а «масло», которое нужно не каждой команде;

◾️ особенности проектного менеджмента в финтехе и подкапотные процессы банковских операций;

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

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

Смотреть доклады
Total votes 3: ↑2 and ↓1+5
Comments8

Что мы действительно (не)знаем о наличии сознания у сверхбольших нейросетей?

Reading time28 min
Views53K
image

В последнее время чаще стали появляется новости о том, что тот или иной эксперт в области ИИ заявил про появление у машины сознания. То Илья Суцкевер, директор по науке в OpenAI напишет о том, что «может быть, сегодняшние большие нейронные сети немножко обладают сознанием». А то и вовсе инженер Гугла Леймон Блейк найдет у искусственного интеллекта LaMDA разум и сознание и выложит в доказательство диалоги с ним. Резонанс последнего эпизода вообще большой — после объявления о том, что Блека отстранили от работы, а он в свою очередь собирается нанять для ИИ адвоката, разные конспирологические версии появились даже в комментариях на Хабре. Ну и чего бы им не появиться, если реально серьезный разбор вопроса о «сознании» нейросети с технической точки зрения найти трудно. Кроме того, что «комиссия по этике Гугл рассмотрела вопрос и решила, что ИИ не обладает сознанием», да еще ряда давно известных общефилософских размышлений ничего особо и нет. Поэтому, как человек потративший по роду работы более сотни часов своей жизни на общение с моделями такого рода и поиску в них проблем, я решил, что будет полезно восполнить пробел более подробным обзором вопроса. Завесу мистической тайны сознания нейросетей приподнимаем под катом )
Читать дальше →
Total votes 106: ↑103 and ↓3+131
Comments230

Разработчик с мозгом груга

Reading time14 min
Views88K

Введение


это сборник мыслей о разработке программ собранный разработчиком с мозгом груга

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

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

разработчиков с большим мозгом много, некоторым страница не понравится, скривят кислая рожа

Ещё больше-больше ДУМАЮТ, что они разработчики с большим мозгом и им она тоже не понравится

(груг раньше думал груг с большим мозгом, но потом всё понял)

это ладно!

груг надеется, что тебе понравится читать и может ты научишься на много-много ошибка груг совершил за длинную жизнь программиста
Читать дальше →
Total votes 223: ↑197 and ↓26+209
Comments81

Cloud Native в условиях неопределенности: как мы создаем среду на сотню бизнес-систем с нуля

Reading time5 min
Views5K

Cloud Native активно развивается в мире, а вот для банковских проектов в Беларуси это новая тема. Давайте обсудим развитие облачных технологий на примере Альфа-Банка в Беларуси – в нем я отвечаю за цифровую трансформацию и хочу поделиться с вами идеями.

Что такое производственная система банка и при чем здесь Cloud Native?

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

1. Cloud Native. Это подход к созданию и запуску приложений и сервисов, созданных специально для развертывания и эксплуатации в облачной инфраструктуре, что дает возможность командам разработчиков выйти на принципиально новый уровень эффективности.

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

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

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

Код выгорания: как пофиксить баги в своей собственной жизни

Reading time15 min
Views28K


Все мечтают ворваться в IT ради красивой жизни, высоких зарплат и «императорских» условий работы. Но так ли сладко живётся инженеру, как это малюют? Несмотря на все блага, доступные среднестатистическому разработчику, исследования фиксируют средний уровень благополучия, самочувствия и удовлетворённости жизнью. Оказывается, стакан полон только наполовину. IT-специалисты страдают от переработок, выгорания и не умеют справляться со стрессом. Это пост о заботливом отношении к себе. Здесь мы собрали конкретные практики, как наладить work-life balance, о котором так много говорят, повысить стрессоустойчивость, справиться с выгоранием и улучшить качество жизни, если ты в IT.

Приятного чтения!
Total votes 25: ↑22 and ↓3+23
Comments6

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Registered
Activity