codaza - это канал о разработке на платформе .NET. Говорим о ⚡ C#, ASP.NET Core, Unit-тестировании, SOLID, паттернах и о многом другом. Рассматриваются актуальные подходы и современные методологии применяемые в web-разработке. Подписывайтесь, здесь интересно 😊
Вы уж меня извините, но мне, как джависту, это всё звучит как то ну очень странно. Если ты используешь какой то метод, тогда это метод какого то объекта и ты используешь либо композицию, либо агрегацию. А вот от этого всего становится больно, очень больно. Что это вообще такое и зачем?) Разве это не нарушает всё, что возможно?
Обожаю таких людей, которые на широкую аудиторию способны объяснить, казалось бы, сложные вещи понятным языком, донося саму суть происходящего. Если бы так в школе или универе объясняли, а то обычно дают какую - то бесполезную замудренную херню, непонятно зачем и как это применять. Ролик шикарный!
Здесь важно понимать, что билдер в основном нужен именно, когда объект иммутабельный и полей много. Тогда сетеры ты не сделаешь, а конструкторов нужно много, на все возможные комбинации параметров, вот в чём дело. Пример может быть любой, пример с бургером вполне себе неплохой.
Что мешает в switch выражение поместить создание сразу необходимого membership? В два раза меньше кода, в два раза меньше классов. С таким же успехом можно еще нагородить генераторы фабрик для создания продуктов, а потом генераторы генераторов... Формально построение паттерна вы объяснили, но ваш пример использования может ввести в заблуждение новичка, что в будущем вызовет трудности применения.
В видео же специально несколько раз повторялось "Тут может быть сложная логика, которая будет отличаться". Если в обучающем ролике сразу городить эти различия, то новичку как раз будет сложно в этом разобраться и в голове будет каша. Тут главное донести саму суть работы паттерна
Автор молодец, что подобынй паттерн озвучивает. Но не сказано о главном смысле подобного паттерна - каждая стратегия это набор уникального поведения. У каждой из стратегий могут быть участки, которые повторяются и в других стратегиях, но все равно уникальная комбинация действий. Именно стратегия позволяет держать код чистым не держа один код с бесконечным количество if else. Пример до конца не раскрывает суть паттерна, а просто выглядит, как абстракция класса Оружие. Вот если бы автор показал, что в зависимости от передаваемого оружия Сквидвара делает разный набор действий - то было бы правильно. А так это просто интерфейс и все.
Очень качественный контент, мне 29, работаю первый год, свитчер из околоинженерной темы. Нашла ваши видео категорически полезными. Благодарю и желаю удачи
Оч тяжелый пример для восприятия. Как можно догадаться что свойство типа делегата в методе старт оформляется как метод а не как свойство? Блин и регистрация метода через свойство-метод при помощи присвоения метода без "()" указания что это метод и не понять что это такое вообще. Какой то нетипичный пример из начального обьяснения. Повторить не повторишь после просмотра ибо нетипично намудренно перемудренно
Добрый день. Я хочу сделать сервис который дергает эндпоинты по умолчанию localhost:7130/health => Healthy. Без json, то эндпоинт возвращает одно слово. Но когда я предаю этот эндпоинт у меня выходит ошибка "'H' is an invalid start of a value. Path: $ | LineNumber: 0 | BytePositionInLine: 0." я понимаю, что healthchek пытается десерилизовать слово и у него не получается. есть ли какая либо опция для исправления данной ситуации?
Патерн выглядит очень громоздким и нагруженным, только не понятно ради чего это все стоит затевать, если тот же SwitchCase может порождать любой вариант - абонемент экземпляр класса по нажатию кнопки, без этой всей этой химеры 😪
Можно было добавить еще один важный момент в примере с игрушками. Даже если в PlayWithToy передать toy по значению (не по ссылке) и закомментировать 19 строчку кода(создание нового объекта Toy на heap), то CreateToy вернет Пятачка.
А зачем он нужен, если деградирует по скорости до n^2 в худшем случае, плюс неустойчив, требует доп. памяти как и слиянием, и придуман позже сортировки слиянием...? Да, еще требует отдельного алгоритма поиска опорного элемента.
Спасибо, полезно, однако стоит заметить, что для больших проектов с большим количеством разработчиков хранилище секретов лучше использовать общее на всех, например, Vault by HashiCorp
Хорошая работа, однако я бы предпочел более простой пример для введения (без директора), т.к. это немного усложняет понимание в принципе простого конструкта