Telegram Web Link
Раньше вам приходилось мудрить с кодом, чтобы реализовать уведомления в веб-приложении?😔

С SignalR все становится проще! Давайте разберем, как настроить эту библиотеку на примере чата и обеспечить асинхронное общение между сервером и веб-приложениями.🦾

После открытого онлайн-урока 31 июля в 20:00 мск вы сможете легко создавать хабы и контракты сообщений, отправлять уведомления пользователям и многое другое.

➡️ Регистрируйтесь сейчас, чтобы не пропустить бесплатный урок: https://clck.ru/3BxuJ3

Встречаемся в преддверии старта курса C# ASP.NET Core разработчик. До 31.07 на курс действует скидка 10%. 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
Какая из строк (помечены комментариями) вызовет ошибку компиляции?

interface IList
{
int Count { get; set; }
}

interface ICounter
{
void Count(int i);
}

interface IListCounter:IList, ICounter { }

class C
{
void Test(IListCounter x) //1
{
x.Count(1); //2
x.Count = 1; //3
}
}
public class Program
{
private static void Main(string[] args)
{

}
}
Какая из строк вызовет ошибку компиляции?
Anonymous Quiz
25%
Ошибки не возникнет
20%
1
28%
2
27%
3
Что такое сборщик мусора и как он работает?

Ответ:

Сборка мусора – это низкоприоритетный процесс, который служит в качестве автоматического менеджера памяти, управляющего распределением и освобождением памяти для приложений.

Каждый раз, когда создается новый объект, среда выполнения общего языка выделяет память для этого объекта из управляемой кучи. Пока в управляемой куче есть свободное пространство памяти, среда выполнения продолжает выделять место для новых объектов. Однако память не бесконечна, и как только приложение заполняет пространство, в дело вступает сборщик мусора (Garbage Collector), который освобождает часть памяти.

Когда сборщик мусора выполняет очистку, он проверяет объекты в управляемой куче, которые больше не используются приложением, и выполняет необходимые операции. Сборщик мусора останавливает все запущенные потоки, находит все объекты в куче, к которым не обращается основная программа, и удаляет их. Затем он собирает все объекты, оставшиеся в куче, чтобы освободить место, и корректирует все указатели на эти объекты в стеке и в куче.

Чтобы запустить сборку мусора в коде вручную, выполняем следующую команду:

System.GC.Collect();

#questions
💪 Пройди тест по C++ и проверь свои знания!

Ответишь — пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь 64 записи открытых уроков от преподавателей курса бесплатно!🎁.

➡️ ПРОЙТИ ТЕСТ: https://clck.ru/3CUYke

Получи бонусы и успей присоединится к августовской группе!

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос на засыпку. Чем отличаются управляемый и неуправляемый код?

Ответ опубликуем завтра.

Пишите в комментариях ваш вариант!

#questions
Чем отличаются управляемый и неуправляемый код?

Ответ:

Управляемый код
– это код, созданный компилятором .NET. Он не зависит от архитектуры целевой машины, поскольку выполняется CLR (Common Language Runtime), а не самой операционной системой. CLR и управляемый код предлагают разработчикам несколько преимуществ, таких как сборка мусора, проверка типов и обработка исключений.

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

В .NET компилятор Visual Basic и C# создает управляемый код. Чтобы получить неуправляемый код, приложение должно быть написано на C или C++.

#questions
Пора разобраться, как работает lock-free программирование в C++ и как оно влияет на производительность многопоточных приложений. Узнайте, как избежать блокировок и сделать ваше приложение быстрым и отзывчивым!

⚡️ Присоединяйтесь к открытому вебинару 19 августа в 20:00 мск! Вы узнаете о преимуществах и потенциальных проблемах этого подхода по сравнению с традиционными методами синхронизации + ответим на ВСЕ вопросы!

➡️ Зарегистрируйтесь сейчас, чтобы не пропустить бесплатный урок: https://clck.ru/3CQ5Bi

Кстати, вот еще промокод на 10% скидку курса C++ Developer. Professional: otus10

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Задачка: Следующее число больше a и b и делится на b

Даны два числа a и b. Создайте функцию, которая возвращает следующее число, большее a и b и кратное b.

Примеры:
DivisibleByB(17, 8) ➞ 24
DivisibleByB(98, 3) ➞ 99
DivisibleByB(14, 11) ➞ 22

Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.

#задача
public class Program 
{
public static int DivisibleByB(int a, int b) => a + (b - (a % b));
}


#задача #ответ
Вопрос на засыпку. В чем разница между интерфейсом и абстрактным классом в .NET?

Ответ опубликуем вечером.

Пишите в комментариях ваш вариант!

#questions
В чем разница между интерфейсом и абстрактным классом в .NET?

Ответ:

Интерфейс просто объявляет поведение, которым должны обладать реализующие классы. Он объявляет только свойства, методы и события без модификаторов доступа. Все объявленные члены должны быть реализованы.

Абстрактный класс предоставляет частичную реализацию функциональности и некоторые абстрактные/виртуальные члены, которые должны быть реализованы сущностями, которые наследуют класс. Он также объявляет поля.

Интерфейс и абстрактный класс не могут быть инстанцированы.

#questions
Задачка: Рекурсия для повторения строки n количество раз

Напишите рекурсивную функцию, которая принимает два параметра и повторяет строку n раз. Первый параметр txt - это повторяемая строка, а второй параметр - количество повторений строки.

Примеры:
Repetition("ab", 3) ➞ "ababab"
Repetition("kiwi", 1) ➞ "kiwi"
Repetition("cherry", 2) ➞ "cherrycherry"

Пишите ваши варианты в комментариях. Ответ будет в канале завтра.

#задача
public class Program
{
public static string Repetition(string txt, int n)
{
return n == 0 ? "" : txt + Repetition(txt, n - 1);
}
}

#задача #ответ
Вебинар «Обработка исключений в C#»: Спотыкайтесь, но оставайтесь на ногах!

Приходите, чтобы:
- Разобраться с основами класса System.Exception и его производными
- Научиться применять ключевые конструкции для перехвата исключений
- Открыть для себя лучшие практики обработки ошибок, которые используют профи

Что вас ждёт:
- Узнаете, какие типы исключений существуют в C# и научитесь создавать свои
- Поймёте, когда и почему возникают ошибки, и как их избежать
- И самое важное – узнаете, каких ошибок стоит бояться, а какие можно спокойно игнорировать!

Регистрируйтесь сейчас: https://otus.pw/JlVl/

2 главных преимущества курса C# Developer:
Охватывает все ключевые аспекты программирования на C#. Вы научитесь разрабатывать сложные клиент-серверные приложения, что позволит претендовать на позиции уровня Middle.

Вы создадите полноценное приложение с нуля, используя Docker, CI/CD, React или Razor, и современные API технологии (GraphQL, gRPC, SignalR). Это не просто обучение — вы выходите с реальным проектом в портфолио!

Познакомьтесь с преподавателем на уроке: https://otus.pw/JlVl/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Из примера выше, что будет выведено на экран?
Anonymous Quiz
26%
Ford, Volvo, BMW
11%
Toyota, Volvo, BMW
63%
Ford, Toyota, BMW
Что поможет обеспечить стабильную работу высоконагруженной системы?
Эффективный мониторинг.


О том, как лучше отслеживать и поддерживать стабильность систем под высокой нагрузкой, вы узнаете на открытом уроке «Мониторинг в высоконагруженных проектах»

👨‍💻🛠👨🏻‍💻 Будет интересно: девопсам, сисадминам, бэкенд-разработчикам, тимлидам.

Вы научитесь:
Настраивать мониторинг для высоконагруженных проектов
Настраивать мониторинг для выявления и предотвращения проблем
Использовать данные мониторинга для повышения стабильности и производительности системы
Усиливать отказоустойчивость архитектуры

А ещё получите ценные советы для оптимизации мониторинга в реальных проектах.

Урок проведёт Олег Мифле, бэкенд-разработчик VK с 15-летним опытом в IT

🆓 Участие бесплатное. Урок в рамках старта курса «Highload Architect»

🔴 Записаться на открытый урок

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
2025/07/07 04:11:07
Back to Top
HTML Embed Code: