Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
496 - Telegram Web
Telegram Web
Контейнер с "почтовым сервером" и UI для него, который можно использовать для отладки/тестирования

Также напоминаю про https://webhook.site - который умеет не только почту принимать и показывать в реальном времени, но и принимать вебхуки по get / post и показывать содержимое чего там пришло. Использовал для интеграции со Stripe, временно направив туда вебхуки от него.

#tools #dev
👍7
Использование ClaimsTransformation для RBAC.

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

Я таким образом добавлял id организации, которой принадлежит юзер (доставалось из базы по id юзера, который брался из его клаймов), потому что этот id кое-где использовался для вышеупомянутой RBAC. Это можно например делать в custom AuthenticationHandler (статья про это). #dotnet
Несложная сводная статья API Gateway vs. Load Balancer vs. Reverse Proxy - что, для чего, когда, почему и зачем используются те или иные штуки и чем они отличаются. #howto
4👍3
Возвращаясь к теме профайлинга в контейнерах.

На днях мне эти инструменты - а конкретно dotnet-trace и dotnet-counters - помогли выяснить, что перф просирается в контейнере по причине перекомпиляции EF запроса при каждом вызове. Простой вынос его в EF.CompiledQuery снизил утилизацию проца почти в 8 раз. Да, этот запрос вызывался много раз в секунду, но я первый раз такое вижу, чтобы оно ТАК влияло.

В любой контейнер эти инструменты ставятся очень просто. У меня на данный момент контейнеры собираются на базе mcr.microsoft.com/dotnet/aspnet:8.0.2-alpine3.19 и там надо

apk add dotnet7-sdk
dotnet tool install --global dotnet-trace
dotnet tool install --global dotnet-counters
...


Потом снимаешь трейсы с помощью dotnet-trace, выносишь из контейнера (с помощью docker cp) и рассматриваешь их с помощью Jetbrains dotTrace (два чая этим господам, исключительно удобная штука для рассматривания следов преступления под лупой)

PS Не забудьте убедица, что в вашем dockerfile НЕТ этой строки:

ENV DOTNET_EnableDiagnostics=0


потому что у меня она изначально была и инструменты соответственно не работали - просто не видился процесс :))
👍11🔥61
FluentContracts - с одной стороны выглядит симпатично... С другой стороны - выглядит, что писанины становится чуть больше. Надо вобщем попробовать в какой-нибудь небольшой проект затащить :) #dotnet
👍4👎1🤔1
Бесплатная книга Architecting Modern Web Applications with ASP.NET Core and Microsoft Azure за авторством Steve Smith и Microsoft. Я пролистал, ну в целом сакральных знаний там не особо, но для джунов зайдет отлично, особенно учитывая что там есть ряд интересных ссылок, например на Design Patterns с примерами и сводную таблицу Principles там же.

#books #dotnet
👍4
Пишут, что релизнули MongoDB.EntityFrameworkCore - ну и LINQ-запросы выглядят почти как традиционные LINQ в EF. А у меня так и не дошли руки посмотреть во что транслируются Where/Select/... в этом случае.
#dotnet
🔥2
Короткая статья с картинками про кэширование (наверное больше тоже для джунов, потому что там очевидные вещи и стратегии кэширования рассказываюца #howto
🔥31
Ещё какой-то набор иконок - hugeicons - svg, шрифт, разные типы. Почти как FontAwesome, только на 30% дешевле #ui #icons
Наконец-то в Orleans завезли resource optimized placement strategy - можно написать кастомный strategy placement провайдер и orleans будет знать/раскидывать в правильном объеме грейны по silo.

upd: мда, нормально проект с redis clustering/membership с предыдущей 8.0.0 не апдейтица - всё развалилось из-за keyed services в Redis membership провайдере. Ладна, подождём пока починят.

upd2: localhost clustering работает (проверил IAsyncEnumerable - работает годно :)
#dotnet
This media is not supported in your browser
VIEW IN TELEGRAM
Какая интересная штука, которую я прямо таки щас трогаю на предмет использования в бизнес-целях - https://www.danswer.ai - self-hosted (бесплатно) или cloud (платно), подключается OpenAI или Azure/AWS - но самое главное - целый вагон разных коннекторов, которые могут забирать данные начиная "из текстовых файлов" до Slack/Confluence/Google Drive/Github/Gitlab/... (их там больше 15 штук).

Содержит встроенный токенизатор и full-text поиск (под капотом есть Postgres, возможно используется его FTS, но это неточно - я ещё не лазил в базу)

Без каких либо проблем поднимается локально в докере одной командой (12-16 ГБ RAM), имеет свою вебморду с поиском и чятом по твоим документам. Единственное, что меня насторожило - это долгая индексация документов. Я загрузил два текстовых файла, суммарно 2 МБ plain text и индексация заняла 20 МИНУТ и 2-3 ядра. Но надо поиграться с настройками, возможно там где-то какая-то дичь стоит.

Также пока не очень понятно насколько эта штука хорошо умеет суммировать/агрегировать юзерские данные. Ну тоесть конкретно мой кейс - это дать дамп базы в каких-то вариантах, чтобы юзеры могли писать "топ 10 кастомеров 2023 года по суммам ордеров" и получить список или типа того.
#ai
🔥6
Попался тут на глаза System Design for Interviews and Beyond и ютуб автора курса - чел явно не натив (подумал я), а потом нашёл его linkedin и твиттер в свойствах ютуб канала. Посмотрел несколько видео фрагментарно - хорошо объясняет и картинки норм #howto
2025/07/11 22:30:56
Back to Top
HTML Embed Code: