Современные процессоры очень круты. Они таят в себе великое множество секретов и невероятных возможностей. И просто восхитительно, что некоторые из способностей процессоров легко продемонстрировать даже из такого высокоуровневого языка, как C#, буквально за десять строчек кода!
Тимлид, автор @budnidev
Нормализация отношений. Шесть нормальных форм
Процесс проектирования БД с использование метода НФ является итерационным и заключается в последовательном переводе отношения из 1НФ в НФ более высокого порядка по определенным правилам. Каждая следующая НФ ограничивается определенным типом функциональных зависимостей и устранением соответствующих аномалий при выполнении операций над отношениями БД, а также сохранении свойств предшествующих НФ.
Нахождение максимальной общей подпоследовательности
Мультиарендность в Kubernetes

Могут ли несколько команд использовать один и тот же кластер Kubernetes?
Можно ли безопасно запускать ненадежные рабочие нагрузки от ненадежных пользователей?
Поддерживает ли Kubernetes мультиарендность?
В этой статье рассмотрим проблемы запуска кластера с несколькими арендаторами.
ThreadPool. async/await

А вы никогда не задумывались, что async
и await
выглядят как-то инородно среди прочего C# кода? Больше нигде не встречается такого странного синтаксиса и таких модификаторов, кроме как в методах, работающих с Task
и Task<T>
.
А ещё интересно, сколько вообще стоит пользоваться async
/await
? И когда можно (нужно?) обходиться без них?
6. Устойчивость систем автоматического управления. 6.6 Понятие об областях устойчивости

Продолжаем публикацию лекций Олега Степановича Козлова по предмету "Управление в Технических Системах".
В этой лекции мы покажем как наши деды без компьютрера и "цифровых двойников" строили ракеты и отправляли человека в космос. Но сначала краткое содержание предыдущих серий:
1. Введение в теорию автоматического управления.2. Математическое описание систем автоматического управления 2.1 — 2.3, 2.3 — 2.8, 2.9 — 2.13.
3. ЧАСТОТНЫЕ ХАРАКТЕРИСТИКИ ЗВЕНЬЕВ И СИСТЕМ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ РЕГУЛИРОВАНИЯ. 3.1. Амплитудно-фазовая частотная характеристика: годограф, АФЧХ, ЛАХ, ФЧХ. 3.2. Типовые звенья систем автоматического управления регулирования. Классификация типовых звеньев. Простейшие типовые звенья. 3.3. Апериодическое звено 1–го порядка инерционное звено. На примере входной камеры ядерного реактора. 3.4. Апериодическое звено 2-го порядка. 3.5. Колебательное звено. 3.6. Инерционно-дифференцирующее звено. 3.7. Форсирующее звено. 3.8. Инерционно-интегрирующее звено (интегрирующее звено с замедлением). 3.9. Изодромное звено (изодром). 3.10 Минимально-фазовые и не минимально-фазовые звенья. 3.11 Математическая модель кинетики нейтронов в «точечном» реакторе «нулевой» мощности.
4. Структурные преобразования систем автоматического регулирования.
5. Передаточные функции и уравнения динамики замкнутых систем автоматического регулирования (САР).
6. Устойчивость систем автоматического регулирования. 6.1 Понятие об устойчивости САР. Теорема Ляпунова. 6.2 Необходимые условия устойчивости линейных и линеаризованных САР. 6.3 Алгебраический критерий устойчивости Гурвица. 6.4 Частотный критерий устойчивости Михайлова. 6.5 Критерий Найквиста.
После этой лекции, даже не имея компьютера, а только милиметровую бумагу вы сможете рассчитать устойчивость любых САР.
Поднимаем Kubernetes с нуля

Создание кластера Kubernetes может быть сложным процессом, который включает в себя множество опций, но сложные вещи могут стать более понятными, когда их разложить на части. В этой статье мы демистифицируем процесс создания кластера Kubernetes, понимая минимальный набор компонентов и настроек, необходимых для запуска узла Kubernetes внутри виртуальной машины.
Как получить 30 удаленных работ? Опыт 300 собеседований. 9 неочевидных советов для соискателя

Этот метод дал мне конверсию 50% из собеседования в оффер на вакансию «маркетолог» с доходом от 70к.
Меня зовут Слава, 4 года назад я работал маркетологом в агентстве. И решил поискать работу мечты на hh.ru. Я знал, что даже есть агентства, которые закрывают себе клиентов на hh.ru.
Эта уверенность помогла мне выжить 3 первых месяца безуспешных попыток: ходил на собесы, делал изнуряющие тестовые и даже получил работу, с которой сбежал через 2 недели.
Jaeger для трассировки в микросервисной архитектуре

Меня зовут Алексей Мясников, я тимлид на проекте YDB в Яндекс Облаке. А ещё — старший ментор на курсе «Go-разработчик» в Яндекс Практикуме и кандидат технических наук. В коммерческой разработке более 15 лет, стек — C++, Java, Go, TypeScript, а пробовал около 20 языков программирования, в том числе в продакшн.
Эта статья про Go и микросервисную архитектуру написана на основе вебинара для Практикума.
Рассмотрим, как работает Jaeger, один из популярных инструментов, который помогает расследовать инциденты и находить узкие места в производительности в микросервисной архитектуре. Разберём, как правильно настроить трассировку и с какими проблемами можно столкнуться в процессе.
Тук-Тук! Кто там? Микросервис

Микросервисная архитектура сильно впечаталась в умы разработки. Но на проде все это не всегда вызывает много энтузиазма. Все это, скажем так, давно известные истины. Но как быть? Надо как-то этим управлять.
Трудности перевода. Как научить микросервисы общаться и не ссориться

Привет! Меня зовут Саша Сусиков. Я проверяю клавиатуры на прочность около 10 лет из них последние 2 года с помощью Go. Сейчас я участвую в разработке платформы СберМаркета, где создаю инструменты, которые упрощают жизнь разработчикам. Эта статья для тех, кому предстоит настроить процесс взаимодействия сервисов в компании и вы ищете, как не наломать дров.
Гайд по эвент-сорсингу

Считается, что эвент-сорсинг это просто паттерн работы с данными, но применение эвент-сорсинга на деле приводит к большому числу изменений в дизайне приложений. К тому же, сделать эвент-сорсинг правильно не так просто, с одной стороны потому, что нужно заранее ответить на большое количество вопросов, а с другой нужно знать на какие вопросы отвечать.
В этой статье попробую рассказать о том, что такое эвент-сорсинг, как он меняет дизайн приложений, постараюсь подсветить те вопросы, которые нужно учесть при проектировании и ещё поделюсь примером системы из двух приложений, написанных с применением эвент-сорсинга.
Как сделать из не тенантного приложения мультитенантное
Не буду давать определение мультитенантности, об этом уже несколько раз писали тут и тут. А лучше напрямик перейдем к теме статьи и начнем с таких вопросов:
Почему приложение не делают сразу мультитенантным?
Бывает, что приложение изначально разрабатывают для инсталляции только на стороне клиента. Можно назвать такое приложение коробочным или software as a product. Клиент покупает коробку и разворачивает приложение на своих серверах (примеров таких приложений много).
Но со временем компания разработчик может задуматься, что хорошо бы разместить приложение в облаке, чтобы его арендовали (software as a service). Этот способ развертывания имеет плюсы и для клиентов, и для компании разработчика. Клиенты могут быстро получить работающую систему и не задумываться о развертывании и администрировании. При аренде приложение не требуется больших единовременных капиталовложений.
А компания разработчик получит новых клиентов, а так же новые задачи: развертывание приложения в облаке, администрирование, обновление на новые версии, миграцию данных при обновлении, бэкап данных, мониторинг скорости работы и ошибок, исправление проблем в случае их появления.
О классах Program и Startup — инициализация ASP.NET приложения. Часть I: Program и IHostBuilder

Не так давно на Хабре я увидел статью с многообещающим названием "Что из себя представляет класс Startup и Program.cs в ASP.NET Core". Меня всегда интересовало и интересует, что именно происходит под капотом той или иной библиотеки или фреймворка, с которыми мне доводится работать. И к веб-приложениям на ASP.NET Core это относится в полной мере. И я надеялся получить из этой статьи новую информацию о том, как работают упомянутые классы при запуске такого приложения. Та статья, к сожалению, меня разочаровала: в ней всего лишь в очередной раз был пересказан кусок руководства, никакой новой информации я оттуда не получил. И при чтении ее я подумал, что, наверное, есть и другие люди, которым, как и мне, интересно не просто знать, как применять тот или иной фреймворк (ASP.NET Core в данном случае), но и как он работает. А так как я по разным причинам последнее время довольно сильно углубился во внутреннее устройство ASP.NET Core, то я подумал, что теперь мне есть много что рассказать о нем из того, что выходит за рамки руководств. И вот потому я решил для начала написать статью про то, что действительно представляют из себя классы Startup и Program - так, чтобы рассказать не о том, как ими пользоваться, а о том, как работают эти классы, причем - в контексте работы всего веб-приложения на ASP.NET Core. Однако поскольку необъятное объять нельзя, то предмет этот статьи ограничен. Прежде всего, она ограничивается рассказом только про веб-приложения, созданные с использованием нового типа шаблона приложения - Generic Host. Во-вторых, статья будет посвящена только тому, как происходит инициализация веб-приложения, потому что основная роль рассматриваемых классов именно такова - инициализация и запуск размещенного приложения.
И ещё - предупреждение, судя по одному из комментариев - необходимое, чтобы не вводить в заблуждение потенциальных читателей: эта статья не предназначена служить руководством, она не содержит рецептов "как это использовать на практике". Такая информация есть в многочисленных уже написанных другими руководствах, и я не вижу для себя смысла писать еще одно. Да и объем статьи и без того велик.
Итак, кому рассматриваемая тема, даже в столь ограниченном объеме, интересна - добро пожаловать под кат.
Как на самом деле работает Async/Await в C# (Часть 2)

Несколько недель назад в блоге «.NET Blog» появилась статья «Что такое .NET, и почему вы должны выбрать его?». В нем был представлен высокоуровневый обзор платформы, кратко описаны различные компоненты и архитектурные решения, а также обещаны более подробные посты по затронутым темам. Этот пост является первым таким продолжением, в котором подробно рассматривается история создания, архитектурные решения и детали реализации async/await в C# и .NET.
Нестабильный Wi-Fi? MikroTik покупай, частоту на нём автоматом меняй

В настоящее время интерференция наиболее актуальна для диапазона 2.4 ГГц, который перенасыщен работой вездесущих точек доступа. В статье я рассмотрел, какие возможности по исследованию радиочастотного спектра имеются на борту RouterOS, сформулировал рекомендации по выбору рабочей частоты точки доступа, работающей в сети без контроллера, а также предложил авторскую реализацию её автоматической смены. Предыстория такова, что ко мне обратилась компания Coffee Cup, у которой имеется сеть точек продаж формата кофе с собой, размещённых в разнокалиберных торговых центрах различных городов. Для работы кассового оборудования жизненно необходима работа Wi-Fi именно в диапазоне 2.4 ГГц, который, как следует ожидать, сильно зашумлён даже в огромных ТРЦ. Проблема оказалась настолько острой, что периодически устройства не могли нормально выйти в интернет, войдя в пике попыток переподключений к точке доступа. Вот в этом контексте и будет идти повествование, с отвлечением на моделирование других ситуаций.
Как мы строим архитектуру микросервисов для мобильного приложения СберБизнес

Привет, Хабр! Прежде чем погружаться в проблемы, давайте я расскажу, как у нас устроена микросервисная архитектура и куда мы идём. К сожалению или к счастью, в сегменте B2B в банковском и околобанковском обслуживании клиенты чаще пользуются веб-версиями приложений. Большие списки, зарплатные ведомости, работа с документами — всё это проще делать на большом экране. Постепенный переход в мобильную среду начинается только сейчас.
Как на самом деле работает Async/Await в C# (Часть 1)

Несколько недель назад в блоге «.NET Blog» появилась статья «Что такое .NET, и почему вы должны выбрать его?». В нем был представлен высокоуровневый обзор платформы, кратко описаны различные компоненты и архитектурные решения, а также обещаны более подробные посты по затронутым темам. Этот пост является первым таким продолжением, в котором подробно рассматривается история создания, архитектурные решения и детали реализации async/await в C# и .NET.
System.String не то, чем кажется. Представление строк в памяти .NET

Тип System.String - один из самых используемых при разработке. В этой статье я хотел бы поговорить о нюансах его реализации. Вы узнаете о том, как строки хранятся в памяти и почему в каждой строке есть 4 пустых байта.
ArrayPool<T>: подводные камни
Автоматическая сборка мусора упрощает разработку программ, избавляя от необходимости отслеживать жизненный цикл объектов и удалять их вручную. Однако, чтобы сборщик мусора был полезным инструментом, а не главным врагом на пути к высокой производительности — иногда имеет смысл помогать ему, оптимизируя частые аллокации и аллокации больших объектов.
Для уменьшения аллокаций в современном .NET предусмотрены Span/Memory<T>
, stackalloc
с поддержкой Span
, структуры и другие средства. Но если без объекта в куче не обойтись, например, если объект слишком большой для стека, или используется в асинхронном коде — этот объект можно переиспользовать. И для самых крупных объектов — массивов, в .NET встроены несколько реализаций ArrayPool<T>
.
В этой статье я расскажу о внутреннем устройстве реализаций ArrayPool<T>
в .NET, о подводных камнях, которые могут сделать пулинг неэффективным, о concurrent-структурах данных, а также о пулинге объектов, отличных от массивов.
Information
- Rating
- 2,378-th
- Registered
- Activity