Паттерны проектирования
Чтобы избежать возможных проблем в архитектуре программ, разработчики придумали паттерны проектирования — концепции решения тех или иных проблем.
Этим паттерны отличаются от алгоритмов. Чтобы лучше понять разницу между понятиями, представьте алгоритмы как кулинарный рецепт с подробными шагами, а паттерн — как инженерный чертёж.
Делимся ресурсом, где подробно описаны все популярные паттерны проектирования:
https://tprg.ru/PqI3
#паттерны
Чтобы избежать возможных проблем в архитектуре программ, разработчики придумали паттерны проектирования — концепции решения тех или иных проблем.
Этим паттерны отличаются от алгоритмов. Чтобы лучше понять разницу между понятиями, представьте алгоритмы как кулинарный рецепт с подробными шагами, а паттерн — как инженерный чертёж.
Делимся ресурсом, где подробно описаны все популярные паттерны проектирования:
https://tprg.ru/PqI3
#паттерны
Что почитать: «Head First. Паттерны проектирования»
Программисты нередко решают одинаковые задачи и приходят к схожим решениям. Чтобы не реализовывать с нуля ту или иную функциональность, разработчики прибегают к готовым паттернам (шаблонам) проектирования.
Мы недавно уже рассказывали о ресурсе, на котором собраны популярные паттерны. Сегодня хотим порекомендовать книгу «Паттерны проектирования» из серии Head First.
Как и другие книги из серии, «Паттерны проектирования» непохожа на стандартный скучный учебник по программированию. Книга написана очень простым языком и содержит большое количество иллюстраций и подробных заметок по коду.
#паттерны #книги
Программисты нередко решают одинаковые задачи и приходят к схожим решениям. Чтобы не реализовывать с нуля ту или иную функциональность, разработчики прибегают к готовым паттернам (шаблонам) проектирования.
Мы недавно уже рассказывали о ресурсе, на котором собраны популярные паттерны. Сегодня хотим порекомендовать книгу «Паттерны проектирования» из серии Head First.
Как и другие книги из серии, «Паттерны проектирования» непохожа на стандартный скучный учебник по программированию. Книга написана очень простым языком и содержит большое количество иллюстраций и подробных заметок по коду.
#паттерны #книги
Шаблоны проектирования простым языком
Паттерны (шаблоны) проектирования призваны решить частые проблемы проектирования программ. Они не являются панацеей от всего, но в отдельных ситуациях помогают эффективнее решить проблему.
Серия статей познакомит с различными шаблонами:
1. Порождающие паттерны.
2. Структурные паттерны.
3. Поведенческие паттерны.
Кстати, все материалы по шаблонам проектирования вы можете найти по тегу #паттерны
Паттерны (шаблоны) проектирования призваны решить частые проблемы проектирования программ. Они не являются панацеей от всего, но в отдельных ситуациях помогают эффективнее решить проблему.
Серия статей познакомит с различными шаблонами:
1. Порождающие паттерны.
2. Структурные паттерны.
3. Поведенческие паттерны.
Кстати, все материалы по шаблонам проектирования вы можете найти по тегу #паттерны
Лекция по шаблонам проектирования и SOLID-принципам на C++
В первой части лекции объясняется, как применять шаблоны проектирования в виде базовых блоков архитектуры приложения на C++. Во второй части лектор демонстрирует практическое использование паттерна «Наблюдатель» (Observer):
https://youtu.be/ZLg13pHjbsk
#cpp #паттерны
В первой части лекции объясняется, как применять шаблоны проектирования в виде базовых блоков архитектуры приложения на C++. Во второй части лектор демонстрирует практическое использование паттерна «Наблюдатель» (Observer):
https://youtu.be/ZLg13pHjbsk
#cpp #паттерны
YouTube
Решение практических задач на C++ ➤ Шаблоны проектирования и SOLID принципы
З 10 до 17 жовтня діють великі знижки на універсальні пакети підписки із доступом до усіх відео курсів ITVDN. Обирай зараз! https://cutt.ly/VePXhEpm Промокод на скидку 15% на все курсы ITVDN- 4YOUTUBE
Полный видеокурс - https://itvdn.com/ru/video/cplspls…
Полный видеокурс - https://itvdn.com/ru/video/cplspls…
Умеете ли вы использовать паттерны проектирования в JavaScript?
Паттерны (или шаблоны) проектирования представляют собой готовые «рецепты», которые помогают программисту решать типовые задачи.
Всего за одно видео вы познакомитесь с 17 паттернами и их примерами реализации на JavaScript:
https://youtu.be/YJVj4XNASDk
#js #веб #паттерны
Паттерны (или шаблоны) проектирования представляют собой готовые «рецепты», которые помогают программисту решать типовые задачи.
Всего за одно видео вы познакомитесь с 17 паттернами и их примерами реализации на JavaScript:
https://youtu.be/YJVj4XNASDk
#js #веб #паттерны
Паттерны проектирования на C#
Из серии видео вы узнаете принципы популярных паттернов проектирования и их примеры реализации на .NET 6 в Visual Studio 2022:
1. Паттерн «Заместитель» (Proxy).
2. Паттерн «Стратегия» (Strategy).
3. Паттерн «Фабричный метод» (Factory method).
4. Паттерн «Строитель» (Builder).
#паттерны #csharp
Из серии видео вы узнаете принципы популярных паттернов проектирования и их примеры реализации на .NET 6 в Visual Studio 2022:
1. Паттерн «Заместитель» (Proxy).
2. Паттерн «Стратегия» (Strategy).
3. Паттерн «Фабричный метод» (Factory method).
4. Паттерн «Строитель» (Builder).
#паттерны #csharp
Бесплатный курс по паттернам и практикам написания кода
Делимся видеокурсом от команды AvitoTech, где ребята рассказали:
— как улучшить качество кода;
— как работать с исключениями;
— про полезные архитектуры и шаблоны проектирования.
Курс преподавался в Московском авиационном институте (МАИ) и будет полезен как начинающим, так и более опытным разработчикам.
Все видео курса доступны в плейлисте на YouTube.
#курсы #паттерны
Делимся видеокурсом от команды AvitoTech, где ребята рассказали:
— как улучшить качество кода;
— как работать с исключениями;
— про полезные архитектуры и шаблоны проектирования.
Курс преподавался в Московском авиационном институте (МАИ) и будет полезен как начинающим, так и более опытным разработчикам.
Все видео курса доступны в плейлисте на YouTube.
#курсы #паттерны
Паттерн проектирования «Декоратор» и его реализация на Java
Структурный паттерн «Декоратор» (Decorator) позволяет динамически добавлять объектам новую функциональность, и при этом не затрагиваются объекты этого же класса.
Подробнее узнать о паттерне и его возможной реализации на Java можно в статье:
https://javarush.ru/groups/posts/3833-pattern-proektirovanija-dekorator-s-primerami
#java #паттерны
Структурный паттерн «Декоратор» (Decorator) позволяет динамически добавлять объектам новую функциональность, и при этом не затрагиваются объекты этого же класса.
Подробнее узнать о паттерне и его возможной реализации на Java можно в статье:
https://javarush.ru/groups/posts/3833-pattern-proektirovanija-dekorator-s-primerami
#java #паттерны
Паттерн Сага: что это такое?
Многие сервисы используют собственные БД. Например, в крупных онлайн-магазинах «заказы», «пользователи» и «оплата» могут быть различными базами данных. Как же проверить прошла ли транзакция успешно или нет в таких случаях?
Для решения этой проблемы можно использовать паттерн Сага, который помогает обеспечивать согласованность данных и транзакций между микросервисами. Если транзакция завершилась неудачно, то сага выполняет компенсирующую транзакцию, которая откатывает изменения в БД, сделанные предыдущей локальной транзакцией.
Сага похожа на работу банкомата, который возвращает ответ при ошибки операции и отменяет её, а не просто списывает деньги с баланса.
Подробнее: https://tprg.ru/0aXE
#паттерны
Многие сервисы используют собственные БД. Например, в крупных онлайн-магазинах «заказы», «пользователи» и «оплата» могут быть различными базами данных. Как же проверить прошла ли транзакция успешно или нет в таких случаях?
Для решения этой проблемы можно использовать паттерн Сага, который помогает обеспечивать согласованность данных и транзакций между микросервисами. Если транзакция завершилась неудачно, то сага выполняет компенсирующую транзакцию, которая откатывает изменения в БД, сделанные предыдущей локальной транзакцией.
Сага похожа на работу банкомата, который возвращает ответ при ошибки операции и отменяет её, а не просто списывает деньги с баланса.
Подробнее: https://tprg.ru/0aXE
#паттерны
Паттерн Type Erasure или нестандартный полиморфизм
Type Erasure (Стирание типов) — современный паттерн, который позволяет избавиться от зависимостей и указателей при правильном применении в приложение. Как и другие паттерны, Type Erasure делает код более читаемым и улучшает производительность.
О том, как использовать данный паттерн в проекте — в статье:
https://habr.com/ru/post/706450/
#паттерны
Type Erasure (Стирание типов) — современный паттерн, который позволяет избавиться от зависимостей и указателей при правильном применении в приложение. Как и другие паттерны, Type Erasure делает код более читаемым и улучшает производительность.
О том, как использовать данный паттерн в проекте — в статье:
https://habr.com/ru/post/706450/
#паттерны
Forwarded from Сохранёнки программиста
Универсальные шпаргалки по паттернам проектирования
Сохраняйте подборку 23 коротких шпаргалок по паттернам проектирования GoF. В каждой — универсальная схема и очень краткое описание. Отлично подойдёт для зарисовки, распечатки или поверхностного изучения. Все картинки не прикрепляются, поэтому полный список можно найти в статье.
#подборка #шпаргалка #паттерны #ru
Сохраняйте подборку 23 коротких шпаргалок по паттернам проектирования GoF. В каждой — универсальная схема и очень краткое описание. Отлично подойдёт для зарисовки, распечатки или поверхностного изучения. Все картинки не прикрепляются, поэтому полный список можно найти в статье.
#подборка #шпаргалка #паттерны #ru
Forwarded from Zen of Python
Простыми словами: Паттерн «Одиночка»
Про «Фасад» поговорили. Теперь расскажу про другой популярный паттерн.
«Одиночка» (Singleton) полезен, когда необходимо гарантировать существование единственного экземпляра объекта в системе. Но использовать его следует с осторожностью. Хотя он полезен для управления ресурсами и обеспечения согласованности данных, это может привести к сложностям при тестировании и многопоточности. Каждое использование Singleton должно быть тщательно обосновано, чтобы избежать потенциальных проблем и антипаттернов.
#простымисловами #паттерны
Про «Фасад» поговорили. Теперь расскажу про другой популярный паттерн.
«Одиночка» (Singleton) полезен, когда необходимо гарантировать существование единственного экземпляра объекта в системе. Но использовать его следует с осторожностью. Хотя он полезен для управления ресурсами и обеспечения согласованности данных, это может привести к сложностям при тестировании и многопоточности. Каждое использование Singleton должно быть тщательно обосновано, чтобы избежать потенциальных проблем и антипаттернов.
#простымисловами #паттерны
Гайд по реализации паттерна Composite в Kotlin с sealed-классами и корутинами
Composite — это как универсальный интерфейс, который позволяет обращаться с составными и одиночными объектами одинаково. Вместо тысячи
Если у вас есть сложная система с кучей объектов — простых и составных — и вы хотите управлять ими, не теряя асинхронности, то этот гайд для вас.
https://habr.com/ru/companies/otus/articles/859176/
#kotlin #паттерны
Composite — это как универсальный интерфейс, который позволяет обращаться с составными и одиночными объектами одинаково. Вместо тысячи
if-else
можно получить довольно стройную иерархию, где всё просто: композиты содержат другие компоненты, а листья выполняют конкретную работу.Если у вас есть сложная система с кучей объектов — простых и составных — и вы хотите управлять ими, не теряя асинхронности, то этот гайд для вас.
https://habr.com/ru/companies/otus/articles/859176/
#kotlin #паттерны
Точка входа в программирование
Простыми словами: Паттерн «Одиночка» Про «Фасад» поговорили. Теперь расскажу про другой популярный паттерн. «Одиночка» (Singleton) полезен, когда необходимо гарантировать существование единственного экземпляра объекта в системе. Но использовать его следует…
Простыми словами Паттерн «Factory Method»
Продолжаем тему паттернов. Паттерн Factory Method упрощает создание различных объектов, избегая прямой зависимости от их классов. Он особенно полезен, когда вы работаете с семействами похожих объектов, которые могут изменяться или добавляться. Это повышает гибкость и делает проект более масштабируемым.
Подробнее о нём можно узнать в карточках.
#простымисловами #паттерны
Продолжаем тему паттернов. Паттерн Factory Method упрощает создание различных объектов, избегая прямой зависимости от их классов. Он особенно полезен, когда вы работаете с семействами похожих объектов, которые могут изменяться или добавляться. Это повышает гибкость и делает проект более масштабируемым.
Подробнее о нём можно узнать в карточках.
#простымисловами #паттерны
#простымисловами: Различия между MVC, MVP, MVVM, MVVM-C, и VIPER
Эти архитектурные паттерны являются одними из наиболее часто используемых при разработке приложений, как на платформах iOS, так и Android.
MVC (Model-View-Controller) — один из самых широко используемых архитектурных шаблонов. Он разделяет приложение на три основных компонента: модель (представляет данные и бизнес-логику), представление (отвечает за отображение интерфейса) и контроллер (действует как посредник между моделью и представлением).
MVP (Model-View-Presenter) отчасти похож на MVC, но имеет немного другой подход. В MVP посредником между моделью и представлением является презентер , а не контроллер. Презентер отвечает за обновление представления данными из модели и обработку пользовательского ввода и событий.
MVVM (Model-View-ViewModel) — архитектурный шаблон, набирающий популярность и используемый в приложениях со сложными пользовательскими интерфейсами. Он похож на MVP, но с добавлением модели представления (view model), которая отвечает за управление состоянием представления и за предоставление данных из модели в представление.
MVVM-C (Model-View-ViewModel-Coordinator) — это вариация MVVM, с добавлением координатора, который отвечает за управление навигацией между различными экранами или представлениями в приложении. Этот шаблон полезен для приложений, в которых есть несколько управляемых экранов или представлений.
VIPER (View-Interactor-Presenter-Entity-Router) — относительно новая архитектурный шаблон, который похож на MVC, но с добавлением нескольких новых компонентов, включая интерактор (отвечает за обработку бизнес-логики), сущность (представляет данные) и маршрутизатор (обрабатывает навигацию между различными экранами и представлениями).
#паттерны
Эти архитектурные паттерны являются одними из наиболее часто используемых при разработке приложений, как на платформах iOS, так и Android.
MVC (Model-View-Controller) — один из самых широко используемых архитектурных шаблонов. Он разделяет приложение на три основных компонента: модель (представляет данные и бизнес-логику), представление (отвечает за отображение интерфейса) и контроллер (действует как посредник между моделью и представлением).
MVP (Model-View-Presenter) отчасти похож на MVC, но имеет немного другой подход. В MVP посредником между моделью и представлением является презентер , а не контроллер. Презентер отвечает за обновление представления данными из модели и обработку пользовательского ввода и событий.
MVVM (Model-View-ViewModel) — архитектурный шаблон, набирающий популярность и используемый в приложениях со сложными пользовательскими интерфейсами. Он похож на MVP, но с добавлением модели представления (view model), которая отвечает за управление состоянием представления и за предоставление данных из модели в представление.
MVVM-C (Model-View-ViewModel-Coordinator) — это вариация MVVM, с добавлением координатора, который отвечает за управление навигацией между различными экранами или представлениями в приложении. Этот шаблон полезен для приложений, в которых есть несколько управляемых экранов или представлений.
VIPER (View-Interactor-Presenter-Entity-Router) — относительно новая архитектурный шаблон, который похож на MVC, но с добавлением нескольких новых компонентов, включая интерактор (отвечает за обработку бизнес-логики), сущность (представляет данные) и маршрутизатор (обрабатывает навигацию между различными экранами и представлениями).
#паттерны
Упаковка булевых значений в битах
Структура данных bitset — это способ эффективно представлять множество целых индексов, которое к тому же поддерживает различные операции над ним, например объединение, разность, пересечение. Паттерн упаковки данных таким способом часто используется в разработке игр.
В этой статье подробно разобран принцип работы этого паттерн на примере работы с юнитами.
#паттерны #gamedev #cpp
Структура данных bitset — это способ эффективно представлять множество целых индексов, которое к тому же поддерживает различные операции над ним, например объединение, разность, пересечение. Паттерн упаковки данных таким способом часто используется в разработке игр.
В этой статье подробно разобран принцип работы этого паттерн на примере работы с юнитами.
#паттерны #gamedev #cpp