Техническое собеседование. Лето 2024. Вилка: 200k+. Опыт в резюме: 3.6 года. Проект: Переход с монолитной архитектуры на микросервисы.
Вопросы:
- Какие преимущества Postgres перед MS SQL?
- Чем отличается механизм отката транзакций (ROLLBACK) в Postgres и MS SQL (версионность vs физические операции)?
- Какие методы массовой вставки данных эффективнее AddRange (например,
BulkInsert)?
- Что быстрее: перестроить индекс после удаления данных или создать новый
индекс на пустой таблице?
Все вопросы можно посмотреть на нашей платформе
#собес #коллекции
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3❤1
#Собес #mongoDB
🤔 Как MongoDB обрабатывает транзакции?
💬 Кратко:
MongoDB поддерживает многодокументные транзакции с версии 4.0. Транзакции позволяют выполнять несколько операций в одном или нескольких документах, обеспечивая их консистентность. Для работы с транзакциями нужно начать сессию и использовать методы
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
MongoDB поддерживает многодокументные транзакции с версии 4.0. Транзакции позволяют выполнять несколько операций в одном или нескольких документах, обеспечивая их консистентность. Для работы с транзакциями нужно начать сессию и использовать методы
startSession() , commitTransaction() , и abortTransaction() для управления транзакцией.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
📞 90% .NET-разработчиков управляют версиями NuGet самым сложным способом.
Секрет работы с NuGet-пакетами в больших .NET-решениях это использовать Central Package Management (CPM).
Вместо того чтобы дублировать номера версий в каждом проекте, вы определяете их один раз в файле Directory.Packages.props.
После этого в проектах указывается только имя пакета — без версии.
Что это даёт
I. Единообразие по всей solution.
II. Одно место для обновления версии пакета.
III. Экономию времени при апгрейде .NET-версии.
Хватит тратить часы на поиски несовпадений версий. Управляйте пакетами централизованно и в одном месте.
P.S. Если в каком-то проекте нужна своя версия, всегда можно переопределить центральную.
👉 Новости 👉 База вопросов
Секрет работы с NuGet-пакетами в больших .NET-решениях это использовать Central Package Management (CPM).
Вместо того чтобы дублировать номера версий в каждом проекте, вы определяете их один раз в файле Directory.Packages.props.
После этого в проектах указывается только имя пакета — без версии.
Что это даёт
I. Единообразие по всей solution.
II. Одно место для обновления версии пакета.
III. Экономию времени при апгрейде .NET-версии.
Хватит тратить часы на поиски несовпадений версий. Управляйте пакетами централизованно и в одном месте.
P.S. Если в каком-то проекте нужна своя версия, всегда можно переопределить центральную.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#Собес #git
🤔 Что такое команды git reset -mixed и git merge - abort?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
git reset --mixed : отменяет изменения, которые были добавлены в индекс, но сохраняет изменения в рабочем каталоге.git merge --abort : отменяет слияние, которое в данный момент находится в процессе, и возвращает репозиторий в состояние до начала слияния.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵💫 Обновление поддержки .NET STS
Начиная с .NET 9 (текущий STS), поддержка STS-релизов увеличена с 18 месяцев до 2 лет.
Теперь STS-релизы теряют поддержку в тот же день, что и предыдущий LTS-релиз.
Это значит, что обновление до STS-релиза больше не приведёт к потере поддержки
Долгожданное улучшение для разработчиков, которым важно оставаться на актуальной версии без риска прерывания поддержки.
https://devblogs.microsoft.com/dotnet/dotnet-sts-releases-supported-for-24-months/
👉 Новости 👉 База вопросов
Начиная с .NET 9 (текущий STS), поддержка STS-релизов увеличена с 18 месяцев до 2 лет.
Теперь STS-релизы теряют поддержку в тот же день, что и предыдущий LTS-релиз.
Это значит, что обновление до STS-релиза больше не приведёт к потере поддержки
Долгожданное улучшение для разработчиков, которым важно оставаться на актуальной версии без риска прерывания поддержки.
https://devblogs.microsoft.com/dotnet/dotnet-sts-releases-supported-for-24-months/
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Появилось расширение, которое добавляет эффекты из Elden Ring в вашу почту, LeetCode и GitHub
Теперь пулл реквесты ощущаются как битва с боссом
Забираем с GitHub
👉 Новости 👉 База вопросов
Теперь пулл реквесты ощущаются как битва с боссом
Забираем с GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 Нужна ли сервисная дискавери и зачем
В микросервисной архитектуре часто встает вопрос: как сервисы находят друг друга и надежно общаются
Хардкодить IP и порты — прямой путь к проблемам. Если сервис переезжает или запускается новый экземпляр, весь стек может сломаться
Сервисная дискавери позволяет обращаться к внешним сервисам по логическим именам, а не по физическим адресам и портам
Для этого обычно нужен сервисный реестр — централизованное место, где сервисы регистрируют себя. Клиенты обращаются к реестру, чтобы получить актуальный физический адрес сервиса
Рабочий процесс выглядит так
1⃣ Сервис регистрируется в сервисном реестре
2⃣ Клиент обращается к реестру, чтобы узнать физический адрес сервиса
3⃣ Клиент отправляет запрос на этот физический адрес
В .NET это можно реализовать через Consul. Вот подробный туториал
Consul — популярное решение для распределенных систем
Есть более легковесное решение от Aspire, но там физические адреса задаются через конфигурацию приложения, поэтому оно менее надежное и гибкое
👉 Новости 👉 База вопросов
В микросервисной архитектуре часто встает вопрос: как сервисы находят друг друга и надежно общаются
Хардкодить IP и порты — прямой путь к проблемам. Если сервис переезжает или запускается новый экземпляр, весь стек может сломаться
Сервисная дискавери позволяет обращаться к внешним сервисам по логическим именам, а не по физическим адресам и портам
Для этого обычно нужен сервисный реестр — централизованное место, где сервисы регистрируют себя. Клиенты обращаются к реестру, чтобы получить актуальный физический адрес сервиса
Рабочий процесс выглядит так
В .NET это можно реализовать через Consul. Вот подробный туториал
Consul — популярное решение для распределенных систем
Есть более легковесное решение от Aspire, но там физические адреса задаются через конфигурацию приложения, поэтому оно менее надежное и гибкое
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Собес #git
🤔 Как вы находите коммит, который что-то нарушил после операции слияния?
💬 Кратко:
Для поиска коммита, который нарушил код после слияния, можно использовать команду git bisect . Этот инструмент помогает найти коммит, который вызывает проблему, путем бинарного поиска.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Для поиска коммита, который нарушил код после слияния, можно использовать команду git bisect . Этот инструмент помогает найти коммит, который вызывает проблему, путем бинарного поиска.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😇 После сильного падения трафика StackOverflow наконец-то совершил камбэк
Он запустил собственного ИИ-агента — stackoverflow.ai. Он отвечает только на основе проверенных ответов сообщества, подбирая прямые цитаты из них.
👉 Новости 👉 База вопросов
Он запустил собственного ИИ-агента — stackoverflow.ai. Он отвечает только на основе проверенных ответов сообщества, подбирая прямые цитаты из них.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Visual Studio 2026 показывает результаты условных операторов (if) прямо в коде во время отладки.
Скоро будет доступно
👉 Новости 👉 База вопросов
Скоро будет доступно
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
#полезное
🏠 LLM в .NET проще, чем кажется
Создавать AI-приложения на .NET теперь легко. Примеры применения:
- чат-приложения
- суммаризация текста
- категоризация
- распознавание изображений
- семантический поиск
LLM можно запускать локально или через облачное API. Отличный способ не отставать в практическом использовании AI.
Подробнее: тык
👉 Новости 👉 База вопросов
Создавать AI-приложения на .NET теперь легко. Примеры применения:
- чат-приложения
- суммаризация текста
- категоризация
- распознавание изображений
- семантический поиск
LLM можно запускать локально или через облачное API. Отличный способ не отставать в практическом использовании AI.
Подробнее: тык
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Как работает Dictionary< TKey, TValue ›: как вычисляется bucket и как влияет коллизия на производительность?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Dictionary хранит элементы в массивах bucket 'ов. Для ключа вычисляют хэш-код key .GetHashCode() , берут bucketIndex = hash % buckets.Length, и если в этом бакете уже есть запись, сравнивают ключи на равенство, переходя по связному списку (или дереву в новых версиях). При небольшой нагрузке lookup — О (1), но при многих коллизиях (одинаковых хэших) может деградировать до О(п) в худшем случае.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣2👎1
Forwarded from YeaHub
😎 Реальные собеседования + тренажёр = комплексная подготовка
На нашей платформе мы собираем собеседования вместе с сообществом: Guru, участниками, менторами и партнёрами.
Один из наших партнёров — Аня и её проект «Авось Прорвёмся», экосистема чатов для кандидатов, которые ищут работу и готовятся к собеседованиям.
Прорвёмся вместе — анонимный канал для самостоятельной подготовки:
- 1000+ записей реальных собеседований с разбором задач и вопросов;
- контакты рекрутеров;
- гайды по резюме, трудоустройству и стратегиям поиска работы.
- задачи и вопросы с собеседований
📚 Сначала смотри записи реальных собеседований, а потом изучай эти же вопросы в нашем тренажёре.
Мы цифровизуем все собесы из чатов «Авось Прорвёмся» и добавляем их в текстовом виде в коллекцию. Так можно не только услышать, как это проходит вживую, но и отработать те же самые вопросы уже в интерактивном формате.
📌 Направления, которые доступны в чатах:
iOS, Android, Frontend, Python, Go, Java, C#, QA, Analytics.
👉 Обучайтесь, общайтесь, растите вместе с YeaHub и Авось Прорвемся
На нашей платформе мы собираем собеседования вместе с сообществом: Guru, участниками, менторами и партнёрами.
Один из наших партнёров — Аня и её проект «Авось Прорвёмся», экосистема чатов для кандидатов, которые ищут работу и готовятся к собеседованиям.
Прорвёмся вместе — анонимный канал для самостоятельной подготовки:
- 1000+ записей реальных собеседований с разбором задач и вопросов;
- контакты рекрутеров;
- гайды по резюме, трудоустройству и стратегиям поиска работы.
- задачи и вопросы с собеседований
📚 Сначала смотри записи реальных собеседований, а потом изучай эти же вопросы в нашем тренажёре.
Мы цифровизуем все собесы из чатов «Авось Прорвёмся» и добавляем их в текстовом виде в коллекцию. Так можно не только услышать, как это проходит вживую, но и отработать те же самые вопросы уже в интерактивном формате.
📌 Направления, которые доступны в чатах:
iOS, Android, Frontend, Python, Go, Java, C#, QA, Analytics.
Подключение — только по инвайту от действующего участника, или YeaHub.
👉 Обучайтесь, общайтесь, растите вместе с YeaHub и Авось Прорвемся
❤1👍1🔥1
#полезное
👋 Микросервисная платформа для страхования
Yosef — это открытая микросервисная платформа для финансовой страховой отрасли, разработанная на .NET, Python, TypeScript и Golang. Она обеспечивает масштабируемость, гибкость и высокую наблюдаемость для современных страховых приложений.
Основные моменты:
🟠 Микросервисная архитектура для легкости масштабирования
🟠 Централизованное управление идентификацией и доступом
🟠 Полный цикл страхования от оценки до создания полиса
🟠 Высокая наблюдаемость с использованием Grafana и Prometheus
🟠 Интеграция с современными инструментами безопасности
GitHub
👉 Новости 👉 База вопросов
Yosef — это открытая микросервисная платформа для финансовой страховой отрасли, разработанная на .NET, Python, TypeScript и Golang. Она обеспечивает масштабируемость, гибкость и высокую наблюдаемость для современных страховых приложений.
Основные моменты:
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Чем отличаются интерфейсы IEnumerable ‹ T › и IQueryable ‹ Т › и для чего нужен QueryProvider?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
IEnumerable<T> выпоЛняет LINQ-запросы в памяти, а IQueryable‹T› строит выражение ( Expression Tree ), которое провайдер (QueryProvider ) переводит в запрос к внешнему источнику (БД, API). QueryProvider отвечает за парсинг выражения, генерацию SQL (или другого формата) и получение данных, обеспечивая deferred execution и оптимизацию выполнения на стороне источника.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
🤓 Исключения не для управления потоком
Исключения применимы только для непредвиденных ситуаций. Когда ими заменяют обычные условия, код становится менее читаемым, сложнее в отладке и работает медленнее.
Решение — использовать Result Pattern. Возврат объекта с полями IsSuccess или IsError, Value и Error делает API предсказуемым, код чище, тесты проще и повышает производительность.
Уже есть готовые NuGet-пакеты вроде FluentResults, CSharpFunctionalExtensions, Ardalis Result и error-or, но реализовать такой паттерн можно и самостоятельно.
Здесь лучший гайд по тому, как использовать Result Pattern в реальных приложениях
👉 Новости 👉 База вопросов
Исключения применимы только для непредвиденных ситуаций. Когда ими заменяют обычные условия, код становится менее читаемым, сложнее в отладке и работает медленнее.
Решение — использовать Result Pattern. Возврат объекта с полями IsSuccess или IsError, Value и Error делает API предсказуемым, код чище, тесты проще и повышает производительность.
Уже есть готовые NuGet-пакеты вроде FluentResults, CSharpFunctionalExtensions, Ardalis Result и error-or, но реализовать такой паттерн можно и самостоятельно.
Здесь лучший гайд по тому, как использовать Result Pattern в реальных приложениях
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😇 Новая C#-библиотека RCParsing, которая предлагает гибридный подход к обработке сложных синтаксисов с отступами.
Разработчики отмечают, что традиционные инструменты часто не справляются с такими задачами, а использование барьерных токенов значительно улучшает качество парсинга. В качестве примера приводится разбор YAML.
Подробнее в статье
👉 Новости 👉 База вопросов
Разработчики отмечают, что традиционные инструменты часто не справляются с такими задачами, а использование барьерных токенов значительно улучшает качество парсинга. В качестве примера приводится разбор YAML.
Подробнее в статье
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Топ-3 встроенных обобщённых делегата в C#: Func, Action и Predicate
Делегаты — это указатели на функции. Они помогают в коммуникации и колбэках
В .NET есть три встроенных обобщённых делегата:
1⃣
2⃣
3⃣
Эти обобщённые делегаты активно используются во встроенных классах .NET,
и мы можем применять их, чтобы писать делегаты короче.
Хотите увидеть их на реальном примере?
🟠 Создаём класс
🟠 Формируем список объектов типа
🟠 Добавляем данные
Некоторые методы LINQ используют делегаты:
🟡 Метод Select принимает Func
🟡 Метод ForEach принимает Action
🟡 Метод FindAll принимает Predicate
👉 Новости 👉 База вопросов
Делегаты — это указатели на функции. Они помогают в коммуникации и колбэках
В .NET есть три встроенных обобщённых делегата:
Func: принимает обобщённый вход и возвращает обобщённый выходAction: принимает обобщённый вход и ничего не возвращаетPredicate: принимает обобщённый вход и всегда возвращает BooleanЭти обобщённые делегаты активно используются во встроенных классах .NET,
и мы можем применять их, чтобы писать делегаты короче.
Хотите увидеть их на реальном примере?
Student с некоторыми свойствамиStudentНекоторые методы LINQ используют делегаты:
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #git
🤔 Как восстановить удалённую ветку?
💬 Кратко:
Если ветка была удалена локально, её можно восстановить, используя команду
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Если ветка была удалена локально, её можно восстановить, используя команду
git reflog . Если ветка была удалена удалённо, можно восстановить еёс помощью git push origin ‹ branch_name›.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😐 Запуск программ с защитой PPL
CreateProcessAsPPL — инструмент для запуска приложений с включенной защитой PPL. Позволяет выбирать уровень защиты для повышения безопасности выполнения программ.
Основные моменты:
🔵 Поддержка нескольких уровней защиты PPL.
🔵 Удобный интерфейс командной строки.
🔵 Полезен для разработчиков и исследователей безопасности.
GitHub
👉 Новости 👉 База вопросов
CreateProcessAsPPL — инструмент для запуска приложений с включенной защитой PPL. Позволяет выбирать уровень защиты для повышения безопасности выполнения программ.
Основные моменты:
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM