fa
Feedback
C# | Вопросы собесов

C# | Вопросы собесов

رفتن به کانال در Telegram
5 049
مشترکین
-824 ساعت
-137 روز
-2330 روز
آرشیو پست ها
Робот мойщик окон Hobot-R3 Ultrasonic. Гарантия 3 года. ✨ Встречайте лето - чистыми окнами с Hobot-R3: - Два ультрозвуковых распылителя чистящей жидкости. - Инверторный двигатель Nidec (долговечный, тихий запуск и мощный). - На старте в режиме автоматической чистки, робот смачивает салфетку, чтобы увеличить силу трения и надежность. - Качественные салфетки из микрофибры, удерживают грязь и пыль до момента стирки. Не царапают поверхность. - Интеллектуальная траектория движения - без пропуска грязных участков. - Управление со смартфона. - Голосовые уведомления с возможностью записи собственных или установка готовых с телефона/интернета. - Прошивка меняется по воздуху ОТА обновление- с сохранением настроек. - 3 автоматических режима уборки. Hobot-R3 экономит силы и время! Купить #реклама hobot.ru О рекламодателе

🤔 Можем ли построить цепочку наследования через абстрактные классы? Да, в .NET можно построить цепочку наследования, включающую один или несколько абстрактных классов. Абстрактные классы служат как основа, задающая общую структуру, а потомки могут реализовывать или расширять логику. Так можно выстраивать иерархии от более абстрактных понятий к более конкретным. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое сборщик мусора? Сборщик мусора (Garbage Collector, GC) — это форма автоматического управления памятью. Он отслеживает каждый объект, выделенный в куче, и определяет, какие объекты более не доступны для приложения, а затем освобождает память, занимаемую этими объектами. Это ключевой компонент во многих современных языках программирования и средах выполнения, облегчая задачу управления памятью. 🚩Основные этапы работы 🟠Маркировка (Marking) Сборщик мусора периодически проходит через все объекты в куче, начиная с "корней" (объектов, непосредственно доступных в программе, например, через переменные в стеке вызовов и глобальные переменные). Он отмечает все объекты, до которых можно добраться напрямую или косвенно. 🟠Очистка (Sweeping) После маркировки доступных объектов, сборщик мусора удаляет все непомеченные объекты, освобождая ресурсы, которые они занимали. 🟠Компактификация (Compacting) Некоторые сборщики мусора перемещают оставшиеся объекты, чтобы уменьшить фрагментацию памяти и улучшить производительность работы с памятью. 🚩Ограничения 🟠Производительность Процесс сборки мусора может быть ресурсоёмким и может привести к заметным паузам в выполнении программы, особенно если куча большая. 🟠Непредсказуемость Точное время сборки мусора может быть непредсказуемым, что может создавать проблемы в приложениях с реальным временем. Ставь 👍 и забирай 📚 Базу знаний

🤔 Как работает ThreadPool? - Имеется ограниченное количество потоков, заранее подготовленных. - Когда приходит задача — она ставится в очередь. - Свободный поток из пула берёт задачу и исполняет её. - По завершению поток возвращается обратно в пул, а не уничтожается. Это позволяет эффективно обрабатывать множество мелких задач без перегрузки системы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Инвестиции в оборудование для майнинга! Зарабатывайте на купле-продаже майнингового оборудования вместе с MineStream Business
Инвестиции в оборудование для майнинга! Зарабатывайте на купле-продаже майнингового оборудования вместе с MineStream Business! Ваши выгоды: - Поддержка экспертов 👍 - Высокая ликвидность 📅 - Долгосрочные перспективы 💰 - Возможность быстрого старта ⚡ Узнать больше #реклама mine-stream.ru О рекламодателе

🤔 Можно ли generic методы использовать не в generic классах? Да, можно! Обобщённые (generic) методы могут существовать в обычных (не-generic) классах. 🚩Как это работает? Generic-метод — это метод, у которого тип параметра задаётся при вызове, даже если сам класс не является обобщённым. Пример: Обобщённый метод в обычном классе
public class Utils
{
    public static void Print<T>(T value) // Обобщённый метод
    {
        Console.WriteLine($"Тип: {typeof(T)}, Значение: {value}");
    }
}

class Program
{
    static void Main()
    {
        Utils.Print(100);      // Тип: System.Int32, Значение: 100
        Utils.Print("Hello");  // Тип: System.String, Значение: Hello
        Utils.Print(3.14);     // Тип: System.Double, Значение: 3.14
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Бесплатное льготное обучение: 3 месяца Мы ищем людей, которые хотят работать в IT-сфере из дома 💰 Оплата от 150.000 рублей в
Бесплатное льготное обучение: 3 месяца Мы ищем людей, которые хотят работать в IT-сфере из дома 💰 Оплата от 150.000 рублей в месяц Образование, место жительства, трудовой стаж — не важны! Подходит, как для подработки / декретного отпуска, так и для полной занятости. Если заинтересовались, то для старта нужно: — пройти короткий тест — заполнить анкету На что можно рассчитывать: ✅ удаленная работа ✅ зп от 150.000 рублей (потолка нет) ✅ стабильная подработка, если не хотите уходить с основной работы ⚡ Количество бесплатных мест ограничено. Успейте пройти тест и оставить заявку: Узнать больше #реклама technolium.ru О рекламодателе

🤔 При каких кейсах нужно денормализовывать данные? Денормализация полезна, когда: - Требуется высокая скорость чтения (например, в аналитических системах). - Данные часто используются совместно и удобно держать их "рядом". - Стоимость JOIN'ов становится критичной. - Архитектура позволяет контролировать избыточность на уровне приложения. Примеры кейсов: - Системы отчетности и аналитики (DWH). - Кэширование данных. - Оптимизация под read-heavy нагрузки. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Repost from easyoffer
📅 Осталось 7 дней до конца краудфандинга Мы на финишной прямой! Если ты планировал присоединиться, но ещё не успел, сейчас и
📅 Осталось 7 дней до конца краудфандинга Мы на финишной прямой! Если ты планировал присоединиться, но ещё не успел, сейчас идеальный момент. Вознаграждения за поддержку: 🚀 PRO подписка к easyoffer 2.0 на 1 год по цене месячной подписки. Активировать подписку можно в любой момент, например, когда начнешь искать работу. ➕ Приглашение на закрытое бета-тестирование 👉 Поддержать easyoffer 2.0 Не откладывай на последний момент 📌 Если не получается оплатить через карту РФ — напишите мне @kivaiko, и мы найдём удобный способ

🤔 Что такое медиатор? Это паттерн проектирования поведенческих шаблонов, который позволяет уменьшить связанность между объектами, обеспечивая взаимодействие через центральный объект-посредник. Медиатор упрощает коммуникацию между компонентами системы, делая ее более модульной и легкой для сопровождения. 🚩Примеры использования 1⃣Определение интерфейса медиатора
public interface IMediator
{
    void Notify(object sender, string ev);
}   
2⃣Реализация медиатора
public class DialogMediator : IMediator
{
    private Button _button;
    private TextBox _textBox;

    public DialogMediator(Button button, TextBox textBox)
    {
        _button = button;
        _button.SetMediator(this);
        _textBox = textBox;
        _textBox.SetMediator(this);
    }

    public void Notify(object sender, string ev)
    {
        if (ev == "ButtonClick")
        {
            _textBox.Clear();
        }
        else if (ev == "TextBoxEnter")
        {
            _button.SetEnabled(true);
        }
    }
}   
3⃣Компоненты, взаимодействующие через медиатора
public class Button
{
    private IMediator _mediator;
       
    public void SetMediator(IMediator mediator)
    {
        _mediator = mediator;
    }

    public void Click()
    {
        Console.WriteLine("Button clicked");
        _mediator.Notify(this, "ButtonClick");
    }

    public void SetEnabled(bool enabled)
    {
        Console.WriteLine($"Button is {(enabled ? "enabled" : "disabled")}");
    }
}

public class TextBox
{
    private IMediator _mediator;
       
    public void SetMediator(IMediator mediator)
    {
        _mediator = mediator;
    }

    public void EnterText()
    {
        Console.WriteLine("Text entered");
        _mediator.Notify(this, "TextBoxEnter");
    }

    public void Clear()
    {
        Console.WriteLine("TextBox cleared");
    }
}  
4⃣Использование медиатора в приложении
var button = new Button();
var textBox = new TextBox();
var mediator = new DialogMediator(button, textBox);

textBox.EnterText(); // Ввод текста активирует кнопку
button.Click();      // Нажатие кнопки очищает текстовое поле   
🚩Плюсы и минусыСнижение связанности Компоненты не взаимодействуют напрямую, а используют медиатор. ➕Упрощение поддержки Вся логика взаимодействия сосредоточена в одном месте. ➕Повышение модульности Легко добавлять новые компоненты или изменять существующие. ➖Усложнение медиатора Медиатор может стать сложным, если в него добавляется много логики. ➖Единая точка отказа Если медиатор выходит из строя, это может повлиять на всю систему. Ставь 👍 и забирай 📚 Базу знаний

❓Сталкиваетесь с задачами, когда вам нужно выбрать лучший алгоритм, но не понимаете, как анализировать их сложность? Ваш код
❓Сталкиваетесь с задачами, когда вам нужно выбрать лучший алгоритм, но не понимаете, как анализировать их сложность? Ваш код может быть медленным или неэффективным, и вы не знаете, как это исправить? 📗На открытом вебинаре 21 апреля в 20:00 мск вы освоите важные инструменты для анализа сложности алгоритмов, улучшите свой навык решения алгоритмических задач и на примере простых алгоритмов сортировки и увидите разницу при применении алгоритмов разной степени сложности. ➡️Регистрируйтесь прямо сейчас и получите скидку на большое обучение «C# Developer» по промокоду SHARP_SPEC_4: https://otus.pw/fJjQ/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Поддержка и доработка корпоративных сайтов ✅ Работаем с любыми CMS и фреймворками 👌 Наводим порядок в коде, следим за безопа
Поддержка и доработка корпоративных сайтов ✅ Работаем с любыми CMS и фреймворками 👌 Наводим порядок в коде, следим за безопасностью ⚡ Быстро реагируем на обращения и качественно выполняем задачи ❤️ Гарантия на выполненные работы — 12 мес. Узнать больше #реклама njsoft.dev О рекламодателе

🤔 Как можно не используя middleware выполнить действие перед обработкой запроса и после? 1. Использовать фильтры — например, в ASP.NET Core можно использовать ActionFilter для выполнения действий до и после метода контроллера. 2. Создать делегат обработки — добавить промежуточную логику в Use на уровне Startup. 3. Атрибуты и события — применять атрибуты для выполнения кода до обработки запроса. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое IEnumerable? IEnumerable — это интерфейс в базовой библиотеке классов .NET Framework, который определяет один метод: GetEnumerator(). Этот метод возвращает объект IEnumerator, который позволяет перебирать элементы коллекции (например, массива или списка) один за другим. 🚩Зачем он нужен? Используется для создания универсального метода перебора данных, не зависящего от типа коллекции. Это означает, что любой тип данных, который реализует IEnumerable, можно перебирать с помощью цикла foreach в C#. Это упрощает работу с различными структурами данных, предоставляя единый механизм для итерации элементов. 🚩Как он используется? Когда вы реализуете интерфейс IEnumerable в своём классе, вы обязуете этот класс предоставлять метод GetEnumerator(), который возвращает IEnumerator. IEnumerator, в свою очередь, имеет методы для перехода к следующему элементу (MoveNext) и для получения текущего элемента (Current), а также метод Reset(), который возвращает перечислитель в начальное состояние.
using System;
using System.Collections;

public class DaysOfWeek : IEnumerable
{
    private string[] days = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };

    public IEnumerator GetEnumerator()
    {
        for (int index = 0; index < days.Length; index++)
        {
            // Yield each day of the week.
            yield return days[index];
        }
    }
}

public class Program
{
    public static void Main()
    {
        DaysOfWeek daysOfWeek = new DaysOfWeek();
        foreach (string day in daysOfWeek)
        {
            Console.WriteLine(day);
        }
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Бизнес образование в Moscow Business Academy (MBA) Получите современное бизнес образование от международных экспертов. ✅Более
Бизнес образование в Moscow Business Academy (MBA) Получите современное бизнес образование от международных экспертов. ✅Более 37 направлений обучения. ✅Международные дипломы. ✅Online и очные форматы обучения. ✅Разборы практических бизнес-кейсов. Скидка на все программы online до 35%! Узнать больше #реклама 16+ moscow.mba О рекламодателе

🤔 Каким образом индекс оптимизирует запрос? Индексы позволяют базе данных быстрее находить и фильтровать данные за счет создания упорядоченной структуры. Вместо полного сканирования таблицы база данных может использовать индекс, чтобы сразу перейти к нужным записям, что значительно ускоряет выполнение запроса. Однако индексы занимают дополнительное место и могут замедлять операции вставки и обновления данных, так как индексы нужно поддерживать в актуальном состоянии. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Бесплатное льготное обучение: 3 месяца Ищем людей, которые хотят обучиться и работать в IT-сфере из дома В конце обучения вы
Бесплатное льготное обучение: 3 месяца Ищем людей, которые хотят обучиться и работать в IT-сфере из дома В конце обучения вы пройдете стажировку и устроитесь на работу с зп от 150.000 рублей Образование, место жительства, трудовой стаж — не важны! Для старта нужно: — пройти короткий тестзаполнить анкету На что можно рассчитывать, после обучения: ✅ удаленная работа ✅ зп от 150.000 рублей (потолка нет) ✅ стабильная подработка, если не хотите уходить с основной работы ⚡ Осталось всего 47 бесплатных мест. Успейте пройти тест и оставить заявку: Узнать больше #реклама 16+ technolium.ru О рекламодателе

📺 Уникальная база IT собеседований 456+ реальных собеседований на программиста, тестировщика, аналитика и прочие IT профы. Е
📺 Уникальная база IT собеседований 456+ реальных собеседований на программиста, тестировщика, аналитика и прочие IT профы. Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д. 🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!

🤔 Какие есть подходы в рамках эфкора? Entity Framework Core (EF Core) — это ORM (Object-Relational Mapping), которая упрощает работу с базой данных в C#. Основные подходы работы с EF Core: Code First (Код → База) Database First (База → Код) Model First (Модель → База → Код) 🚩Code First (Сначала код) Сначала создаётся код (C# классы), а база данных создаётся автоматически. Если у нас нет готовой базы данных Когда разрабатываем с нуля Легче вносить изменения через миграции 1⃣Создаём модель
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}
2⃣Создаём контекст (DbContext)
public class AppDbContext : DbContext
{
    public DbSet<User> Users { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder options)
        => options.UseSqlServer("Server=.;Database=TestDb;Trusted_Connection=True;");
}
3⃣Применяем миграции
dotnet ef migrations add InitialCreate
dotnet ef database update
🚩Database First (Сначала база) База данных уже есть → EF Core генерирует код (модели, DbContext). Когда уже существует база Когда работаете с наследуемой системой Как сгенерировать модели из базы?
dotnet ef dbcontext scaffold "Server=.;Database=TestDb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models
🚩Model First (Сначала модель) Создаём модель (визуально), потом генерируем базу и код. Не поддерживается в EF Core! (была в EF 6) В старых проектах (EF 6) с визуальным проектированием Когда нужна автогенерация схемы БД Используйте Code First с миграциями вместо Model First. Ставь 👍 и забирай 📚 Базу знаний

Переход на микросервисы с Kubernetes: что нужно учесть? 24 апреля на бесплатном вебинаре от СберТеха «К микросервисам через п
Переход на микросервисы с Kubernetes: что нужно учесть? 24 апреля на бесплатном вебинаре от СберТеха «К микросервисам через построение управляемой контейнерной среды» поговорим о требованиях к контейнеризации и их реализации в продуктах Platform V DropApp и Platform V Synapse Service Mesh. Что обсудим: ⚡ Почему важно выбрать правильный дистрибутив Kubernetes ⚡ Что входит в Platform V DropApp и каковы его основные преимущества ⚡ Какие инструменты помогают в защите контейнерных сред ⚡ Какие дополнительные ценности дает service mesh А также поделимся опытом эксплуатации продуктов в высоконагруженных средах и расскажем, как использование решений от одного поставщика позволяет упростить жизнь продуктовых команд. Регистрируйтесь и приходите 24 апреля! Зарегистрироваться #реклама 16+ platformv.sbertech.ru О рекламодателе