Подготовка к собеседованию на C# Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
Всем привет С вами илип и сегодня мы запишем МОК ревю на позицию джуни разработчика с нами сегодня Сухроб можешь представиться Если захочешь Привет Да всем привет Можешь представиться немножко о себе рассказать Чем занимаешься Зачем тебе это я я системный администратор работаю на всяких разных интересных и не очень проектах занимаюсь организацией спортивных мероприятий больших и не очень Вот собственно не знаю что ещё можно про себя рассказать для чего тебе мою что хочешь узнать Я хочу Понять насколько я плох и что мне
00:00:11 - 00:01:50
[музыка] какие какие темы Мне нужно подтягивать помимо там условной просто тупо практики Ну О'кей давай тогда не будем тянуть сразу начнём быстрее начнём быстрее закончим Да давай начнём с ооп что это такое в принципе в двух словах какие там принципы оп [музыка] знаешь полиморфизм инкапсуляция и наследование Давай тогда про полиморфизм поговорим что это такое вообще [музыка] способность кода работать с разными входными данными Так ну это прям совсем совсем [музыка] грубо Давай чуть поконкретнее Что такое работать с
00:01:01 - 00:02:46
разными входными данными [музыка] а да можешь пример привести полиморфизма являются ли дженерики примером полиморфизма да А какой это полиморфизм полиморфизм типов Какие ещё значит полиморфизмы блин Если меня память не изменяет их три типа полиморфизмов я не помню их название Ну хорошо помимо дженерика дженериков что ещё к сожалению не затрудняюсь ответить не знаю Ну ладно Ну вот есть есть полиморфизм подтипов но это не жери и есть морфизм это дженерики угу вот Окей давай дальше пойдём по поводу солида что-нибудь расскажешь
00:01:57 - 00:03:57
могу перечислить принципы Давай давай начнём с этого с того какие есть принципы Sol а принцип единственной ответственности принцип открытости закрытости Принцип подстановки Барбары лисков или как там её фамилия правильно я не помню Господи принцип разделения интерфейсов принцип инверсии зависимостей Как ты думаешь какой из них я спрошу у тебя Я подозреваю что принцип подстановки барберы лисков А давай я не буду его спрашивать и спрошу про depend inversion про инверсию зависимости да [музыка] а блин
00:03:09 - 00:04:53
О'кей Ну вот что он из себя представляет у нас а зависимости строятся от а грубо говоря сверху вниз Нет что-то я по Ну если очень абстрактно то да Ну то есть у нас ладно Нет я Нет ну если так поразмышлять то да но не очень конкретно есть Что добавить сейчас Дай мне дай мне буквально 30 секунд подумать давай ты ты решил уйти да да да сейчас просто отключусь Угу Ну давай попробуем на примере если сложно сказать так Да я даже на примере не могу тебе привести пример Ну вот знаешь что такое сервис локатор
00:04:01 - 00:06:11
э сервис локатор Да я что-то про это читал Ну помнишь что-нибудь про это нет абсолютно знаешь что такое АК это контейнер который Кроме того что это контейнер я не помню Нет Что такое АК Я не про АК контейнер inv of в принципе что это такое управление Да что это такое [музыка] вообще не не отвечу тебе на это Окей давай давай чуть приземление что такое depc injection внедрение зависимостей я понимаю [музыка] вот что такое внедрение зависимости ты думаешь Или ты не слышал меня я я думаю я думаю а хорошо
00:05:27 - 00:07:29
Ну грубо говоря предоставление какой-то внешней зависи внедрени ты прав [музыка] компонента в наш [музыка] класс что говоришь внедрение компонентов в наш класс Ну грубо говоря [музыка] м пример можешь привести блин я могу тебе это сейчас сеча сеча Слушай тут такое дело я слышу как ты мышка Кликаешь Я знаю ты Г что ли или что Нет я в райдере открываю проект Нет Нет Нет мне же текстом как бы или ты хочешь экран пошарить я могу просто экран пошарить и Ну слушай ты мне хочешь показать как реализован Di в анете или что Ну грубо
00:06:52 - 00:08:55
говоря да Ну давай мы сначала поговорим а потом как бы это смотри у нас есть Di да да для чего он нужен чтобы у нас компоненты знали [музыка] а о каких-то других компонентах Ну у них есть у нас есть как класс он зависит от чего мы с помощью Дия передаём экземпляр вот этой вот зависимости в наш класс как-то Так а для чего это нужно почему мы не можем внутри класса создать экземпляр Зачем нам нужен Di Мы же Можем написать равно New и создать экземпляр класса Блин я не знаю почему Блин ну О'кей давай давай дальше
00:08:04 - 00:09:47
Вот а PN Да у нас вот есть там библиотека dependency injection Угу Вот что она из себя представляет как ты её используешь Как тебе приходится использовать dep injection на [музыка] практике я я не знаю как ответить на этот вопрос вот понимаешь вроде как регулярно этим с этим сталкиваешься но я не задумывался о том как почему Ну какой код ты пишешь хотя бы скажи что какие ты буквы пишешь чтобы использовать там имя То есть ты объявляет нли поле и через конструк через конструктор его внедрят Да и оно у
00:09:11 - 00:10:53
тебя работает по умолчанию правильно Да а как оно понимает какой экземпляр объекта создавать Ну вот смотри ты написал например Private read Only I User repository User repository э внедрил его В конструкторе класса твоего Да как он понимает какой экземпляр класса нужно создать по для I User repository для интерфейса I User repository предположим Юр репозиторий реали реализует два экземпляра класса какой именно нужно внедрять как он понимает а я не знаю может быть может быть что-то ещё дополнительное нужно писать помимо
00:10:25 - 00:11:57
мгновенного внедрения там может в стартапе что-нибудь тебя написано в програме тебя открыт проект Да открой стартап открыт Что там у тебя написано [музыка] папам Для чего нужны эти меды Service configuration configure Services какой Service configuration config Services да да когу config serves два метода там скорее всего да да Стоп нет конгур Серви всё А ладно да когу два метода конгур и config serves да да чего эти методы нужны в config serves мы мы указываем Какие сервисы должны быть Аа инициализирован
00:11:26 - 00:13:25
[музыка] использованы в каком методе конгур Серви в да а в Ладно давай начнём с configure Services Что такое сервисы должны быть использованы то есть что у тебя этом написано вот для примера первый там строчку Прочитай этого метода твоего А сервис config have appr Service appway первая строчка это наверное какой-то extens Мед да да [музыка] Ну а что этот этен метод делает а говорит как какой тип сервиса мы конфигурируется [музыка] затем п клиент контекст вот смотри вот да у тебя там метод есть например
00:12:43 - 00:14:38
давай Что делает Говорит что у нас в сервисе используется [музыка] аутентификация вот какой Вот это aic да ты вызываешь он что-то должен выполнить что он выполняет Он же не пишет Коль rightline я Так с этого места поподробнее [ __ ] это аутентика [музыка] а долгое молчание Да я не знаю что ответить Ну нет давай Давай по порядку пойдём Сначала ты считал что это акей говорит что он ну как бы он да Но это как бы ответ Так себе идём дальше ты говоришь что он добавляет зависимость какую зависимость он
00:14:12 - 00:16:00
добавляет Что такое вообще эта зависимость если если ты не можешь ответить что за конкретно за зависимость она добавляет А тогда Ответь что вообще можно может быть добавлено Может ты в другом методе в каком-нибудь знаешь что добавляется а Конкретно это анфи не знаешь какие зависимости могут быть добавлены вообще в принципе и что это значит добавить зависимость Блин я не знаю как Ну давай дальше пойдём Мы уже застряли да Хорошо давай поговорим по поводу паттернов гов какие-нибудь приходилось использовать
00:15:58 - 00:17:28
[музыка] а возможно но я паттерны не знаю вообще Ну то есть нет смысла спрашивать да да абсолютно Окей давай про типы данных поговорим окей Какие бывают типы данных ссылочные значимые Назови пример ссылочных и значимых ссылочный тип массив значимый Тип [музыка] и чем они отличаются ссылочные значимы а значимые типы у нас передаются в виде значения то есть копируется просто значения ссылочные типы передаются в ссылки в память на объект Окей хорошо а сравниваются они как сло зависит от реализации
00:16:50 - 00:18:47
мето а ели ты [музыка] буде там по-моему всё равно он под капотом в случае равно равно как обращается то есть думае что равно равно по дефолту перегружен вызовом не уверен Но если мне короче не уверен А Всегда ли перегружен метод equ или оператор равно равно я думаю что нет Ну вот если не перегружен то как сравниваются по ссылке То есть если ссылка на объект одна и та же то они равны если разные то они разные в случае с значимыми типами то по значению естественно Окей Поговорим про рин Давай это значимый или ссылочный тип Это
00:17:52 - 00:19:36
ссылочный тип так как они сравниваются слони сравниваются [музыка] пото несмотря на там перегруженные методы сравнения Хорошо давай начнём с двух равно оператор равно равно как перегружен он вызывает equ это утверждение это утверждение А как как equals перегружен [музыка] а он сравнивает со значения строк а не ссылки Что это значит Ну вот у тебя есть CP он ссылочные типы сравнивает ссылки ты говоришь то что у тебя он сравнивает значение Что такое сравнить значение в данном случае тебя си шар по умолчанию
00:18:48 - 00:20:27
будет сравнивать ссылки Что нужно сделать чтобы он сравнивал значение в случае с со строками чтобы он сравнивал перегрузить Да как перегрузить добавить итерацию по строке но я думаю там как-то более хитро это [музыка] сделано Ну не знаешь Да не не знаю ю просто что Ну сравнивает не ссылки точно ну там на самом деле р Pointer сравнивается вот и всё Ну то есть значение Чар Pointer вообще верхнеуровневый он сначала сравнивает размер строки если размер отличаются то можно смело сказать что они не равны а
00:19:46 - 00:21:27
если размеры в строке одинаковые то дальше он уже Чар Pointer сравнивает типа там операция Ну скорее тип Ну ладно не суть вот Окей хорошо так так так так так Ну давай пойдём дальше вот эти вот штуки что это такое реф реф указывает на то что мы передаём ссылку [музыка] на на объект это можно использовать в случае если нам нужно условно передать структуру которая является значимым типом копию а передать именно вот Руту для изменения полей в ней если мы используем становится ли эта самая структура
00:20:56 - 00:23:03
ссылочной Ну ссылочный типом имеется в Блин мне кажется нет типа ну как бы да но по-другому спрошу перемещается ли она чу Нет почему А как тогда это [музыка] реализовано не знаю Ну окей Тогда давай поговорим про Подожди подожди й подожди я прав то что не перемещается в ключу или нет Ну дальше узнаем боксинг анбоксинг Что такое [музыка] А чёрт Я ведь помнил на самом деле это очень просто и тоже самое почти Это это вот как раз то самое О чём ты сейчас говорил перемещение значимого типа в кучу А как значимый тип в кучу
00:22:12 - 00:24:10
перенести а точнее Да я не конкретный некорректный вопрос задал А у тебя например есть переменная значимого типа да Угу она может храниться как в куче так и в стейке Да Угу и соответственно у тебя переменная хранилась в стеке Да и тебе нужно забо Сить эту переменную Что ты будешь делать [музыка] блин есть варианты Да но мне кажется оно всё не не совсем верно Назови какой-нибудь он на самом деле элементарный Даже если ты это ту есть боксинг ать Как привести к значимому типу Ну вот и всё да это есть боксинг анбоксинг Ну ладно О'кей
00:23:28 - 00:25:12
вот когда мы приводим к обжект он что с ним происходит переменный а переменная перемещается из стека в кучу Ну не совсем мы мы передаём эту переменную по по ссылке ссылку на эту переменную Угу Ну и вот теперь к вопросу Чем отличается боксинг на боксинг ифу а ref Out не не перемещает объект в кучу и из кучи он просто передаёт значение по ссылке Ну вот когда ты говоришь что он просто передаёт значение посылке что это значит Бля ну вот всё всё просто Да Он передаёт значение ссылку на стек Как можно ссылку
00:24:34 - 00:26:36
на стек передать стек понимаешь что такое стек область памяти упорядоченная не подожди Что такое тип стек коллекция стек а блин как эта коллекция хранит в себе данные как стек переводится на русский язык знаешь пка Угу Что это значит вот у тебя есть то что у тебя есть играл в Джан когда-нибудь да У тебя есть вот эти вот штучки такая башенка сверху Да джанке суть такова что ты должен снизу где-то вытащить Да ничего не упало а стек стопка Да ты сверху достаёшь из этого списка ты не можешь ссылку указать первый ушёл грубо говоря
00:25:39 - 00:27:24
Да всё правильно лифо вот Ну как ты О какой ссылке речь Если тебя у тебя как бы То есть я был изначально не прав и всё-таки - это тот же самый боксинг анбоксинг Нет нет нет просто ты сказал что ссылка на стек Я хотел тебе что ты сам пришёл к тому что ссылка на стек Ну понятие стрёмно звучащее потому что у тебя есть стек Что такое стек это стопка каких-то данных ты берёшь типа сверху по одной штучке ты не можешь взять снизу в этом суть стека и благодаря ей вот этой вот своей оден логике он и довольно-таки
00:26:47 - 00:28:21
производительный Вот но как бы у тебя нет такого что ты можешь как в массиве Да по индексу обратиться к какому-то элементу это этой коллекции вот чём тут я Почему начал объяснять чтобы ты понял что типа ну то есть даже не зная ничего можно такой вот вывод сделать зна Как именно это происходит дел - это всё прекрасно Да Аа давай поговорим про а интерфейс и абстрактный класс В чём их отличие вообще а а раньше было очень у абстрактного класса Блин сейчас так как у интерфейсов Появилась возможность создание базовой
00:27:34 - 00:29:05
какой-то реализации для методов уже тяжелее ответить хотя хотя хотя хотя давай давай я тебе найм дам подсказку некую тебя когда бы ты начал использовать когда бы ты использовал класс абстрактный А когда бы интерфейс в каком случае ты бы пришёл к тому что надо использовать абстрактный класс [музыка] М Давай полегче когда бы ты начал использовать интерфейс Т можно ещё легче К сожалению только два варианта Чёрт А ну блин я не знаю как на это ответить Ну вот смотри у тебя У тебя есть задача Да сделать какой-то функционал Да
00:28:22 - 00:30:09
функциональность сделать какой-то функционал Лёша привет вот а сделать реализовать какой-то функционал в Вот ты будешь это специально да Говорить да функционал сделать Да и ты как добросовестный программист хочешь использовать абстракции для твоего функционала вот и как следствие ты собираешься абстрагироваться от конкретного функционала Вот и поэтому тебе нужно выбрать сущность для абстракции что ты будешь выбирать интерфейс или абстрактный класс я тебе могу привести конкретный пример А ты скажешь Давай
00:29:30 - 00:31:01
попробуем так да Давай попробуем так А например у тебя есть метод Давай на кошечка собачках Это моя любимая у тебя есть необходимость описать некоторое общее поведение животных что животные могут там какие-то звуки издавать что они могут перемещаться например ВМ случае я думаю всё-таки да Что Что Рыбка Да давай до говорю что рыбка может Что Рыбка Может там не знаю плавать кошечка Может бегать а птичка может летать да И это всё там грубо говоря какой-нибудь метод гол дату там не знаю вот но в тоже время у
00:30:15 - 00:31:45
тебя у каждой у каждого животного есть какие-то определённые свойства свои Ну типа у кошечки есть Четыре лапки у птички есть два крылышка Вот и нужно какие-то свойства определённые хранить внутри объектов и функциональность хорошо функционал какой-то общий у них есть в таком случае что ты выберешь интерфейс или абстрактный клаес [музыка] Почему Блин хотел сказать то что у интерфейсов нет поле потом что-то я усомнился в этом у интерфейсов есть свойства Да и нам нуж пово если публичные то свойства Ну в данном
00:31:02 - 00:32:45
случае я бы использовал интерфейс Тогда вопрос Когда бы ты использовал Класс вот Ну давай попробуем ответить а я потом скажу Блин я не знаю не могу ответить хороо Тогда я скажу В данном случае бы использ абстрактный ламу у него-то об и так далее хоть и у него есть общие действия интерфейс бы Я использовал в случае когда у нас в большей мере речь идёт не о свойства какого-то объекта а о действиях какого-то объекта То есть если бы я тебе не раскрыл полностью Какие поля содержат класс можно было сказать что птичка умеет только летать И
00:32:01 - 00:33:26
этого достаточно в таком случае можно было использовать инте было бы нужен для того чтобы объединить общие действия разных объектов абстрактный класс скорее нужен для того чтобы объединить общие характеристики объекта в том числе действия Ну то есть у тебя абстрактные классы точнее Наследники абстрактных классов это какие-то Например кошечки соба а те кто реализует интерфейсы у тебя может быть там не знаю Вот пример приведу тебе нужно отправить сообщение ну уведомить клиента О чём-то да О каком-то действии ты можешь там не знаю
00:32:50 - 00:34:30
голубиной почто сообщение отправить да А можешь по электронной почте отправить А можешь фике в приложение отправить объекты совершенно разные Да могут быть может на машине отправить обекты совершенно разные но действия они предпринимают одни и те же они доставляют информацию в случае когда ты используешь абстрактный класс у тебя кошечки собачки - Это животные понимаешь В чём разница Почему здесь используется абстрактный класс а там интерфейс лучше использовать абстрактный класс ближе к конкретно
00:33:44 - 00:35:02
кон он скорее объеди свойства обетов а абстрактный а интерфейс объединяет действия То есть их всех всех объединяет какое-то действие Угу то есть нужно доставить там сообщение это интерфейс нужно как-то объединить свойства и характеристики объекта это абстрактный класс Ну вот очень понятный пример с кошечками собачками То есть у тебя есть абстрактный класс Animal есть кошечка есть собачка и тот же самый пример интерфейсов у тебя есть необходимость отправить информацию ты можешь отправить как я уже
00:34:22 - 00:35:37
сказал там не знаю по Рома по голубиной почте курьером Яндекс доставки или там не знаю бутылочкой в море отправить это максимально разрозненные какие-то объекты грубо говоря да но но их объединяет какое-то действие вот вот в чём разница если если бы меня спрашивали А задавали такой вопрос разниц абстрактных классов интерфейс меня давно не спрашивали Но если бы спросили я бы ответил именно так Потому что сейчас разницы между абстрактным классом и интерфейсом если не прикапывать к синтаксису в принципе
00:35:00 - 00:36:24
нет кроме как семантики 1 2 3 да А вот в этом и то есть что для меня не стало как бы в самом начале заком основным То есть сейчас там разница прямо минимальная и оно я бы сказал нет то есть основная разница всегда была контекст использования Да самое простое к ответу это раньше не было реализации Уч извиняюсь раньше Былово реализации есть да Но суть не в этом была и раньше просто ответить так проще было суть была всегда в том то что абстрактный класс объединяет классы то есть сами объекты а интерфейсы
00:35:47 - 00:37:32
объединяют действие объектов понимаешь в этом всегда была суть да дополнительно ещё можно Ну то есть как правило просто все отвечали типа вот интерфейс Ну некоторые ещ говорили что интерфейс реализуется А класс наследуются да это ВС ерунда на самом деле то есть да это так такая же душная как с функционал функциональность на самом деле нет функцио функциональность А тут скорее такое ошибка не то что орфографическая А как семантическая Нет ну короче это ошибка в слове Ну то есть использование слова А вот когда ты
00:36:40 - 00:38:09
говоришь реализует и наследование если ты говоришь что Интерфейс наследуется Да у меня периодически отваливается твой звук в в телемост то есть периодически ты пропадаешь на 1-д секунды Ну у тебя этого что-то с интернетом было ты немного Квака да это было так мало поэтому я даже внимания не обращал но не суть давай смотри В чём суть в том то что блин я теперь сбился и не на чем я а мы то что интерфейсы реализуются ВС а классы на наследуются дал всё А смотри В чём суть когда ты говоришь что Интерфейс
00:37:25 - 00:39:10
наследуется Это значит что ты должен сказать что в си шарпе есть множественное расследование а его нет понимаешь что из этого ну то есть есть последствия когда ты говоришь функционал функциональности последствий таковых нет Ты ошибся Да но последствий этому нет в данной ситуации когда я говорю тебе что интерфейсы реализуются они наследуются Я говорю тебе что то есть я тебе не даю повода спросить типа Можно ли наследовать несколько интерфейсов Вот потому что если бы ты сказал что они наследуются Я бы спросил
00:38:20 - 00:39:29
а можно ли наследовать наследовать несколько интерфейсов Ну тогда бы тебе либо пришло да да именно так потому что наследовать именно вот наследовать можно только один интерфейс а реализовывать можно неско потому что интерфейсы тоже можно наследовать потому что один интерфейс Может наследовать другой интерфейс понима ног пила интерфейсы а не на следующ их Да в рамках класса они реализуются в рамках интерфейсов они могут наследоваться Точнее они наследуются они реализуются вот ну не суть всё это прекрасно Давай Давай пойдём дальше по
00:38:54 - 00:40:23
каким-нибудь элементарным вопросам пойдём или как Давай по элементарным продолжим по элементарным Да там хоть что-то могу сказать да А хорошо давай про делегаты поговорим что это такое делегаты сообще [музыка] бля [музыка] а давай его очень просто ну переменная деле переменная короче Ты создаёшь делегат Что это значит что в себе может хранить делегат Давай вот так вот спрашивай Лучше а а функцию ээ Давай чуть-чуть по-другому скажем он не может хранить себе функцию он может хранить в себе ссылку
00:39:44 - 00:41:20
на метод Угу Ну хорошо давай по-другому делегат - это ссылочный тебе при значимый а ссылочный а методы у нас где хранятся вообще методы хранятся ли они вообще где-то рядом с переменными Слушай давай не будем Шни по этой теме Давай лучше вернёмся делегат - Это ссылка на метод мы выли да Если тебя если я тебя буду спрашивать про то где хранится код мне придётся дальше начать спрашивать про вообще в принципе хранения данных про стеки кучу и прочее вот поэтому я хотел бы откатиться назад Вот делегат это
00:40:39 - 00:42:00
сылка на метод Да какие бывают делегаты [музыка] хорошо по-другому вопрос задам слышал что-нибудь про А я сам забыл как называется мульти делегат что ли он как называется-то множественный делегат хорошо вот так назову его а нет Хорошо давай Дада по-другому У нас есть делегат такой некий некая базовая сущность есть конкрет реализаци слышал таких ну э экшн НК предикат экшн Да видел такое экшн блин ладно что такое фанк функция чем экшн отличается от фанка хорошо по-другому задам вопрос а не знаю что такое
00:41:23 - 00:43:16
предикат не знаю чем предикат отличается от фанка А как я могу ответить Чем предикат отличается от фанка при условии что я не знаю что такое предикат а что такое [смех] фанк Ну хорошо давай дальше пойдём так так так делегат это всё конечно прекрасно Ладно давай шар тяжко давай про Анет поговорим Я думаю та смысла нет Если с Шарм всё тяжко со там так же примерно да Ну да Так давай тогда отм на сэлем тем более Угу я с сэлем исключительно через этот а чере Господи еф давай про еф поговорим Да да это
00:42:43 - 00:44:43
без копирование документации ефа Ну хорошо Вот как раз таки по документацию ефа и поговорим да у меня банальные вопросы по еф такие банальные что Да я не отвечу ни на один Я могу тебе Зато сказать что такое предикат Ну загуглил молодец что такое предикат Да предикат - это делегат возвращающий Бул не совсем это фанк возвращающий Бул Ну а фанк - это делегат всё правильно то также Ну то есть мой вариант неправильный Т предикат наследует фан фан наследует делегат если я у тебя спрошу что такое ринг ты скажешь что это
00:43:45 - 00:45:19
об Ну да нет Ну вот видишь потому что ну как бы все типы от обк Не ну ну да ну фан - Это тот же са предикат - это тот же самый фанк просто это частный случай фанка просто фан То есть просто предикат всегда возвращает Бу Вот в НМ может быть сколько угодно входных параметров вот ВМ в фанке или в Дика Да без разницы это дите только один кто тебе [музыка] сказал этот Google документация предикат Т просто не вижу с [музыка] большим Так сейчас я найду уже значение Я говорю возможно я просто не туда это
00:44:39 - 00:46:19
не туда смотрю так так так Нет Возможно ты правда же я просто не помню Ну смотри у фанка у фанка точно может быть множество входных параметров Так что ты молчал раз ты знаешь что такое фа хорошо что такое экшн а делегат выполняющий какое-то действие и возвращающий vo Ну это прям грубо Так а что такое Google поисковая система Да можно её закрыть пожалуйста закрыто А почему ты раньше про Action ничего не сказал пото что открыл документацию майкрософта скую и там вот вот эти три статьи подряд идут
00:45:39 - 00:47:19
а Action ознакомился с первой ознакомился с с первыми строчками и сказал тебе хорошо что такое лямда [музыка] выражение Алло Не знаю использовал когда-нибудь лям [музыка] выражения Давай вернёмся к является это методы Ну что ты имеешь в [музыка] виду ладно проехали давай давай вот поговорим что это такое язык запрос для работы с коллекциями что реально такое определение что ли Да [музыка] не там по-другому но это прям ЕС ты думаешь я реально читаю нет нет просто - это набор функциональных возможностей языка CP платформы вот с
00:46:32 - 00:48:26
этим я согласен да короче - это функционал некий функционал языка который позволяет работать с данными Угу Да вот вот с этим я согласен А с тем то что ты сказал не очень я Поэтому решил перепроверить может ты как бы где-то и прочитал так неправильно Ну нет не не не я Я имею в виду до этого не сейчас Ну где-то реально пишу что это встроенный вша язык запросов который Ну это блин это на хабре какой-то чёл пишет Ну как бы я бы не стал ему слепо а это отус пишет Слушай ну так как есть так как есть в
00:47:47 - 00:49:36
принципе в принципе Они под понимают Вот это который этова мо я Я спрашиваю про метод скорее Ага Так ладно вернёмся методы расширения вот так Хорошо спрошу что это такое для чего оно нужно и приходилось ли тебе работать Я так понимаю приходилось СН работать приходилось и достаточно расширений давай начнём с того что такое метод расширения метод extens Метод по-другому скажу да Дада я понял я пытаюсь как-то сформулировать ответ тоже делал работал но я не могу как как сделать метод расширение м Ну на практике как его написать что надо
00:48:41 - 00:50:48
написать какие буковки чтобы он стал методом расширения У тебя есть обычный метод тебе нужно сделать чтобы он как бы стал методом рения добавить [музыка] слово что что что этен не помню использовать ключевое слово зи Да но как использовать ключевое слово [музыка] подожди вот только недавно на эту [музыка] тему У меня возникал вопрос актуален ли вообще ещё з им сказали [музыка] перего нужен они тебе говорили в рамках другого контекста возможно я говорю про методы расширения они говорили про ЗИС в рамках
00:50:03 - 00:52:03
указания на объект это два разных ЗС Тини пишутся одинаково Четыре буквы странно просто они в разных контекстах используются используется в рамках объекта и указывает на поля свойства объекта Точнее он указы се Вот Но его можно не использовать Да вот а чтобы сделать метод расширения без ты никуда не денешься это ключевое слово которое указывает что параметр метода является расширяет поведение твоего объекта указанного объекта после з например что-то значит что ты расширь п что-то это знат что ты добавляешь но
00:51:06 - 00:52:42
ту Ингу в свою очередь это объект вот Окей вернёмся к - это методы расширения по сути Ну вот если мы говорим о том о котором я изначально сказал это методы расширения которые позволяют там работать с объектами с коллекциями если очень грубо Вот какие методы Ты знаешь использовал а Господи такой лютый Хет наверное в комментах будет можно это не публиковать просто нене не ну ты же анонимно это делаешь так что наоборот хорошо не вот нет я любое могт ревью публикую без разницы какой результат не нене не не да
00:51:56 - 00:53:32
Не ну блин Вырежи хотя бы прямо самый тупняк не переживай Сухроб Блин вот Ну это же хорошо Но много что использовал изза Линку Проблема в том что я не помню Ну блин я просто сложно Я просто слабо себе представляю как можно не помнить название методов это вот Легко [музыка] легко Ну хотя бы один у тебя бывает такое что прям вот вообще абсолютно всё из головы выходит Ну не знаю я каждый день пишу Я хз Ну СН точно такого не будет я понимаю забыть конструкцию грубая н я понимаю за забыть конструкцию
00:53:03 - 00:54:52
ПТА или юниона потому что она крайне редко используется но забыть метод Вея например ну я не понимаю ну типа у тебя там ве селе Select Ну хватит за Ната Давай ещё один а а вот дальше уже сложно Да дальше [музыка] сложно Ну ещё один хотя бы ну прям один ор by Z by Ну вот orderby Лано принимается А что такое Zen by Zen точнее Zen orderby вот этот для чего он нужен Бля орр by для [музыка] сортировки знаю Ну ладно не суть Как ты думаешь что мне стоит ещё у тебя спросить не знаю совсем вариантов нет вообще Нет Ну
00:54:05 - 00:56:07
что бы ты хотел сам рассказать про что да из мене не о чем рассказывать в общем-то грустно Ну теорию те надо значительно учить короче прям очень очень очень сильно учить Если ты хочешь собеседовать куда-то Вот ну и вариантов её выучить как бы немало в том числе мой видос там где 15 вопросов ответов на вопрос собеседования там ну половина того что мы обсуждали я днём посмотреть недостаточно Ещё ещё до того не я не просто смотрел Я читал Я полдня писал код в принципе готовился писать код тоже недостаточно То есть я даже что-то ну
00:55:42 - 00:57:21
ладно не про я я тебе не ответил бы вообще никак Ну блин ну сказать что есть методы это sone это транзиент ну блин ну сложно не сказать про то что они есть Ну про проп я мог бы ещё сказать про про силтон тоже вот третий Я первый раз услышал от тебя сейчас самый популярно в использовании да [музыка] Угу Как ещё раз я не знаю как он читается нси кто-то читает там транзиент говорит кто-то там как только не говорят может транскрипцию где-то поискать пш Сейчас я найду транскрипцию с а нашёл Ну пишут
00:56:46 - 00:58:28
Н вот поэтому Ну блин даже если ты не знаеш Что такое если ты писал хоть один сайт на Ты должен знать что такое н что такое skopt что такое singleton ну если ты конечно Di использовал но а можно писать не используя Di Можно конечно можно неожиданно Нет ну ты можешь просто методы расширения использовать например как Add authentification А свои собственные классы ты можешь как бы Объявлять и создавать внутри классов через New не поэтому Ну такое возможно да но я бы так не делал просто это не очень
00:57:47 - 00:59:14
удобно через д удобнее [музыка] угу вот Ну вот такие моменты тебе надо во-первых побольше кода писать во-вторых побольше теории читать Если ты будешь со беситься дальше теории Я я не могу выделить что-то конкретное потому что надо изучать всё вот Я бы начал во-первых со статьи Я не знаю скидывал я тебе е или нет но я сейчас её найду Так я уже я её всем раньше рекомендовал А теперь забалка называется А сейчас я найду корректная spn кор по-моему называется она на хабре статья Да сейчас я её найду скину Да вот она
00:58:31 - 01:00:08
правильно Так я её скину в телеку так вот Я бы начал с неё наверное плюс с моего видоса 15 ответов на вопрос собеседования он нормально Так разлетелся я иногда перед собеса Вот такими морю гуглю Какие вопросы че моде там моё видео выйдет просто в Гугли напиши вопросы собеседования там самое первое моё видео выйдет ну самое первое из видео Я имею в виду вот действительно Да вот поэтому Но это это вопросы Я почему знаю что это вопросы потому что 11 минут всего потому что на ответы мне там ушло по-моему минут 40
00:59:21 - 01:01:01
это Это следующее видео После этого у него такая же такой же этот такой же тамбнейл как он по-русски называется картиночка Короче на видео Вот и перед собе проб 20 минут второе видео Угу Да я не помню это было больше 2 лет назад мне казалось что оно под 40 минут где-то длится Ну не суть Вот получается пародия на экстрим код А что там тоже Half Life А нет я просто я написал на тубе спидраны Угу где не было лица я взял и всё то есть где не было Ну там спидраны просто со стримов с лицом снизу слева где не
01:00:37 - 01:02:29
было лица Я то и вял Поня вот поэтому Ну не знаю как породе я начал искать спидраны и они все блин с лицами абсолютно А это какой-то мировой рекорд по-моему Лайфа А ты вот по таймингу успеваешь в плане в видосе в тайминг успел вложиться в тайминг спидрана А я не знаю я порезал его по-моему или ускорил я не помню уже это больше дву лет надо было Да я искал вот если ты напишешь спидран мировой рекорд там самый первый будет какая-то фигня девочка и кровать я вообще такое Давай вернёмся лучше к дальше дальше Super Mar с лицом А третья
01:01:33 - 01:03:01
без лица Именно поэтому меня Half Life вот как бы а это Half Life 2 и то но я не помню как это получилось но вот я помню что везде спидраны с лицом были вот я взял Half Life О'кей Да ну вот посмотри видос посмотри Э ну пиши больше кода А в принципе мне нечего добавить Ну то есть как только подготовишь хоть хоть как-то вот можно можно ещё раз провести в следующий раз можно провести это в в реальной жизни не в реальной жизни вряд ли Почему я этот [ __ ] тема в реальной жизни не очень хочу обсуждать Ну всё как-то так всем
01:02:22 - 01:03:54
пока
01:03:08 - 01:03:11