Тёмный

Шаблоны разработки ПО. Шаблоны GRASP 

Sergey Nemchinskiy
Подписаться 360 тыс.
Просмотров 31 тыс.
50% 1

Шаблоны разработки ПО. (Design patterns).Шаблоны GRASP
Повторение предыдущего курса для другой группы. Более сжато и надеюсь не менее информативно.
Весь плей-лист: • Шаблоны разработки ПО....
Обучение Wordpress Developer bit.ly/2TNZtCA
Обучение Solidity developer bit.ly/2AqLny5
Сайт учебного центра: bit.ly/2IlVIPq

Опубликовано:

 

20 окт 2013

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 30   
@yuriymykytenko2931
@yuriymykytenko2931 8 лет назад
Пересмотрел почти все Ваши лекции. Лекции про паттерны одни из самых лучших, если не самые лучшие. Рассказ про соль программирования. Рассказать об этом может только тот, кто съел ее много...
@senegal8bit824
@senegal8bit824 3 месяца назад
кайф, спасибо!
@dayoff8863
@dayoff8863 2 года назад
04:24 - Information Expert 13:52 - Creator 19:41 - Controller 27:20 - Low Coupling 41:30 - Polymorphism
@pashakretsu8951
@pashakretsu8951 7 лет назад
Периодически просматриваю курс по паттернам и хочу сказать БОЛЬШОЕ СПАСИБО за четкостью и доступность лекций. Спасибо Вам Сергей что делитесь знаниями в столь-доступном формате
@ilnurryazhapov9377
@ilnurryazhapov9377 4 года назад
Все что откопал на ютубе нормального это вот этот курс, лайк!
@telmertemp1284
@telmertemp1284 7 лет назад
Огромное Спасибо за лекцию!
@andyrudi
@andyrudi 8 лет назад
Классная лекция! Рассказано живо и с глубоким пониманием (возможных) проблем на практике!
@user-sx7fj1ln3c
@user-sx7fj1ln3c 6 лет назад
Очень хорошо объясняете. Спасибо большое!
@romantsyupryk3009
@romantsyupryk3009 4 года назад
Thanks so much for this video tutorial.
@gor6821
@gor6821 10 лет назад
С нетерпением жду продолжения.
@zisoua
@zisoua 3 года назад
2008 - да наверно сейчас просматривается с ностальгией, и как тренинг читался и как слушался - уже наверно зубатые лиды, а тогда просто прознавали паттерны )
@Fateslav
@Fateslav 5 лет назад
19:00 я против формулировки того, что класс должен отвечать только за одно. Попробуем смоделировать кота - он может кушать, прыгать, охотиться. Или современный телефон: он умеет звонить, запускать приложения, снимать на камеру и т.п. Это не противоречит ни принципам clean, ни принципам OOD. Там формулировка другая: класс должен иметь только одну причину для изменения. Или: нужно объединять единицы функционала, которые изменяются по одним причинам и разъединять функционалы, которые меняются по разным причинам
@gru74ik
@gru74ik 7 лет назад
32:17 Насчёт объектов типа "Helper", aka "Утилитный класс". 33:26 А почему не использовать паттерн "Декоратор"? Например, как вот тут как раз про строки человек объясняет: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-tipsMlJK6ek.html
@user-dn8yk9wq7c
@user-dn8yk9wq7c 2 года назад
про потоки в Controller подходит объяснение только для многопоточных языков, для PHP это не актуально например.
@KulaGGin
@KulaGGin 2 года назад
1:04:00 "Для того, чтобы провести хороший рефакторинг чужого сложного и запущенного кода..." Нужно написать end-to-end, integration и unit тесты на весь этот кринж, и переписать весь этот кринж, используя TDD(вначале опираясь только на end-to-end, integration и unit тесты кринж кода, а потом все больше опираясь на свои unit, integration и end-to-end тесты, написанные при переписываниии кода с использованием методологии TDD), Clean Code и Clean Architecture Дяди Боба. А потом рефакторить как хошь. В конце получаешь чистый протестированный код, написанный при помощи методологии TDD, который точно работает правильно, и ты это знаешь. И все остальные это знают. А тем, кто не знают и не верят, ты можешь доказать это без слов при помощи сети автоматизированных тестов в течение нескольких секунд.
@user-ig1pt5pl9l
@user-ig1pt5pl9l 8 лет назад
а можно попросить Вас сбросить предлагаемый слушателям реферат по шаблонам. совершенно не хочется прерываться на конспектирование, уж очень интересно рассказываете.
@user-ig1pt5pl9l
@user-ig1pt5pl9l 8 лет назад
спасибо.
@EshkinKot1980
@EshkinKot1980 5 лет назад
Мне вот интересно, вы сами то представляете кусок кода весом в 300 МиБ, тем более индусского?
@rijen42
@rijen42 9 лет назад
А можно поподробнее про интерфейсы? Допустим у меня есть класс(NetworkEnvironment), который в зависимости от входящих параметров инициализируется с теми или иными переменными окружения. Его наследует интерфейс аторизации пользователя. Интерфейс реализуют два класса. Например UserSQL и UserNoSql Кто собственно выбирает какую из реализаций использовать? Судя по картинке, этим занимается интерфейс, но для этого в нём должен быть реализован тот же свич, что нереально.
@rijen42
@rijen42 9 лет назад
* Интерфейс пользователя классы должны выбираться на основании наименования окружения, определенного в NetworkEnvironment
@DenisG631
@DenisG631 9 лет назад
Спасибо большое за видео. Очень познавательно и интересно, однако как мне кажется, кроме УМЛ Диаграмм не было бы лишним показывать код (правильный/не правильный)
@Lecker9419
@Lecker9419 9 лет назад
***** согласен с Денисом , отличное видео но с кодом всегда понятнее о чём конкретно идёт речь. Спасибо.
@gor6821
@gor6821 10 лет назад
Мне кажется, Марк Симан в своей книге "Внедрение зависимостей в .NET" паттерн Creator назвал главным антипаттерном для DI/IoC под названием Control Freak и призвал всячески избегать его. Смысл в том, чтобы вынести все зависимости (создание и внедрение объектов ) на верх иерархии в Composition Root ,например, в ASP.NET MVC это фабрика контроллеров. И там, используя контейнер DI/IoC создавать и внедрять зависимости. Сергей, что Вы об этом думаете?
@gor6821
@gor6821 10 лет назад
***** Я ввел Вас в заблуждение дотнетом. Это имеет такое же отношение и к Java. Вот пример. На уровне бизнес-логики нам нужно использовать объект из уровня доступа к данным. Исходя из шаблона Creator и собственной логики, мы создаем объект и используем его. Но вот незадача - уровень доступа к данным делает Ваш сосед и он не готов. Да и протестировать наш объект не очень получается. Так вот Марк Симан советует создать объект из уровня доступа к данным где-нибудь в Main() ака Composition Root, и внедрить этот объект ,например, через конструктор в наш объект бизнес логики. Теперь и отсутствие уровня доступа к данным не мешает и вообще полный TDD. На самом деле и объект бизнес-логики создается в Main(), чтобы разорвать связь с уровнем UI. Кстати созданием и уничтожением объектов в таком случае должен заниматься контейнер DI/IoC. Похоже, что постепенно некоторые паттерны отмирают. Еще недавно Фаулер говорил о Service Locator и вот Симан его объявляет антипаттерном. То есть выходит, что и Service Locator и Dependency Injection являются подмножествами Inversion of Control, но SL по отношению к DI является антипаттерном. Может я книжек перечитал?
@stepanenkostanislav5877
@stepanenkostanislav5877 7 лет назад
Service Locator действительно является в некотором роде антипаттерном, тк он по сути своей God object и позволяет создавать кучу зависимостей в одном классе, нарушая при этом инкапсуляцию. Конечно этого можно избежать строго передав зависимости в конструктор класса, но сама возможность такого поворота событий и делает его антипаттерном. Возвращаясь к первому вопросу, шаблон Creator по моему субъективному мнению он помогает указать (особенно в сущностях ORM), кто за кого отвечает. Таким образом четко проводятся границы ответственности между классами, не позволяя (по соглашению, конечно) создавать экземпляры по всему приложения без логически связанных классов.
@user-mg7kr4rd1l
@user-mg7kr4rd1l 7 лет назад
Нет, вы молодец
@user-cn4el1uc3i
@user-cn4el1uc3i 6 лет назад
Все замечательно. Спасибо огромное, но Cohesion произносится не так. Ухо режет...
@unclebob7037
@unclebob7037 7 лет назад
почему то старые лекции по этой же теме больше нравятся, хотя там информацию и хуже видно
@unclebob7037
@unclebob7037 7 лет назад
нет, в том то и дело что формально подача материала в новых видео как минимум не хуже, но в старых лекциях вы больше учитель, а в новых больше преподаватель. в старых вам интересен процесс обучения учеников(вы в процессе, потоке, возможно это и от студентов зависит), в новых появилось ощущение рутины и усталости некоторой, это влияет на легкость усвоение и просмотра лекций. в старых лекциях вам процесс был в удовольствие в большей степени, рассказали шаблон и смотрите на скрипение в мозгах у студентов, а в новых вы говорите - я понимаю что вам трудно. старые, пока только 2 серии посмотрел, они как сериал на одном дыхании смотрятся как любимый сериал. в любом случае лучше ваших лекций я не видел
@unclebob7037
@unclebob7037 7 лет назад
а есть платные лекции по другим темам? в смысле не тренинги а именно standalone записи? где смотреть информацию? на email писать?
Далее
Чистка пляжа с золотом
00:49
Просмотров 345 тыс.
Введение в шаблоны GRASP
1:13:20
Просмотров 22 тыс.
Чего ожидать от HTTP/3 + Go
51:07
Просмотров 7 тыс.
Чистка пляжа с золотом
00:49
Просмотров 345 тыс.