📓 Записки программера
1.02K subscribers
304 photos
1 video
6 files
599 links
Канал с регулярными постами о разных интересных материалах (статьи, видео, фреймворки и полезные инструменты).

https://dotnet.social/@denisio
Download Telegram
Серия из коротких статей про MongoDB in C#, подойдёт тем кто не работал с MongoDB. Потому что там в основном базовые кейсы приводяца (вставка/апдейты/удаления/фильтрация-поиск), но с большим количеством кода в качестве примеров.

Есть и видео к статьям, но я не очень понимаю этот способ обучения :)) #mongodb #dotnet
🔥4
drawDB - онлайн рисование структуры БД. Технически опенсурс (github), можно развернуть и у себя #tools
🔥8
Свеженький проект nats-viewer - для просмотра JetStream в Nats #tools
👍2
Пара десятков вопросов (статья на linkedin) для задач на собесах со ссылками на solution #howto #questions
👍1
vue-webrtc - компонент для WebRTC коммуникации. За 5 минут можно сделать p2p-видеосвязь #vuejs
🤯3
Столкнулся тут с необходимости поснифать на DEV среде трафик между контейнерами докера... Некоторое количество командных строк на память.

Для начала с помощью docker network ls надо выяснить id нужного интерфейса (далее этот id написан как INTERFACE), 8000 - это exposed port моего контейнера.

Дампы пакетов в ASCII ( -A ):
tcpdump -i INTERFACE 'tcp dst port 8000' -A


Тоже самое + поиск по подстроке 'Sec-WebSocket-Key':
tcpdump -i INTERFACE 'tcp dst port 8000' -A | grep 'Sec-WebSocket-Key:'


Фильтрация только с флагом SYN (например для того чтобы посмотреть установку входящих соединений):
tcpdump -i INTERFACE 'tcp dst port 8000 and (tcp[tcpflags] & (tcp-syn) != 0)' -A

Мониторинг keep-alive пакетов

tcpdump -i INTERFACE 'tcp dst port 8000 and (tcp[tcpflags] == tcp-ack and less 1)' -A


Отображение заголовков http-пакетов GET/POST/HEAD

tcpdump -i INTERFACE 'tcp dst port 8000' -A | egrep --line-buffered "^........(GET |HTTP\/|POST |HEAD )|^[A-Za-z0-9-]+: " | sed -r 's/^........(GET |HTTP\/|POST |HEAD )/\n\1/g'


Ну а потом я вспомнил, что есть такой инструмент как nast, который позволяет дампить более простой строкой как заголовки так и тело входящего запроса:
nast -i INTERFACE -d -f 'tcp dst port 8000'


#tools #docker #tcpdump
👍8
Ещё одна статья по поводу использования ArrayPool<T>. Это и правда помогает, когда надо много аллоцировать на короткое время. Особенно помогает если надо аллоцировать буферы примерно одинакового размера. #dotnet
👍3
Простой вариант сделать свой reverse proxy с помощью YARP. Также в статье не описано этого, но рулить балансировкой можно из кода - основываясь на каких-то других (своих) критериях (время, адрес-подсеть источника, ...) #dotnet #architecture
👍1🔥1
Monoliths have been problematic, then micro-services turned out to be differently problematic. So let’s swing the pendulum back partway but focus more on making our monoliths modular for easier, more maintainable long term development.

Ещё один взгляд на модульные монолиты.

Вторая часть статьи, более подробная. #architecture
3
4️⃣0️⃣0️⃣😁
🔥20👍5
Managing 238M Memberships at Netflix - статья и 50 минутное видео с докладом про это #highload
1👍1
Некоторое количество советов при логировании с помощью Serilog (в основном связано с обогащением контекста разными штуками, чтобы потом легче было искать в логах нужное) #dotnet
🔥2
Чуть более десятка полезных запросов для Postgres собрал и оформил с примерами. Для одного поста в телегу - это слишком много (особенно с разметкой примеров вывода). Так что положил в виде gist на github:
🔸Текущие выполняемые запросы
🔸Запросы, выполняемые более 1 секунды
🔸Таблицы с % попадания в кэш при их использовании
🔸Размеры таблиц (включая индексы)
🔸Размеры индексов
🔸Размер текущей БД
🔸Размеры и наличие временных файлов
🔸Статистика по чтению индексов
🔸Статистика использования индексов
🔸Топ 5 самых активных таблиц
🔸Топ 5 самых активных индексов
🔸Никогда не использованные индексы
#postgres
👍8🔥6🤓1
LongQueryInterceptor.cs (gist) - автоматически логирует в штатный лог запросы EntityFramework, которые выполняются дольше чем указанное время. #dotnet #ef
👍7🔥3
Я и не знал, что современные браузеры умеют нативно разметкой рисовать формулы #css #html
🤯7
inject/provide в Vuejs - да... это не Рио-де-Жанейро, конечно назвать это DI сложно, но помогает разгрузить код от кросс-ссылок на файлы. Ну и офиц документация да, она правда нищевата на примеры.
#vuejs
👍1
Zuplo - интересный проект, который позволяет завернуть твоё API в них и делать разное (биллить, менеджить ключи, ...) без особых телодвижений.
🤔2👍1