Пікірлер
@LM-nf1hf
@LM-nf1hf 7 күн бұрын
подскажите пожалуйста, а как поведет себя класс синглтон, который хранит в себе уже какие то данные, если к нему обратится с разных клиентов? Они оба будут видеть одно и тоже? Если да, то как сделать чтоб для каждого клиента был свой экземпляр класса?
@AndreyShyrokoriadov
@AndreyShyrokoriadov 7 күн бұрын
>> Они оба будут видеть одно и тоже? Да. >> Если да, то как сделать чтоб для каждого клиента был свой экзамен маляр класса? Если у каждого клиента будет свой экземпляр класса, то это уже не будет синглтон. В библиотеке Autofac зарегистрированные зависимости по умолчанию не являются синглтонами. Если Вы хотите сделать дать зависимость синглтонам (всегда будет возвращать тот же самый экземпляр класса), то необходимо добавить метод .SingleInstance() к регистрации зависимости. В чистом .Net Core для регистрации синглтонов необходимо вызывать метод .AddSinglton(), а если синглтон не нужен то методы .AddTransient() или AddScoped().
@LM-nf1hf
@LM-nf1hf 6 күн бұрын
@@AndreyShyrokoriadov спасибо за ответ
@eliseyworker
@eliseyworker 7 күн бұрын
спасибо за объёмное видео!
@kurorin331
@kurorin331 8 күн бұрын
спасибо большое)
@barbarasam8876
@barbarasam8876 16 күн бұрын
KAUNAS ❣️ 🇱🇹 😀 👏👏👏👏👏🥰
@it_cat_code
@it_cat_code 18 күн бұрын
Спасибо больше за объяснение! самое понятное объяснение
@user-dm9mk6tc7p
@user-dm9mk6tc7p 18 күн бұрын
У вас тут каждое видео важно для повседневной работы
@ookhands3843
@ookhands3843 24 күн бұрын
В видео описаны примеры использования готовых атрибутов. А есть пример реальной задачи которую можно решить с помощью самодельного атрибута? Спасибо.
@AndreyShyrokoriadov
@AndreyShyrokoriadov 23 күн бұрын
Спасибо за вопрос. Вот пример использования самостоятельно созданного атрибута. Предположим у Вас есть некоторая модель, которую необходимо записывать в файл 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 Ай бұрын
Сегодня вопрос на собеседовании что делает Getenumerator(){ yield return 1; yield return 2; yield return 3; yield return 4;}
@redice8928
@redice8928 Ай бұрын
А как async await раскрывается под капотом, и можно ли получить резалт без использования этих ключевых слов и без блокировки основного потока
@sehrgutlocj
@sehrgutlocj Ай бұрын
При всем увжении тут поплыли и все в кучу и анонимные типы и linq
@sehrgutlocj
@sehrgutlocj Ай бұрын
Бестолковое объяснение, бессистемная и непонятная, броски по тексту
@AndreyShyrokoriadov
@AndreyShyrokoriadov Ай бұрын
Хотелось бы услышать / увидеть Ваше объяснение, но я ничего не нашел 🤦‍♂️
@sehrgutlocj
@sehrgutlocj Ай бұрын
@@AndreyShyrokoriadov дедактики не хватает. Я не обучаю программированию
@AndreyShyrokoriadov
@AndreyShyrokoriadov Ай бұрын
@@sehrgutlocj у Вас в слове «Дидактика» ошибка…
@sehrgutlocj
@sehrgutlocj Ай бұрын
@@AndreyShyrokoriadov я малограмотный
@HeIvis
@HeIvis Ай бұрын
отличное видео, спасибо большое!!
@prethink-dev
@prethink-dev Ай бұрын
Спасибо, полезный материал.
@of_youtube
@of_youtube Ай бұрын
2:30 неправильно
@bebronuh222
@bebronuh222 Ай бұрын
а как правильно?
@of_youtube
@of_youtube Ай бұрын
​@@bebronuh222 Автор сказал - объекты на куче, на которые нет ссылки в стеке будут удалены Это не правильный ответ Если у тебя в стеке есть ссылка на объект Person, но нет ссылки на объект Hand, в то время как Hand является частью Person, то объект Hand из кучи не удалится! Более правильная формулировка - gc удаляет все объекты, на которые нет ссылки из стека И на которые нет ссылки из других объектов кучи, на которые ещё есть ссылка из стека (вложенность может быть больше: Person (есть указатель в стеке), Hand (нет указателя в стеке, но это часть Person), Finger (нет указателя в стеке, но это часть Hand, который часть Person)
@maksa83
@maksa83 Ай бұрын
В контексте перегружения (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 3 ай бұрын
Отличные ролик
@IPmen10001
@IPmen10001 3 ай бұрын
Подскажите пожалуйста никак не могу понять. Есть метод асинхронный в Web API который возвращает какие то данные в методе стоит задержка на 10 сек. Так вот никак не могу понять клиент сразу получит ответ но он будет пустой т.е он получит таску без данных. Или если клиент задержится на странице то данные ему придут через секунд? Спасибо
@AndreyShyrokoriadov
@AndreyShyrokoriadov 3 ай бұрын
данные придут через "икс" секунд. В это время в интерфейсе пользователя будет какая то анимация символизирующая ожидание. То есть клиент ничего сразу не получит. Он получит данные, как только они будут готовы (после выполнения таска). А если таск настолько массивный, что он длится минуты или даже часы, то можно клиенту сразу вернуть статус 201 Accepted (естественно без данных). Когда таск будет выполнен об этом надо как-то проинфирмировать клиента (есть разные способы, например с помощью библиотеки SignalR). Сообщение клиенту будет содержатьинформацию о том, что такс закончился и данные можно скачать без задержек.
@IPmen10001
@IPmen10001 3 ай бұрын
@@AndreyShyrokoriadov спасибо большое за разъяснения 🤝
@Leonidn1972
@Leonidn1972 4 ай бұрын
Thanks a lot, awesome content.
@IPmen10001
@IPmen10001 4 ай бұрын
Есть ли у вас лекция про асинк эвейт?
@AndreyShyrokoriadov
@AndreyShyrokoriadov 4 ай бұрын
На сколько я помню, в моих видео нет видео посвященного исключительно ключевым словам async/await
@StroyManosfera
@StroyManosfera 4 ай бұрын
Неплохо разложено, и шпаргалочка путёвая.
@user-oo6cz3wp8s
@user-oo6cz3wp8s 4 ай бұрын
❤спасибо за видео.
@saint8283
@saint8283 5 ай бұрын
10:11 а почему мы ожидали, что (j == 1)? Я не понял. Под капотом i++ сначала происходит возврат исходного значения, а потом увеличение на 1. var i = 0; var j = i++; Тут j будет 0 в любом раскладе, разве нет?
@artemivanov2141
@artemivanov2141 5 ай бұрын
Кутаиси наверное самый уютный город Грузии
@Lisiy_Lis
@Lisiy_Lis 5 ай бұрын
10:40 мне кажется вы тут ошиблись. Equals проверяет названия свойств, их порядок, их значение. Оператор == проверяет, указывают ли 2 ссылки на один объект в куче. Если бы вы писали и демонстрировали код - эту ошибку легко было бы обнаружить.
@rodiondolgopolov9339
@rodiondolgopolov9339 5 ай бұрын
Отличный материал. Есть в планах записать видео RabbitMQ?
@AndreyShyrokoriadov
@AndreyShyrokoriadov 5 ай бұрын
Нет, такого в планах нет.
@Lisiy_Lis
@Lisiy_Lis 5 ай бұрын
Отличное видео! Единственное что - 13:02 тут в 101 строке опечатка, ее поиск и исправление остались за кадром и в 14:17 "магическим образом" все стало правильно. С дидактической точки зрения так делать не следует (лучше поверх видео добавить комментарий в стиле "а вот тут у меня опечатка").
@user-fu1gf7lp7x
@user-fu1gf7lp7x 6 ай бұрын
Это базовый полиморфизм я правильно понимаю
@sabrdac3924
@sabrdac3924 6 ай бұрын
Люблю Вильнюс...
@MultiSenis
@MultiSenis 6 ай бұрын
Каунас - город Юнеско. О какой советской оккупации следует говорить? 1500 архитектурных шедевров мирового уровня. Город модернизма. Как Париж, Барселона. Предстоит долгая реставрационная работа.
@user-en7hd8li8p
@user-en7hd8li8p 6 ай бұрын
Вопрос возник. А что было такого плохого в технологии COM, что ее решили заменить целой средой разработки?
@user-mk6ku2ol1x
@user-mk6ku2ol1x 6 ай бұрын
Хороший пример min-рефакторинга и max-рефакторинга. Я несколько лет самостоятельно изучаю .Net C#. Ваш видеоурок с источником кода на Github очень помог мне понять, что такое чистый код. Использую для подготовки к собеседованию. Здорово, что профессионалы делятся своими знаниями с начинающими.
@Rueslan
@Rueslan 6 ай бұрын
чувствую себя говнокодером...
@AndreyShyrokoriadov
@AndreyShyrokoriadov 6 ай бұрын
Самокритика - первый шаг к совершенству.
@user-mc2kn4uo8n
@user-mc2kn4uo8n 6 ай бұрын
Спасибо за видео! Единственное замечание: не называйте, пожалуйста, сервисы услугами. Каждый раз в голове приходится переводить это слово) Ни разу не слышал, чтобы где-то ещё слово "сервисы" заменялось на "услуги"
@user-ii9xe4pu6x
@user-ii9xe4pu6x 6 ай бұрын
Как-то всё очень сумбурно
@ForYouNegative
@ForYouNegative 7 ай бұрын
блин бро ток начал видос твой смотреть надеюсь поможет. стоит задачка реально тривиальная в коробку добавить свой модуль в котором просто отрисовывать картинку, но вот как работает маршрутизация не понятно, просто по классам если смотреть полная белеберда, смотрю в примеры и хочется выйти) Еще и коробкой все усложняется, тк отдает ссылки на картинки без расширения на скачивание, то есть в элементарное вью с тегом img уже с лета не воткнуть(.
@bananje2768
@bananje2768 7 ай бұрын
Спасибо большое за серию уроков! Снимите серию видео на тему DDD архитектуры с разбором проектирования домена, реализации доменных событий и прочего.
@faizulla5838
@faizulla5838 7 ай бұрын
Зачем общий клас и еще один в примере назвали ОДИНАКОВО? теперь не все понятно...хотябы workerClass2 ...
@AndreyShyrokoriadov
@AndreyShyrokoriadov 7 ай бұрын
О! Magic numbers пошли 😀
@faizulla5838
@faizulla5838 6 ай бұрын
@@AndreyShyrokoriadov при чем Магия? вы не ответили, можно second написать вместо 2ки .... не всегда удобно прописывать., ясно ... проскочили ))
@faizulla5838
@faizulla5838 7 ай бұрын
а че чел не может снимать свои видео в одной одежде??
@user-pi9cb7wb4e
@user-pi9cb7wb4e 7 ай бұрын
Андрей, добрый день! Не могу найти ссылку на Ваш гитхаб, где можно не найти? :)
@AndreyShyrokoriadov
@AndreyShyrokoriadov 7 ай бұрын
Пожалуйста. github.com/ashyrokoriadov