System design #архитектура
Оказывается, что есть люди, которые ещё не читали вот этот набор примеров по дизайну систем. С описанием требований, дискуссиями за и против, схемами. Всем рекомендую.
Почему это актуально? Ну, например, относительно недавно на собеседовании в одну немаленькую контору, мне предложили рассказать фактически вот это, про Twitter. Собеседование состояло из трёх секций, эта секция называлась "дизайн информационных систем" (system design). Популярная штука, рекомендую подготовиться заранее.
Нужны ли знания об архитектуре в реальной жизни? Да. Например, если вы собрались проектировать систему с нуля и считаете, что она будет расширяться. Ну или при переходе на микро-сервисную архитектуру из монолита - тоже поможет не наломать дров.
Оказывается, что есть люди, которые ещё не читали вот этот набор примеров по дизайну систем. С описанием требований, дискуссиями за и против, схемами. Всем рекомендую.
Почему это актуально? Ну, например, относительно недавно на собеседовании в одну немаленькую контору, мне предложили рассказать фактически вот это, про Twitter. Собеседование состояло из трёх секций, эта секция называлась "дизайн информационных систем" (system design). Популярная штука, рекомендую подготовиться заранее.
Нужны ли знания об архитектуре в реальной жизни? Да. Например, если вы собрались проектировать систему с нуля и считаете, что она будет расширяться. Ну или при переходе на микро-сервисную архитектуру из монолита - тоже поможет не наломать дров.
GitHub
GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes…
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. - donnemartin/system-design-primer
🔥5🎉1
Dragonfly #решение
Если кто пропустил, ребята написали свой Redis и назвали это Dragonfly. Сообщают о приросте производительности в 25 раз и экономии 30% памяти. Я погонял на пет проекте с помощью
Сегодня я снова услышал про Dragonfly в подкасте RadioDotNet. Оказывается, автор RavenDB (БД на C#) тоже написал пару строк о "своём Redis'е". Естественно, с использованием C#. Чтение занимательное, рекомендую.
Вообще, мне нравится любое движение в сторону увеличения производительности. Не смотря на то, что, кажется, "дешевле купить ещё памяти" или "докинуть процессоров", я регулярно слышу "сервис потребляет слишком много ресурсов", "на эти деньги можно нанять ещё программистов" или "кэш работает слишком медленно". Я уверен, что программы должны работать быстро, а ресурсы нужно экономить, поэтому что они либо дороги, либо конечны.
Если кто пропустил, ребята написали свой Redis и назвали это Dragonfly. Сообщают о приросте производительности в 25 раз и экономии 30% памяти. Я погонял на пет проекте с помощью
memtier_benchmark
и пары скриптов в Postman
- остался доволен.Сегодня я снова услышал про Dragonfly в подкасте RadioDotNet. Оказывается, автор RavenDB (БД на C#) тоже написал пару строк о "своём Redis'е". Естественно, с использованием C#. Чтение занимательное, рекомендую.
Вообще, мне нравится любое движение в сторону увеличения производительности. Не смотря на то, что, кажется, "дешевле купить ещё памяти" или "докинуть процессоров", я регулярно слышу "сервис потребляет слишком много ресурсов", "на эти деньги можно нанять ещё программистов" или "кэш работает слишком медленно". Я уверен, что программы должны работать быстро, а ресурсы нужно экономить, поэтому что они либо дороги, либо конечны.
Dragonfly
Dragonfly | An In-Memory Data Store without Limits
Discover Dragonfly - the most performant in-memory data store, engineered for extreme throughput at scale.
🔥4
17 сентября в Нижнем Новгороде будет конференция по .NET. Расскажут про культуру документации, надёжные интеграции и MediatR. Про микрооптимизации буду вещать я.
#лекция
#лекция
👏6
Давайте рассказывать про ЗП #деньги
Я люблю писать и беседовать про деньги, но это почему-то не всегда приветствуется. Тем не менее, я считаю, что это важно. Это позволяет коллегам знать о том, что они чего-то стоят.
Недавно получил подтверждение, что наши компании способны давать весьма конкурентную зарплату. Я имел удовольствие сравнивать предложение компании из Силиконовой долины и нашего аналога IKEA. Батл вышел великолепный, но, на удивление, равный.
Из США предлагали древнее легаси на C#, полное отсутствие микросервисов и всяких модных шутк, но за очень приличные деньги.
Наши давали архитектора, без возможности программировать, но за бОльше деньги. Микросервисы, нормальные технологии, полный фарш. Из минусов - зарплата формируется из оклад + премия. В принципе, это нормальная практика.
Почему я это пишу? Я сторонник открытых цифр по зарплате, так как это помогает нам (работникам) понимать, а, собственно, сколько мы стоим. И, надеюсь, это позволит всем нам не соглашаться на полумеры.
Я люблю писать и беседовать про деньги, но это почему-то не всегда приветствуется. Тем не менее, я считаю, что это важно. Это позволяет коллегам знать о том, что они чего-то стоят.
Недавно получил подтверждение, что наши компании способны давать весьма конкурентную зарплату. Я имел удовольствие сравнивать предложение компании из Силиконовой долины и нашего аналога IKEA. Батл вышел великолепный, но, на удивление, равный.
Из США предлагали древнее легаси на C#, полное отсутствие микросервисов и всяких модных шутк, но за очень приличные деньги.
Наши давали архитектора, без возможности программировать, но за бОльше деньги. Микросервисы, нормальные технологии, полный фарш. Из минусов - зарплата формируется из оклад + премия. В принципе, это нормальная практика.
Почему я это пишу? Я сторонник открытых цифр по зарплате, так как это помогает нам (работникам) понимать, а, собственно, сколько мы стоим. И, надеюсь, это позволит всем нам не соглашаться на полумеры.
👍3
В преддверии мероприятия, я рекомендую ознакомиться с интересными статьями: почему не нужно использовать MediatR (статья на русском тут) и почему его использовать круто.
Вообще, к MediatR у меня много претензий, в том числе по перформансу. Если вы пойдёте по ссылке, я замечу, что эта библиотека не рекомендуемая для работы в проде.
Ещё немного бенчмарков по MediatR можно найти тут. Детальный рассказ по перформансу тут.
#архитектура #решение #скорость #память
Вообще, к MediatR у меня много претензий, в том числе по перформансу. Если вы пойдёте по ссылке, я замечу, что эта библиотека не рекомендуемая для работы в проде.
Ещё немного бенчмарков по MediatR можно найти тут. Детальный рассказ по перформансу тут.
#архитектура #решение #скорость #память
High-performance design patterns #лекция #скорость #память
Один парень из Польши пишет тут свой блог про перформанс. Рекомендую начать знакомство с ним с этого видео, а уже потом переходить к его известной книге.
Каждый раз, когда я рассказываю про подробных людей, меня немного мучает совесть. Мол, ну и так все знают. А нет, практика показывает, что многие не знают.
Один парень из Польши пишет тут свой блог про перформанс. Рекомендую начать знакомство с ним с этого видео, а уже потом переходить к его известной книге.
Каждый раз, когда я рассказываю про подробных людей, меня немного мучает совесть. Мол, ну и так все знают. А нет, практика показывает, что многие не знают.
YouTube
High-performance code design patterns in C#. Konrad Kokosa .NET Fest 2019
The talk from .NET Fest conference in Kyiv, Ukraine.
Presentation: https://prodotnetmemory.com/slides/PerformancePatterns/#1
Fb: https://www.facebook.com/dotNETFest/
Website: https://dotnetfest.com/
More and more effort is being seen in .NET ecosystem put…
Presentation: https://prodotnetmemory.com/slides/PerformancePatterns/#1
Fb: https://www.facebook.com/dotNETFest/
Website: https://dotnetfest.com/
More and more effort is being seen in .NET ecosystem put…
Андрей Акиньшин #скорость #память
Ещё одного парня рекомендуют. Автор мема "Зависит!" в плане микро-бенчмаркинга. Ну, типа, всё зависит от среды исполнения. А-то мы не знали.
Собственно, Андрей - один из авторов Benchmark.NET. Парень не выдержал особенности GC, нового JIT и сильно ударился в статистику. И Huawai. Очень рекомендую ранние выступления и книгу.
Ну и выступление Андрея про микрооптимизации всё ещё актуальное, поскольку даёт общие подходы, а не готовые решения. Больше готовых решений можно найти в очень старом выступлении вот тут.
Ещё одного парня рекомендуют. Автор мема "Зависит!" в плане микро-бенчмаркинга. Ну, типа, всё зависит от среды исполнения. А-то мы не знали.
Собственно, Андрей - один из авторов Benchmark.NET. Парень не выдержал особенности GC, нового JIT и сильно ударился в статистику. И Huawai. Очень рекомендую ранние выступления и книгу.
Ну и выступление Андрея про микрооптимизации всё ещё актуальное, поскольку даёт общие подходы, а не готовые решения. Больше готовых решений можно найти в очень старом выступлении вот тут.
aakinshin.net
Andrey Akinshin
Andrey Akinshin · Writings on statistics and software performance
👍1
Микрооптимизации в .NET #лекция #скорость #память
Недавно рассказывал про микрооптимизации. Видео можно посмотреть, а презентацию - скачать. Успехов!
Недавно рассказывал про микрооптимизации. Видео можно посмотреть, а презентацию - скачать. Успехов!
YouTube
Микрооптимизации в .NET — Кирилл Бажайкин, Altium
На примерах с бенчмарками и небольшим количеством теории Кирилл рассказал о микрооптимизации в .NET. Также объяснил почему этим не стоит заниматься, а если заниматься, то как делать это правильно.
Дайджесты, статьи и анонсы митапов: https://t.iss.one/itstinkoff…
Дайджесты, статьи и анонсы митапов: https://t.iss.one/itstinkoff…
👍11
Марк Симан #архитектура
Хочу рассказать про одного датчанина, имя которого я никак не могу запомнить, но, при этом, отлично помню его фото в блоге. Вы можете знать его по AutoFixture - он является одним из авторов.
Кроме того, мужчина весьма много пишет: про тесты, проблемы DI и о программирование вообще. Много книг. Знакомство рекомендую начать вот с этого видео. В принципе, все его статьи примерно такие - много теории, чуть-чуть практики, много тем для размышления.
Хочу рассказать про одного датчанина, имя которого я никак не могу запомнить, но, при этом, отлично помню его фото в блоге. Вы можете знать его по AutoFixture - он является одним из авторов.
Кроме того, мужчина весьма много пишет: про тесты, проблемы DI и о программирование вообще. Много книг. Знакомство рекомендую начать вот с этого видео. В принципе, все его статьи примерно такие - много теории, чуть-чуть практики, много тем для размышления.
👍3
Графика HTMLCanvas #графика #скорость
Рекомендую хорошую статью про Rust, SIMD, WebAssembly и GPU. Разницу в подходах можно пощупать онлайн. В принципе, вывод очевиден - использовать GPU при работе с графикой сильно выгоднее. Однако путь автора и попытки добиться высокой производительности без GPU потрясают.
Эта статья (вернее, её первая часть) стала для меня важным мостиком в мир Rust и WebAssembly. До этого я не очень представлял, как вообще всё это заставить работать вместе.
Рекомендую хорошую статью про Rust, SIMD, WebAssembly и GPU. Разницу в подходах можно пощупать онлайн. В принципе, вывод очевиден - использовать GPU при работе с графикой сильно выгоднее. Однако путь автора и попытки добиться высокой производительности без GPU потрясают.
Эта статья (вернее, её первая часть) стала для меня важным мостиком в мир Rust и WebAssembly. До этого я не очень представлял, как вообще всё это заставить работать вместе.
Хабр
Используем клиентский процессор по максимуму. Часть 2: SIMD + мультипоточность
Снова поговорим об ускорении работы клиентской стороны веб-приложения и о том, как для этого задействовать все вычислительные ресурсы процессора. В предыдущей части мы нарисовали фрактал Ньютона с...
Скрипты в .NET #решение
Однажды я искал библиотеку, чтобы писать скриптики на JS и работать с ними из .NET. Ну знаете, достать из БД логику, которую написал заказчик без участия программиста, на лету изменить поведение приложения, розовые пони... эх, мечты-мечты.
Но библиотеку я запомнил. Поэтому, могу рекомендовать познакомиться с ней тем, кто ещё хочкт прикрутить скриптики на JS. Бенчмарки неплохие, парни из RavenDB и Orchard используют.
Однажды я искал библиотеку, чтобы писать скриптики на JS и работать с ними из .NET. Ну знаете, достать из БД логику, которую написал заказчик без участия программиста, на лету изменить поведение приложения, розовые пони... эх, мечты-мечты.
Но библиотеку я запомнил. Поэтому, могу рекомендовать познакомиться с ней тем, кто ещё хочкт прикрутить скриптики на JS. Бенчмарки неплохие, парни из RavenDB и Orchard используют.
GitHub
GitHub - sebastienros/jint: Javascript Interpreter for .NET
Javascript Interpreter for .NET. Contribute to sebastienros/jint development by creating an account on GitHub.
👍1
Как работает память #память
Читаю тут текст для настоящих мужиков. Это про то, как "организована память" в .NET. До этого были догадки, были комментарии от создателей, но не было какого-то обобщающего документа от MS.
Вчитываясь в текст, я всё отчётливее понимаю: теперь на собеседованиях можно отвечать "зависит", когда меня попросят реализовать паттерн Singleton. Ведь атомарность действий зависит от платформы.
Узнал про это из подкаста Radio Dotnet. В этом выпуске около часа рассказывают про оптимизации в .NET 7. Очень занимательно.
Читаю тут текст для настоящих мужиков. Это про то, как "организована память" в .NET. До этого были догадки, были комментарии от создателей, но не было какого-то обобщающего документа от MS.
Вчитываясь в текст, я всё отчётливее понимаю: теперь на собеседованиях можно отвечать "зависит", когда меня попросят реализовать паттерн Singleton. Ведь атомарность действий зависит от платформы.
Узнал про это из подкаста Radio Dotnet. В этом выпуске около часа рассказывают про оптимизации в .NET 7. Очень занимательно.
GitHub
Memory model document. by VSadov · Pull Request #75790 · dotnet/runtime
A document describing memory model of .NET runtimes.
Fixes #63474
Fixes #63474
👍1
Благодарные читатели рекомендуют напомнить про мужчину из Польши и его прекрасные постеры. Данные несколько устарели, но, в целом, дают весьма неплохое представление.
Telegram
C# Heppard
Один парень из Польши пишет тут свой блог про перформанс. Рекомендую начать знакомство с ним с этого видео, а уже потом переходить к его известной книге.
Каждый раз, когда я рассказываю про подробных людей, меня немного мучает совесть. Мол, ну и так все…
Каждый раз, когда я рассказываю про подробных людей, меня немного мучает совесть. Мол, ну и так все…
Тинькофф написал статью про последние митапы про .NET. Я там тоже есть, но в данном случае хочу порекомендовать вот это (про оптимизации компилятора, осторожно - много IL). И вот это (про lock-free, но на самом деле про обычные concurrent-коллекции).
Руслана (про боль и микросервисы) с Николаем (проектная документация) тоже порекомендую. Их доклады не совсем по теме канала, но они клёвые.
#статья
Руслана (про боль и микросервисы) с Николаем (проектная документация) тоже порекомендую. Их доклады не совсем по теме канала, но они клёвые.
#статья
👍4
PostgreSQL vs MongoDB #хранилище #лекция #решение
Рекомендую достаточно старое видео на тему PostgreSQL vs MongoDB. Недавно пересматривал из-за необходимости выбора. Остановился на PG. Сразу после этого видео рекомендую второе. Оно в тему.
Во втором видео есть интересное объяснение того, что такое highload (high-volume). По версии "человека с лицом индейца" (его зовут Олег Бартунов, если что), это "ситуация в системе, грозящая отказом в обслуживании из-за недостатка ресурсов". Там же про ошибки проектирования. Напомню, что "проектированием" иногда называют само программирование. То есть ваша логика должна быть заточена на highload.
Рекомендую достаточно старое видео на тему PostgreSQL vs MongoDB. Недавно пересматривал из-за необходимости выбора. Остановился на PG. Сразу после этого видео рекомендую второе. Оно в тему.
Во втором видео есть интересное объяснение того, что такое highload (high-volume). По версии "человека с лицом индейца" (его зовут Олег Бартунов, если что), это "ситуация в системе, грозящая отказом в обслуживании из-за недостатка ресурсов". Там же про ошибки проектирования. Напомню, что "проектированием" иногда называют само программирование. То есть ваша логика должна быть заточена на highload.
YouTube
Postgres vs Mongo / Олег Бартунов (Postgres Professional)
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
РИТ++ 2017, Backend Conf
Тезисы:
https://backendconf.ru/2017/abstracts/2781.html…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
РИТ++ 2017, Backend Conf
Тезисы:
https://backendconf.ru/2017/abstracts/2781.html…
🔥2👍1