Ответы

Ответы

Владимир

расскажите пожалуйста коротко о вашем опыте с си шарп, что делали какие задачи решали


В последнее время много задач по алгоритмам (графы, деревья и другие структуры данных) на сайтах типа leetcode и codewars.

Последнее из практики по asp.net это веб апи для рассылки писем. Вкратце: приходит http post метод с JSON в котором указаны тема, сообщение и адреса. Происходит рассылка по этим адресам с сохранением результатов рассылки в базе данных. Ну и гет метод для получения результатов из бд по этим рассылкам. 


Сейчас вы трудоустроены, свободны?

Сейчас свободен


Какой формат рассматриваете удаленка/ офис/ гибрид?

Удаленка


По заработной плате какой уровень?

Особо не задумывался, я думаю лучше будет вернуться к этому вопросу чуть позже, если успешно пройду собеседование


. Как вы понимаете, что такое конструкция юзинг в си шарп?

Тут зависит от того какой юзинг имеется ввиду:

1) using для подключения пространства имен, чтоб не приходилось указывать полностью путь к классам/методам

2) оператор using это синтаксический сахар над try finally, где в файнали вызывается диспоус метод


Что такое диспос?

Dispose метод нужен для освобождения неуправляемых ресурсов (тех что находятся вне CLR), в основном это нужно для грабейдж коллектора (сборщика мусора) чтоб пометить объекты которые он может удалить или закончить работу с этим ресурсом (например закрыть соединение, освободить память). Вроде как еще советуется писать финализатор, но я еще ни разу не видел чтоб он был в каком-то реальном проекте (~имя_класса).


Если в конструкции юзинг произошло исключение как она себя ведет?

Прекратится исполнение на строчке где произошло исключение, а затем вызовется диспоус для объекта указанного после юзинг и исключение полетит выше по стеку вызовов пока его не "поймает" кэтч или программа аварийно завершится


Есть ли связь юзинг и сборщика мусора?

Полагаю ответ выше отвечает на этот вопрос.


Что такое индекс в базе данных и для чего он нужен?

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

Таблица может содержать сколько угодно "обычных" индексов, но при этом кластеризованных может быть только один.

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


Что такое джоин в бд и какие вы знаете?

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

Есть два вида джойна: inner и outer.

В первом случае в результирующей выборке будут только записи где получилось сопоставить первую и вторую таблицы.

Во втором же случае надо указать тип соединения перед оператором JOIN (SQLite поддерживает только LEFT, MSSQL поддерживает LEFT, RIGHT, FULL). Тип соединения указывает на то данные из какой таблицы добавить в результирующую таблицу там где не удалось сопоставить. Например при LEFT JOIN данные из левой (первой) таблицы буду гарантировано помещены в результат, при этом для записей где не удалось сопоставить таблицы поля будут заполнены null'ами

Report Page