Тёмный
Andrey Shyrokoriadov
Andrey Shyrokoriadov
Andrey Shyrokoriadov
Подписаться
Комментарии
@LM-nf1hf
@LM-nf1hf 25 дней назад
подскажите пожалуйста, а как поведет себя класс синглтон, который хранит в себе уже какие то данные, если к нему обратится с разных клиентов? Они оба будут видеть одно и тоже? Если да, то как сделать чтоб для каждого клиента был свой экземпляр класса?
@AndreyShyrokoriadov
@AndreyShyrokoriadov 25 дней назад
>> Они оба будут видеть одно и тоже? Да. >> Если да, то как сделать чтоб для каждого клиента был свой экзамен маляр класса? Если у каждого клиента будет свой экземпляр класса, то это уже не будет синглтон. В библиотеке Autofac зарегистрированные зависимости по умолчанию не являются синглтонами. Если Вы хотите сделать дать зависимость синглтонам (всегда будет возвращать тот же самый экземпляр класса), то необходимо добавить метод .SingleInstance() к регистрации зависимости. В чистом .Net Core для регистрации синглтонов необходимо вызывать метод .AddSinglton(), а если синглтон не нужен то методы .AddTransient() или AddScoped().
@LM-nf1hf
@LM-nf1hf 25 дней назад
@@AndreyShyrokoriadov спасибо за ответ
@eliseyworker
@eliseyworker 25 дней назад
спасибо за объёмное видео!
@kurorin331
@kurorin331 26 дней назад
спасибо большое)
@barbarasam8876
@barbarasam8876 Месяц назад
KAUNAS ❣️ 🇱🇹 😀 👏👏👏👏👏🥰
@it_catt
@it_catt Месяц назад
Спасибо больше за объяснение! самое понятное объяснение
@user-dm9mk6tc7p
@user-dm9mk6tc7p Месяц назад
У вас тут каждое видео важно для повседневной работы
@ookhands3843
@ookhands3843 Месяц назад
В видео описаны примеры использования готовых атрибутов. А есть пример реальной задачи которую можно решить с помощью самодельного атрибута? Спасибо.
@AndreyShyrokoriadov
@AndreyShyrokoriadov Месяц назад
Спасибо за вопрос. Вот пример использования самостоятельно созданного атрибута. Предположим у Вас есть некоторая модель, которую необходимо записывать в файл CSV. Заголовки файла CSV - это названия свойств модели. Предоположим, что наша модель это класс с 3-мя свойствами: имя, фамилия, возраст. Заказчик в спецификации указал, что загаловки должны быть на английском языке: Name, Surname, Age. Однако, оказалось, что код разрабатывался немецкой компанией и названия свойств всех моделей были на немецком языке. Приложение большое, менять названия свойств нельзя, чтобы избежать ошибок. Здесь мы можем использовать атрибуты, так как они не влияют на уже существующий код. Тогда алгоритм будет следуюший: 1. возьми класс, который небходимо записать в файл CSV. 2. прочитай атрибут названия заголовка в каждом свойстве класса. 3. запиши первую строчку с прочитанными заголовками из атрибутов в файл CSV. 4. запиши остальные данные в файл CSV. Пример класса с немецкими названиями свойств: public class User { [CsvHeader("Name")] public string Vorname { get; set; } [CsvHeader("Surname")] public string Nachname { get; set; } [CsvHeader("Age")] public int Alter { get; set; } } Пример класса атрибута: public class CsvHeaderAttribute : Attribute { public CsvHeaderAttribute(string header) { Header = header; } public string Header { get; set; } } Атрибуты читаются рефлексией. Данные в файл записываются стандартными функциями из пространства имен System.IO.
@araslanrus
@araslanrus Месяц назад
Все конечно интересно, но кому это интересно кроме собеседуещего, за годы работы ни разу эта информация не понадобилась, вспоминаешь ее только на собесах
@AndreyShyrokoriadov
@AndreyShyrokoriadov Месяц назад
Согласен с Вами на 💯 процентов.
@kl45gp
@kl45gp Месяц назад
спасибо
@ookhands3843
@ookhands3843 Месяц назад
Спасибо. Можно пример из жизни, когда длл дергается рефдексией. В ролике объяснение не понятное. Спасибо.
@AndreyShyrokoriadov
@AndreyShyrokoriadov Месяц назад
В современных приложениях нет необходимости дергать длл рефлексией… поэтому примеров нет. Теория, которая когда-то была практикой.
@sehrgutlocj
@sehrgutlocj 2 месяца назад
Сегодня вопрос на собеседовании что делает Getenumerator(){ yield return 1; yield return 2; yield return 3; yield return 4;}
@redice8928
@redice8928 2 месяца назад
А как async await раскрывается под капотом, и можно ли получить резалт без использования этих ключевых слов и без блокировки основного потока
@sehrgutlocj
@sehrgutlocj 2 месяца назад
При всем увжении тут поплыли и все в кучу и анонимные типы и linq
@sehrgutlocj
@sehrgutlocj 2 месяца назад
Бестолковое объяснение, бессистемная и непонятная, броски по тексту
@AndreyShyrokoriadov
@AndreyShyrokoriadov 2 месяца назад
Хотелось бы услышать / увидеть Ваше объяснение, но я ничего не нашел 🤦‍♂️
@sehrgutlocj
@sehrgutlocj 2 месяца назад
@@AndreyShyrokoriadov дедактики не хватает. Я не обучаю программированию
@AndreyShyrokoriadov
@AndreyShyrokoriadov 2 месяца назад
@@sehrgutlocj у Вас в слове «Дидактика» ошибка…
@sehrgutlocj
@sehrgutlocj 2 месяца назад
@@AndreyShyrokoriadov я малограмотный
@HeIvis
@HeIvis 2 месяца назад
отличное видео, спасибо большое!!
@prethink-dev
@prethink-dev 2 месяца назад
Спасибо, полезный материал.
@of_youtube
@of_youtube 2 месяца назад
2:30 неправильно
@bebronuh222
@bebronuh222 2 месяца назад
а как правильно?
@of_youtube
@of_youtube 2 месяца назад
​@@bebronuh222 Автор сказал - объекты на куче, на которые нет ссылки в стеке будут удалены Это не правильный ответ Если у тебя в стеке есть ссылка на объект Person, но нет ссылки на объект Hand, в то время как Hand является частью Person, то объект Hand из кучи не удалится! Более правильная формулировка - gc удаляет все объекты, на которые нет ссылки из стека И на которые нет ссылки из других объектов кучи, на которые ещё есть ссылка из стека (вложенность может быть больше: Person (есть указатель в стеке), Hand (нет указателя в стеке, но это часть Person), Finger (нет указателя в стеке, но это часть Hand, который часть Person)
@maksa83
@maksa83 2 месяца назад
В контексте перегружения (overloading) методов, тип возвращаемого значения НЕ ВХОДИТ в сигнатуру метода. Но в контексте делегатов (о чём вы как раз говорите на 1:52), тип возвращаемого значения ВХОДИТ в сигнатуру метода. Типы возвращаемых значений у делегата и замещающего его (делегат) метода должны совпадать.
@Raakkaa
@Raakkaa 2 месяца назад
Нужно ещё упомянуть, что операторы сравнения перегружаются всегда парами == и !=, < и >, <= и >=, нельзя просто переопределить !=, тоже самое и про перегрузку true и false.
@Raakkaa
@Raakkaa 2 месяца назад
Про методы расширения хотелось бы написать, в них this используется со static. Создаётся статический класс, статический метод и this указывается в параметрах метода.
@zenshhir0
@zenshhir0 3 месяца назад
Здравствуйте, вопрос по поводу работы AutoFixture, насколько я понял при вызове метода Create он каждый раз генерирует случайное число, есть ли способ ограничить разброс этих чисел. Спасибо за видео, оказалось очень полезным.
@AndreyShyrokoriadov
@AndreyShyrokoriadov 3 месяца назад
Доброго времени суток. По ссылке ниже описано как генерируются числовые типы в AutoFixture. github.com/AutoFixture/AutoFixture/wiki/v3.0-Release-Notes#numbers-are-random Мне кажется Вам надо присмотреться к классу RandomNumericSequenceGenerator.
@user-ql9ye5mx6u
@user-ql9ye5mx6u 3 месяца назад
Круто!
@goldgold594
@goldgold594 3 месяца назад
Большое спасибо за ролик!
@user-ok8dp3mt1w
@user-ok8dp3mt1w 3 месяца назад
Правильно ли будет сказать что смысл патерна "Фасад" в том чтобы сложную систему связанных классов представить в виде простого интерфейса для клиента?
@AndreyShyrokoriadov
@AndreyShyrokoriadov 3 месяца назад
Да, это главный смысл данного паттерна.
@user-pi4mx6vi8u
@user-pi4mx6vi8u 3 месяца назад
​@@AndreyShyrokoriadov, спасибо
@Ledrunning
@Ledrunning 3 месяца назад
Спасибо за видео! Но есть момент, зря не показали связку событий и делегатов.
@moon5964
@moon5964 4 месяца назад
Отличные ролик
@IPmen10001
@IPmen10001 4 месяца назад
Подскажите пожалуйста никак не могу понять. Есть метод асинхронный в Web API который возвращает какие то данные в методе стоит задержка на 10 сек. Так вот никак не могу понять клиент сразу получит ответ но он будет пустой т.е он получит таску без данных. Или если клиент задержится на странице то данные ему придут через секунд? Спасибо
@AndreyShyrokoriadov
@AndreyShyrokoriadov 4 месяца назад
данные придут через "икс" секунд. В это время в интерфейсе пользователя будет какая то анимация символизирующая ожидание. То есть клиент ничего сразу не получит. Он получит данные, как только они будут готовы (после выполнения таска). А если таск настолько массивный, что он длится минуты или даже часы, то можно клиенту сразу вернуть статус 201 Accepted (естественно без данных). Когда таск будет выполнен об этом надо как-то проинфирмировать клиента (есть разные способы, например с помощью библиотеки SignalR). Сообщение клиенту будет содержатьинформацию о том, что такс закончился и данные можно скачать без задержек.
@IPmen10001
@IPmen10001 4 месяца назад
@@AndreyShyrokoriadov спасибо большое за разъяснения 🤝
@Leonidn1972
@Leonidn1972 4 месяца назад
Thanks a lot, awesome content.
@IPmen10001
@IPmen10001 4 месяца назад
Есть ли у вас лекция про асинк эвейт?
@AndreyShyrokoriadov
@AndreyShyrokoriadov 4 месяца назад
На сколько я помню, в моих видео нет видео посвященного исключительно ключевым словам async/await
@StroyManosfera
@StroyManosfera 5 месяцев назад
Неплохо разложено, и шпаргалочка путёвая.
@user-oo6cz3wp8s
@user-oo6cz3wp8s 5 месяцев назад
❤спасибо за видео.
@saint8283
@saint8283 5 месяцев назад
10:11 а почему мы ожидали, что (j == 1)? Я не понял. Под капотом i++ сначала происходит возврат исходного значения, а потом увеличение на 1. var i = 0; var j = i++; Тут j будет 0 в любом раскладе, разве нет?
@artemivanov2141
@artemivanov2141 6 месяцев назад
Кутаиси наверное самый уютный город Грузии
@Lisiy_Lis
@Lisiy_Lis 6 месяцев назад
10:40 мне кажется вы тут ошиблись. Equals проверяет названия свойств, их порядок, их значение. Оператор == проверяет, указывают ли 2 ссылки на один объект в куче. Если бы вы писали и демонстрировали код - эту ошибку легко было бы обнаружить.
@rodiondolgopolov9339
@rodiondolgopolov9339 6 месяцев назад
Отличный материал. Есть в планах записать видео RabbitMQ?
@AndreyShyrokoriadov
@AndreyShyrokoriadov 6 месяцев назад
Нет, такого в планах нет.
@Lisiy_Lis
@Lisiy_Lis 6 месяцев назад
Отличное видео! Единственное что - 13:02 тут в 101 строке опечатка, ее поиск и исправление остались за кадром и в 14:17 "магическим образом" все стало правильно. С дидактической точки зрения так делать не следует (лучше поверх видео добавить комментарий в стиле "а вот тут у меня опечатка").
@user-fu1gf7lp7x
@user-fu1gf7lp7x 6 месяцев назад
Это базовый полиморфизм я правильно понимаю
@sabrdac3924
@sabrdac3924 6 месяцев назад
Люблю Вильнюс...
@MultiSenis
@MultiSenis 6 месяцев назад
Каунас - город Юнеско. О какой советской оккупации следует говорить? 1500 архитектурных шедевров мирового уровня. Город модернизма. Как Париж, Барселона. Предстоит долгая реставрационная работа.
@user-en7hd8li8p
@user-en7hd8li8p 7 месяцев назад
Вопрос возник. А что было такого плохого в технологии COM, что ее решили заменить целой средой разработки?
@user-mk6ku2ol1x
@user-mk6ku2ol1x 7 месяцев назад
Хороший пример min-рефакторинга и max-рефакторинга. Я несколько лет самостоятельно изучаю .Net C#. Ваш видеоурок с источником кода на Github очень помог мне понять, что такое чистый код. Использую для подготовки к собеседованию. Здорово, что профессионалы делятся своими знаниями с начинающими.
@Rueslan
@Rueslan 7 месяцев назад
чувствую себя говнокодером...
@AndreyShyrokoriadov
@AndreyShyrokoriadov 7 месяцев назад
Самокритика - первый шаг к совершенству.
@user-mc2kn4uo8n
@user-mc2kn4uo8n 7 месяцев назад
Спасибо за видео! Единственное замечание: не называйте, пожалуйста, сервисы услугами. Каждый раз в голове приходится переводить это слово) Ни разу не слышал, чтобы где-то ещё слово "сервисы" заменялось на "услуги"
@user-ii9xe4pu6x
@user-ii9xe4pu6x 7 месяцев назад
Как-то всё очень сумбурно
@ForYouNegative
@ForYouNegative 7 месяцев назад
блин бро ток начал видос твой смотреть надеюсь поможет. стоит задачка реально тривиальная в коробку добавить свой модуль в котором просто отрисовывать картинку, но вот как работает маршрутизация не понятно, просто по классам если смотреть полная белеберда, смотрю в примеры и хочется выйти) Еще и коробкой все усложняется, тк отдает ссылки на картинки без расширения на скачивание, то есть в элементарное вью с тегом img уже с лета не воткнуть(.
@bananje2768
@bananje2768 7 месяцев назад
Спасибо большое за серию уроков! Снимите серию видео на тему DDD архитектуры с разбором проектирования домена, реализации доменных событий и прочего.
@faizulla5838
@faizulla5838 7 месяцев назад
Зачем общий клас и еще один в примере назвали ОДИНАКОВО? теперь не все понятно...хотябы workerClass2 ...
@AndreyShyrokoriadov
@AndreyShyrokoriadov 7 месяцев назад
О! Magic numbers пошли 😀
@faizulla5838
@faizulla5838 7 месяцев назад
@@AndreyShyrokoriadov при чем Магия? вы не ответили, можно second написать вместо 2ки .... не всегда удобно прописывать., ясно ... проскочили ))
@faizulla5838
@faizulla5838 7 месяцев назад
а че чел не может снимать свои видео в одной одежде??
@user-pi9cb7wb4e
@user-pi9cb7wb4e 7 месяцев назад
Андрей, добрый день! Не могу найти ссылку на Ваш гитхаб, где можно не найти? :)
@AndreyShyrokoriadov
@AndreyShyrokoriadov 7 месяцев назад
Пожалуйста. github.com/ashyrokoriadov