Ошибки: 1а."Инкапсуляция - это возможность скрыть..". Нет, инкапсуляция -это не сокрытие. А что? Ответ: (обьединение внутреннего состояния и реализации) +(защита и сокрытие внутренностей)+(интефейс коммуникации .. публичный... в широм смысле (не обязательно public) ) 1b."Полиморфизм подтипов - возможность использовать абстрактные классы и интерфейсы" Нет. Это частный случай.Не полное определение.Это не только использование вышеперечисленного, но и в первую очередь use и обычныех базовых классов в качестве параметров методов вместе с наследниками....да и не только базовых см. контрвариантность...А вообще это "способность метода обрабатывать данные разых типов". И ни каких "интерфесов и абст класоов" в определении сего быть не должно. 1с. 2:42 "Абстракция - user не должен знать как реализован....итд." Простите. Бред. От начала и до конца.. Вышесканое автором это что-то про термин "сокрытие". Абстракция же, как принцип ООП - это выделение значимого. да .Всего 2 слова... Значимых характеристик, свойств, методов, даже наименований чего-либо ...Чего?Обьектов или не-обьектов c#(например интерфейсов) 2а."ссылчные типы хранят в себе ссылку на объект в стеке" Не верно. Они хранят ссылку на объект. Эта "ссылка на обьект" не обятельно находится в стеке. может и в куче.It depends от места и формата использования этих объектов в коде... 2b. "значимые типы храняться в стеке" Ужас. Никогда такого не говорите на собесе. Это очень, очень распространенная ложная формулировка....Правильно сказать: они МОГУТ храниться в стеке 4. Не сказано более важное смысловое отличает ref от out: в методе с параметром out это параметр обязан быть инициализирован в теле метода.В случае с ref - нет. 8. 11:46 "а данный метод(Dispose) часто используется для таких операции как чтение или запись.."..полагаю имелось ввиду ..Упоси вас Бог использовать Dispose() для чтения или записи с диска, в бд итд. 15."Помимо обычных делегатов так же существуют multicast делегаты" Эм.Не верно .Любой обьект обычного делегата, т.е делегатоэа созданного с помощью ключевого слова delegate - это и есть обьект класса MulticastDelegate (точнее производная от него)...который наследуется от abstract class Delegate....и вообще джуну лучше про внутренюю кухню делегатов, не говорить если не спросят. Замечания: 1d. "приведение типов - ad-hoc полиморфизм" - это очень, очень сомнительное утверждение, которые многие в комьюнити не поддерживают.А поддерживают то, что приведение типов - не полиморфизм. 6. Не сказано про главное: концептуальное отличие: Интерфейс - это контракт Абстр класс - это класс(увы товтология) т.е сущность в иерархии наследования.Т.к c# нет множественного наследования наследования, то даже при одинаковом содержимом абстр класса и интерфеса, при проектировании одного класса, использование в качестве "родителя" интерфейса != использованию абстр класса. У них разная суть. Разные отношения возникают между классами: реализация vs наследование. Это очень важно....и ещё опционально можно акцентировать внимание что нет множественного наследование классов, но есть - интерфейсов...и что структуры могут реализовать интерфейсы PS: спасибо за видео автору Все остальное что сказано.Сказано хорошо. PPS: пункты 1b, 8, 15 от меня - не очень существенные, и частично доколебки к словам. Но вот пункты 1а, 1с, 2а, 2b, 4 - это ввжно. И они ИМХО критичны для собеседующегося, и если сказаное автором будет повторно - это будет в минус, покажет незнание и/или вызовет дальнейшее уточняющие вопросы Готовлюсь к собесу. Наткнулся на видос.Спасибо автору ещё раз. Критикую с целью помощи людям. PPS2: Краине малоизвестный факт: обьекты ссылочных типов целикм могут храниться в стеке!!.. см термины " escape analisis" и "скалярізация"
Спасибо! Видео хорошо систематизирует все темы. Подготовиться по одному нему конечно не выйдет, но можно быстро прикинуть и загуглить свои слабые места.
Про инкапсуляцию неверно рассказал, сокрытие - это лишь частный случай инкапсуляции. Основной смысл - это данные и поведение(методы) у объекта находятся вместе и объект рассматривается как чёрный ящик со скрытой реализацией из которого торчат только интерфейсы взаимодействия, а что там внутри(реализация) - неважно. Держу в курсе, что у некоторых языков с ООП нету модификаторов private, но это не отменяет для них инкапсуляцию. Меня за сокрытие не раз на собесах имели, так что знаю, что говорю.
Слушай, это пушка. Все супер разжевал за исключением нескольких моментов. Мне, как начинающему Trainee+ было супер полезно На счет игры на фоне - спорно вышло :)
Про абстракцию не совсем корректно, это больше выделение важных черт в контексте поставленной задачи и отбрасывании неважных, чем сокрытие этих неважных деталей реализации, чтобы никто ничего не знал. И инкапсуляция опять же - не только сокрытие, но и размещение в одном компоненте данных и методов, которые с ними работают :)
Привет. Слушай, сколько обычно ожидается слов на ответ? Потому что я начитался Рихтеров и могу говорить минутами, но обычно вижу что ответы в пару предложений даются. Отвечать развернуто хорошо, или плохо?
Полезные ссылки, не забывай поставить лайк, написать любой комментарий и подписаться на канал(колокольчик само собой) Так ты меня поддержишь и видео будут выходить чаще! Статья про SOLID: habr.com/ru/company/productivity_inside/blog/505430/ Сайт с паттернами: refactoring.guru/ru/design-patterns
Там кстати от источника к источнику от 3 до 9. Кто то инкапсуляцию убирает. Кто то добавляет посылку сообщений, хотя это такая очевидная вещь. Ну и инкапсуляция, это не совсем сокрытие)
@@Excalib вот допустим ты говоришь по ссылочные типы, можно было показать присвоив какому то классу какие то значения затем создать второй экземпляр класса и присвоить ему первый экземпляр и поменять значения в первом экземпляре и посмотреть что будет во втором экземпляре, так было бы очень наглядно и запомнилось бы лучше)
@@Excalib и кажется про имюьбл тип ты кажется не сказал, и разные виды полиформизма было бы очень полезно увидеть, хоть это заимет больше времени, и ролик будет больше, но полезность была бы не сравнимой с этим роликом
Почему про синглтон не стоит говорить? В правильных руках и антипаттерн - паттерн, например для геймдева синглтон достаточно полезен во многих случаях, про кор не знаю.
Ошибки:
1а."Инкапсуляция - это возможность скрыть..". Нет, инкапсуляция -это не сокрытие. А что? Ответ: (обьединение внутреннего состояния и реализации) +(защита и сокрытие внутренностей)+(интефейс коммуникации .. публичный... в широм смысле (не обязательно public) )
1b."Полиморфизм подтипов - возможность использовать абстрактные классы и интерфейсы" Нет. Это частный случай.Не полное определение.Это не только использование вышеперечисленного, но и в первую очередь use и обычныех базовых классов в качестве параметров методов вместе с наследниками....да и не только базовых см. контрвариантность...А вообще это "способность метода обрабатывать данные разых типов". И ни каких "интерфесов и абст класоов" в определении сего быть не должно.
1с. 2:42 "Абстракция - user не должен знать как реализован....итд." Простите. Бред. От начала и до конца.. Вышесканое автором это что-то про термин "сокрытие". Абстракция же, как принцип ООП - это выделение значимого. да .Всего 2 слова... Значимых характеристик, свойств, методов, даже наименований чего-либо ...Чего?Обьектов или не-обьектов c#(например интерфейсов)
2а."ссылчные типы хранят в себе ссылку на объект в стеке" Не верно. Они хранят ссылку на объект. Эта "ссылка на обьект" не обятельно находится в стеке. может и в куче.It depends от места и формата использования этих объектов в коде...
2b. "значимые типы храняться в стеке" Ужас. Никогда такого не говорите на собесе. Это очень, очень распространенная ложная формулировка....Правильно сказать: они МОГУТ храниться в стеке
4. Не сказано более важное смысловое отличает ref от out: в методе с параметром out это параметр обязан быть инициализирован в теле метода.В случае с ref - нет.
8. 11:46 "а данный метод(Dispose) часто используется для таких операции как чтение или запись.."..полагаю имелось ввиду ..Упоси вас Бог использовать Dispose() для чтения или записи с диска, в бд итд.
15."Помимо обычных делегатов так же существуют multicast делегаты" Эм.Не верно .Любой обьект обычного делегата, т.е делегатоэа созданного с помощью ключевого слова delegate - это и есть обьект класса MulticastDelegate (точнее производная от него)...который наследуется от abstract class Delegate....и вообще джуну лучше про внутренюю кухню делегатов, не говорить если не спросят.
Замечания:
1d. "приведение типов - ad-hoc полиморфизм" - это очень, очень сомнительное утверждение, которые многие в комьюнити не поддерживают.А поддерживают то, что приведение типов - не полиморфизм.
6. Не сказано про главное: концептуальное отличие: Интерфейс - это контракт Абстр класс - это класс(увы товтология) т.е сущность в иерархии наследования.Т.к c# нет множественного наследования наследования, то даже при одинаковом содержимом абстр класса и интерфеса, при проектировании одного класса, использование в качестве "родителя" интерфейса != использованию абстр класса. У них разная суть. Разные отношения возникают между классами: реализация vs наследование. Это очень важно....и ещё опционально можно акцентировать внимание что нет множественного наследование классов, но есть - интерфейсов...и что структуры могут реализовать интерфейсы
PS: спасибо за видео автору Все остальное что сказано.Сказано хорошо.
PPS: пункты 1b, 8, 15 от меня - не очень существенные, и частично доколебки к словам. Но вот пункты 1а, 1с, 2а, 2b, 4 - это ввжно. И они ИМХО критичны для собеседующегося, и если сказаное автором будет повторно - это будет в минус, покажет незнание и/или вызовет дальнейшее уточняющие вопросы
Готовлюсь к собесу. Наткнулся на видос.Спасибо автору ещё раз. Критикую с целью помощи людям.
PPS2: Краине малоизвестный факт: обьекты ссылочных типов целикм могут храниться в стеке!!.. см термины " escape analisis" и "скалярізация"
Большое спасибо! Очень детально разобрал!
@@Excalib Можно еще добавить ,что с c# 10 в структурах можно создавать конструктор без параметров.
Это единственный видос, который я сам досмотрел на ютубе, только потому что люблю наблюдать за спидранами)))
Спасибо! Видео хорошо систематизирует все темы. Подготовиться по одному нему конечно не выйдет, но можно быстро прикинуть и загуглить свои слабые места.
Про инкапсуляцию неверно рассказал, сокрытие - это лишь частный случай инкапсуляции. Основной смысл - это данные и поведение(методы) у объекта находятся вместе и объект рассматривается как чёрный ящик со скрытой реализацией из которого торчат только интерфейсы взаимодействия, а что там внутри(реализация) - неважно. Держу в курсе, что у некоторых языков с ООП нету модификаторов private, но это не отменяет для них инкапсуляцию. Меня за сокрытие не раз на собесах имели, так что знаю, что говорю.
инкапсуляция - сокрытие
@@Excalib ограничивать понимание инкапсуляции сокрытием - мягко говоря глупо)
@@maxmilevski поддерживаю
А грубо говоря?
@@Excalib грубо говоря тебя за такое мнение могут уебашить битой в темном переулке. Без обид но инкапсуляция это не сокрытие.
Автор, за видео спасибо, полезно) Только спидран на фоне сильно отвлекает((
Отличное видео! Спасибо! И со спидраном на фоне умно придумал) было интересно смотреть
Про классы и структуры еще одно значимое отличие - от структуры нельзя наследоваться
Очень хороший разбор !
Слушай, это пушка. Все супер разжевал за исключением нескольких моментов. Мне, как начинающему Trainee+ было супер полезно
На счет игры на фоне - спорно вышло :)
Насчёт игры спорно, согласен, но я так залип на этот спидран, аж олдскулы свело
Отличное видео, спасибо
Спасибо, очень полезно.
очень полезный видос! что-нибудь по типу rode map c# разработчик можно сделать
он у меня был в видосах
Лучший 👍
Спасибо:)
Давай следующий видос по базам? Индексы, ключи, связи, нормализация и тд)
Давай) Я вообще планирую след видос снять про алгоритмическую сложность
Ща тебя ExtremeCode за инкапсуляцию накажет )
я их сам накажу
Про абстракцию не совсем корректно, это больше выделение важных черт в контексте поставленной задачи и отбрасывании неважных, чем сокрытие этих неважных деталей реализации, чтобы никто ничего не знал. И инкапсуляция опять же - не только сокрытие, но и размещение в одном компоненте данных и методов, которые с ними работают :)
спасибо
уважаю
Спасибо
@@Excalib тебе спасибо за ответ, я забыл подписатся ❤
Рад что кому то нравится:))) спасибо за подписку
Ребятки, не рекомендую к просмотру. Не тратьте время(((
Привет. Слушай, сколько обычно ожидается слов на ответ? Потому что я начитался Рихтеров и могу говорить минутами, но обычно вижу что ответы в пару предложений даются. Отвечать развернуто хорошо, или плохо?
отвечать развернуто это хорошо, но лить воду не надо!
Онимечникам привет, остальным соболезную
ониме на аве, кто то в канаве
@@Excalib Здоровья маме, вообще-то
@@zelepupka2911 точно
Полезные ссылки, не забывай поставить лайк, написать любой комментарий и подписаться на канал(колокольчик само собой) Так ты меня поддержишь и видео будут выходить чаще!
Статья про SOLID: habr.com/ru/company/productivity_inside/blog/505430/
Сайт с паттернами: refactoring.guru/ru/design-patterns
Там кстати от источника к источнику от 3 до 9. Кто то инкапсуляцию убирает. Кто то добавляет посылку сообщений, хотя это такая очевидная вещь. Ну и инкапсуляция, это не совсем сокрытие)
Большую часть видоса просто смотрел спидран
красава че
так и не рассказал про вопросы по asp net core :(
Могу снять отдельное видео просто там много всего так же могут спросить(
может и полезно, но подача на слух на фоне игры - чушь
Спасибо уже учёл
Почему 5 парадигм если 6? Парадигма повторное использование грустит в сторонке (9((
так получилось, я думал что эти 2 тож не надо называть нахер они нужны
уаййййййййй а где примерчики кода?
А какие примерчики нужны?
@@Excalib вот допустим ты говоришь по ссылочные типы, можно было показать присвоив какому то классу какие то значения затем создать второй экземпляр класса и присвоить ему первый экземпляр и поменять значения в первом экземпляре и посмотреть что будет во втором экземпляре, так было бы очень наглядно и запомнилось бы лучше)
@@Excalib и кажется про имюьбл тип ты кажется не сказал, и разные виды полиформизма было бы очень полезно увидеть, хоть это заимет больше времени, и ролик будет больше, но полезность была бы не сравнимой с этим роликом
В таком случае видос будет огромным
@@Excalib да согласен, можно не писать код на видео, а просто показать примерчики уже готовые
видеоряд очень отвлекает. лучше видеоряд по теме или что то спокойное
Спасибо, учту!
Почему про синглтон не стоит говорить? В правильных руках и антипаттерн - паттерн, например для геймдева синглтон достаточно полезен во многих случаях, про кор не знаю.
Скинь сылку про соли
)))
Спасибо