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

https://dotnet.social/@denisio
加入频道
В продолжение предыдущей темы - ещё два фреймворка для построения систем на акторах, про которые сильно подробно писать нечего т.к. не использовал ни в живых ни в тестовых проектах, но которые на мой взгляд достаточно интересны для изучения.

Akka.NET - заявляется, что по capability это порт фреймворка Akka с Java/Scala и оно умеет 50 million msg/sec on a single machine. Small memory footprint; ~2.5 million actors per GB of heap, что прямо таки интересно. Несколько статей-tutorial'ов (помимо штатной доки конечно):
Неплохое пошаговое руководство + исходники.
Actor-Model System with Akka.
Working with Akka.NET and Akka.Cluster
First steps, Calling actors from another actor и другие статьи A.Brandão Lustosa

Proto.Actor - более простой фреймворк на мой взгляд (по сравнению с Orleans или Akka), но позволяет без каких либо телодвижений попробовать как это работает. Примера на основной странице хватит, чтобы получить рабочий проект. Примеров там штук 30, на любой вкус. Тоже умеет persistence состояний в разные места и кластеризацию с помощью кубера или Consul.
#dotnet
👍2
nestjs - несложный фреймворк для nodejs для вебприложений. Особенно хорошо подойдет тем, кто знает asp.net и хочет попробовать nodejs - в нём структура проекта и пайплайн чем-то напоминает asp.net (контроллеры, сервисы, DI, миддлвари).

Заодно в него положили websockets, поддержку mongo и немножечко graphql. Документация конечно местами не совсем разъясняет как например в websocket пробросить инфу о текущем юзере - приходится смотреть в примеры.

Есть конечно и сильно отличающиеся штуки (например, контроллеры в nestjs по дефолту singleton, а request/response надо пробрасывать как параметры action'ов). Но это не портит картину, просто как особенность фреймворка (ну и частично nodejs :) И конечно не очень привычно, то что контекст БД выглядит как singleton (в отличие от традиционного scoped в .net), однако вспомнив что цикл обработки nodejs это event loop - всё встаёт на свои места. Даже как-то легче не заморачиваца на многопоточность :)))

Вообщем, как минимум для разного рода пет-проектов или MVP вполне подходит. #js #dotnet
Manage your terraform like a container (en) - достаточно простая статья про #terraform и #aws с примерами и картинками
Как профайлить софт в контейнере с помощью штатных инструментов. Несмотря на то, что в заголовоке упомянуто .net 6 - оно работает и net 5 тоже без изменений. Дампы получаемые из контейнера - открываются не только в Visual Studio, но и в Rider тоже. Что немаловажно, инструменты профайлинга никак не влияют на контейнер, пока их не дёрнешь. То есть как минимум на DEV среду можно деплоить контейнер прямо с ними.

В продолжение темы профайлинга - часть 0, часть 1 и часть 2 статьи этого же автора про OpenTelemetry и Metrics API.
#dotnet #docker #perf
👍1
Тестирование WebAPI endpoints с помощь консольного HttpRepl #dotnet
https://learn.microsoft.com/en-us/aspnet/core/web-api/http-repl/?view=aspnetcore-7.0&tabs=windows
Множество разных битовых приёмов для быстрого вычисления значений (на скриншоте пример)
http://graphics.stanford.edu/~seander/bithacks.html
MeGit - лёгкий удобный опенсурсный клиент для git. Как и любой инструмент - требует изучения (я не сразу нашёл где сделать pull для branch :) #tools
Библиотека распознавателя QR-кодов на JS - умеет ~15 типов QR-кодов, работает в т.ч. и на мобильных браузерах #js

upd: для #blazor https://github.com/densen2014/ZXingBlazor
Подробный разбор архитектур разных известных сервисов. Полезно для понимания и систематизации знаний - как работает это всё и выглядит с архитектурной точки зрения. Заодно потом на собесе сможете поговорить более предметно :)) (на английском) #education

Youtube Design
WhatsApp
Parking Lot
Twitter
50-100 вопросов для собесов по базам данных. Некоторые статьи датируются 201х годом, но по пролистыванию - вопросы там по прежнему актуальные (на английском) #education

Database
SQL Queries
Microsoft SQL Server
MySQL
Postgres
Oracle
👍1
QuestPDF - пакет для генерации PDF-файлов #dotnet
🔥1
Kaitai Struct is a declarative language used to describe various binary data structures, laid out in files or in memory: i.e. binary file formats, network stream packet formats, etc. Прилагается Web IDE #tools
Статья из 6 частей про StringBuilder, где рассматриваются все кишки этого казалось бы простого класса. Особенно интересна последняя часть, где рассматривается ValueStringBuilder - стековая реализация StringBuilder, который по ряду причин остался internal в #dotnet
Просто и понятно (с картинками) про SSH и разные варианты его использования with labs #ssh #tools
https://iximiuz.com/en/posts/ssh-tunnels/
👍1
пакет dotNext - много интересного внутри, начиная от разных штук типа монад Result<T> / Optional<T>. Также есть разные unsafe штуки для байтоёбства - частично это конечно это всё решается Marshal, Unsafe и другими штуками, которые завезли в .net, когда он ещё назывался core. Есть удобные штуки для конструирования Expressions, а также пара вещей относящихся к распределённым системам - реализация Raft Consensus Algorithm (если вдруг кто захочет писать аналог Orleans, Akka и т.д.) и реализация Write Ahead Log, который частенько сопутствует этому. #dotnet
Использование регулярок для генерации Colored HTML #dotnet
пакет на github
песочница
Vuetastic - симпатичный UI-framework для Vue.js 3.0 #js #ui