Кратко перечислите ключевые слова C#, используемые для обработки ошибок.
Try: используется для сигнализации блока кода, который обрабатывает ошибки, за которым следует по крайней мере один catch;
Catch: используется для обработки исключений, вызванных кодом в блоке try;
Finally: сигнализирует о блоке кода, который почти всегда выполняется после выполнения всего остального кода, независимо от того, обработана ли ошибка;
Throw: используется для выдачи исключения, если возникает проблема, и обычно требует оператора if для проверки наличия проблемы.
Try: используется для сигнализации блока кода, который обрабатывает ошибки, за которым следует по крайней мере один catch;
Catch: используется для обработки исключений, вызванных кодом в блоке try;
Finally: сигнализирует о блоке кода, который почти всегда выполняется после выполнения всего остального кода, независимо от того, обработана ли ошибка;
Throw: используется для выдачи исключения, если возникает проблема, и обычно требует оператора if для проверки наличия проблемы.
August 4, 2024
Forwarded from Библиотека C/C++ разработчика | cpp, boost, qt
💻 15 продвинутых лайфхаков для работы в терминале Linux
Рассказываем, как использовать малоизвестные, но мощные инструменты терминала: от редактирования длинных команд в текстовом редакторе до автоматизации сложных процессов с помощью tmux.
👉 Ссылка
Рассказываем, как использовать малоизвестные, но мощные инструменты терминала: от редактирования длинных команд в текстовом редакторе до автоматизации сложных процессов с помощью tmux.
👉 Ссылка
August 5, 2024
В чем разница между операторами as и is в C#?
Оператор «as» используется для приведения объекта к классу. Оператор «is» используется для проверки типа объекта. Затем возвращает логическое значение.
Оператор «as» используется для приведения объекта к классу. Оператор «is» используется для проверки типа объекта. Затем возвращает логическое значение.
August 6, 2024
🏄 6+ главных алгоритмов балансировки нагрузки
Балансировка нагрузки — процесс распределения входящих запросов между доступными серверами. Популярные подходы к балансировке по-разному решают проблему перегрузки системы.
В этой статье мы рассмотрим принципы работы, преимущества, недостатки и оптимальные сценарии использования самых известных алгоритмов.
👉 Читать статью
👉 Зеркало
Балансировка нагрузки — процесс распределения входящих запросов между доступными серверами. Популярные подходы к балансировке по-разному решают проблему перегрузки системы.
В этой статье мы рассмотрим принципы работы, преимущества, недостатки и оптимальные сценарии использования самых известных алгоритмов.
👉 Читать статью
👉 Зеркало
August 7, 2024
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🌐 9 основных паттернов для проектирования распределенных систем
В этой статье мы рассмотрим 9 основных паттернов и области их применения, что поможет вам в проектировании высоконагруженных приложений.
Читать статью
В этой статье мы рассмотрим 9 основных паттернов и области их применения, что поможет вам в проектировании высоконагруженных приложений.
Читать статью
August 8, 2024
Что подразумевается под интерфейсом?
Интерфейс — это класс, который не имеет никакой реализации. Включены только объявления событий, свойств и атрибутов.
Интерфейс — это класс, который не имеет никакой реализации. Включены только объявления событий, свойств и атрибутов.
August 9, 2024
Что такое асинхронные потоки в C#?
Асинхронные потоки в C# — это языковая функция, представленная в C# 8.0, которая позволяет вам потреблять асинхронные последовательности данных асинхронно. Они объединяют возможности async/await и IEnumerable/IAsyncEnumerable для обеспечения эффективной и удобной обработки асинхронных потоков данных.
Асинхронные потоки в C# — это языковая функция, представленная в C# 8.0, которая позволяет вам потреблять асинхронные последовательности данных асинхронно. Они объединяют возможности async/await и IEnumerable/IAsyncEnumerable для обеспечения эффективной и удобной обработки асинхронных потоков данных.
August 10, 2024
Как мы можем отсортировать элементы массива в порядке убывания?
Использовав метод Sort(), за которым следует метод Reverse().
Использовав метод Sort(), за которым следует метод Reverse().
August 12, 2024
Каковы различные способы перегрузки метода в C#?
Перегрузка методов — это распространенный способ реализации полиморфизма. Это возможность переопределять функцию в более чем одной форме. Пользователь может реализовать перегрузку функций, определив две или более функций в классе с одинаковым именем. C# может различать методы с разными сигнатурами методов. То есть методы могут иметь одинаковое имя, но с разным списком параметров (то есть количеством параметров, порядком параметров и типами данных параметров) в пределах одного класса.
Перегруженные методы различаются по количеству и типу параметров, передаваемых в качестве аргументов методам. Вы не можете определить более одного метода с одинаковым именем, порядком и типом аргументов. Компилятор выдаст ошибку. Компилятор не учитывает тип возвращаемого значения при дифференциации перегруженного метода. Но вы не можете объявить два метода с одинаковой сигнатурой и разными типами возвращаемого значения. Это вызовет ошибку во время компиляции. Если оба метода имеют одинаковые типы параметров, но разные типы возвращаемого значения, то это невозможно.
Перегрузка методов — это распространенный способ реализации полиморфизма. Это возможность переопределять функцию в более чем одной форме. Пользователь может реализовать перегрузку функций, определив две или более функций в классе с одинаковым именем. C# может различать методы с разными сигнатурами методов. То есть методы могут иметь одинаковое имя, но с разным списком параметров (то есть количеством параметров, порядком параметров и типами данных параметров) в пределах одного класса.
Перегруженные методы различаются по количеству и типу параметров, передаваемых в качестве аргументов методам. Вы не можете определить более одного метода с одинаковым именем, порядком и типом аргументов. Компилятор выдаст ошибку. Компилятор не учитывает тип возвращаемого значения при дифференциации перегруженного метода. Но вы не можете объявить два метода с одинаковой сигнатурой и разными типами возвращаемого значения. Это вызовет ошибку во время компиляции. Если оба метода имеют одинаковые типы параметров, но разные типы возвращаемого значения, то это невозможно.
August 13, 2024
Что такое обработка исключений в C#? Как она работает?
Как ответить: Опишите обработку исключений как механизм для обработки и восстановления после ошибок времени выполнения. Объясните блоки try, catch и finally и порядок их выполнения при появлении исключения.
Пример ответа: «Обработка исключений в C# позволяет обрабатывать ошибки и восстанавливаться после них. Мы используем блоки try-catch для инкапсуляции кода, который может выбросить исключение. Если исключение возникает в блоке try, выполняются блок(и) catch, подходящие типу исключения, что позволяет правильно его обработать. Код в блоке finally выполняется вне зависимости от того, возникло исключение или нет».
На что обращают внимание: на кандидатов, которые могут объяснить назначение и порядок выполнения обработки исключений в C#, рассказать про роль блоков try-catch-finally и продемонстрировать знание типов исключений и стратегий их обработки.
Как ответить: Опишите обработку исключений как механизм для обработки и восстановления после ошибок времени выполнения. Объясните блоки try, catch и finally и порядок их выполнения при появлении исключения.
Пример ответа: «Обработка исключений в C# позволяет обрабатывать ошибки и восстанавливаться после них. Мы используем блоки try-catch для инкапсуляции кода, который может выбросить исключение. Если исключение возникает в блоке try, выполняются блок(и) catch, подходящие типу исключения, что позволяет правильно его обработать. Код в блоке finally выполняется вне зависимости от того, возникло исключение или нет».
На что обращают внимание: на кандидатов, которые могут объяснить назначение и порядок выполнения обработки исключений в C#, рассказать про роль блоков try-catch-finally и продемонстрировать знание типов исключений и стратегий их обработки.
August 14, 2024
🗳️ Visitor, Observer, Decorator в Unity
Эти паттерны проектирования способные сильно упростить управление кодом и взаимодействие между объектами, тем самым уменьшить кол-во багов.
Разработчик рассказывает про три самых используемых паттерна, показывает, в каких случаях их можно применять, и делает обзор на реализацию кода.
Смотреть видео
Эти паттерны проектирования способные сильно упростить управление кодом и взаимодействие между объектами, тем самым уменьшить кол-во багов.
Разработчик рассказывает про три самых используемых паттерна, показывает, в каких случаях их можно применять, и делает обзор на реализацию кода.
Смотреть видео
August 15, 2024
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
August 16, 2024
В чем разница между Eager loading и Lazy Loading в EF?
Eager loading позволяет заранее определить, какие связанные данные необходимо загрузить во время выполнения запроса. Entity Framework преобразует метод Include() в JOIN, что позволяет выполнить всего один запрос к базе данных.
С другой стороны, Lazy loading подразумевает автоматическую загрузку связанных данных при обращении к навигационному свойству, но это может привести к значительным задержкам в определенных ситуациях. Кроме того, Lazy loading может вызвать проблему n+1, когда требуется выполнить множество дополнительных запросов.
Eager loading позволяет заранее определить, какие связанные данные необходимо загрузить во время выполнения запроса. Entity Framework преобразует метод Include() в JOIN, что позволяет выполнить всего один запрос к базе данных.
С другой стороны, Lazy loading подразумевает автоматическую загрузку связанных данных при обращении к навигационному свойству, но это может привести к значительным задержкам в определенных ситуациях. Кроме того, Lazy loading может вызвать проблему n+1, когда требуется выполнить множество дополнительных запросов.
August 16, 2024
👩💻 Новый формат файла решения Visual Studio (.slnx)
.slnx представляет собой простой формат XML, призванный заменить старый кошмар файлов .sln. Он доступен в VS 2022 версии 17.10, но в качестве предварительной версии. Ник Чапсас рассказывает, в чём его преимущества.
📌 Активируем: Tools -> Options -> Preview Features -> Use Solution File Pesistence Model -> Save As .slnx
.slnx представляет собой простой формат XML, призванный заменить старый кошмар файлов .sln. Он доступен в VS 2022 версии 17.10, но в качестве предварительной версии. Ник Чапсас рассказывает, в чём его преимущества.
📌 Активируем: Tools -> Options -> Preview Features -> Use Solution File Pesistence Model -> Save As .slnx
August 17, 2024
August 18, 2024
В чем разница между dispose и finalize в C#?
Основное различие между Dispose() и Finalize() заключается в том, что Dispose() должен быть явно вызван пользователем, а метод Finalize() вызывается сборщиком мусора при уничтожении объекта.
Основное различие между Dispose() и Finalize() заключается в том, что Dispose() должен быть явно вызван пользователем, а метод Finalize() вызывается сборщиком мусора при уничтожении объекта.
August 19, 2024
🐘🧠 Оптимизация использования памяти в PostgreSQL: секреты профессионалов
Сложные (и многочисленные) операции в базе данных требуют солидного объема оперативной памяти — например, для создания набора результатов PostgreSQL обычно приходится:
🔹 Выполнить поиск по индексу.
🔹 Извлечь связанные строки из одной или нескольких таблиц.
🔹 Объединить, отфильтровать, агрегировать и отсортировать кортежи в пригодный для использования результат.
Каждый из этих шагов требует памяти, и PostgreSQL может обрабатывать тысячи таких запросов одновременно. Так что рано или поздно перед разработчиками любого серьезного проекта встает необходимость решения нескольких сложных вопросов:
🔹 Как грамотно оптимизировать использование доступной памяти?
🔹 В каком соотношении распределить ОЗУ между несколькими типами памяти, которые необходимы PostgreSQL для эффективной работы?
🔹 Как предотвратить защитное завершение операционной системой процесса PostgreSQL, который использует слишком много памяти?
Для ответов на все эти вопросы нужно определить, сколько именно памяти использует PostgreSQL для основных процессов — а это сама по себе нетривиальная задача. Советы по настройке памяти так многочисленны и разнообразны, что в них сложно сориентироваться.
Поэтому в этой статье мы сведем всю мудрость экспертов к конкретным шагам, которые помогут максимально эффективно распорядиться доступной памятью.
🔗 Читать статью
🔗 Зеркало
Сложные (и многочисленные) операции в базе данных требуют солидного объема оперативной памяти — например, для создания набора результатов PostgreSQL обычно приходится:
🔹 Выполнить поиск по индексу.
🔹 Извлечь связанные строки из одной или нескольких таблиц.
🔹 Объединить, отфильтровать, агрегировать и отсортировать кортежи в пригодный для использования результат.
Каждый из этих шагов требует памяти, и PostgreSQL может обрабатывать тысячи таких запросов одновременно. Так что рано или поздно перед разработчиками любого серьезного проекта встает необходимость решения нескольких сложных вопросов:
🔹 Как грамотно оптимизировать использование доступной памяти?
🔹 В каком соотношении распределить ОЗУ между несколькими типами памяти, которые необходимы PostgreSQL для эффективной работы?
🔹 Как предотвратить защитное завершение операционной системой процесса PostgreSQL, который использует слишком много памяти?
Для ответов на все эти вопросы нужно определить, сколько именно памяти использует PostgreSQL для основных процессов — а это сама по себе нетривиальная задача. Советы по настройке памяти так многочисленны и разнообразны, что в них сложно сориентироваться.
Поэтому в этой статье мы сведем всю мудрость экспертов к конкретным шагам, которые помогут максимально эффективно распорядиться доступной памятью.
🔗 Читать статью
🔗 Зеркало
August 20, 2024
Приглашенный спикер: Павел Запольский – Senior Quantitative Researcher at Exness и Co-founder GrowLytics. Запустивший более 10 проектов по машинному обучению и анализу данных для ведущих компаний.
Please open Telegram to view this post
VIEW IN TELEGRAM
August 21, 2024
Можно ли разрешить наследование класса, но запретить переопределение метода?
Можно для второго класса в иерархии наследования, если переопределяем виртуальный метод как sealed override, тогда дальнейшее переопределение по цепочке наследования запрещено.
Можно для второго класса в иерархии наследования, если переопределяем виртуальный метод как sealed override, тогда дальнейшее переопределение по цепочке наследования запрещено.
August 21, 2024