Хочу поделится очередным велосипедом собственной сборки на С++. Велосипед умеет быстро создавать и выдавать объекты. В результате получаем скорость создания (не отдачи) объектов на 30% быстрее чем просто с new. Объектный пул — вещь не новая, и в общем — чего о нем и говорить то. Но как говорится — главное в деталях.
Читать полностью »
Рубрика «паттерны проектирования» - 6
Объектный пул и быстрое создание объектов в куче
2013-12-09 в 17:55, admin, рубрики: c++, stl, велосипеды, ооп, паттерны проектирования, С++, с++11, метки: stl, велосипеды, паттерны проектирования, С++, с++11Паттерн «VIP слушатель»
2013-11-12 в 19:31, admin, рубрики: паттерны проектирования, Проектирование и рефакторинг, метки: c++, паттерны проектирования Признаюсь честно, описание этого паттерна мне не встречалось, соответственно его название я выдумал. Если у кого есть информация о правильном названии, буду очень рад услышать. Паттерн не привязан к языку но в данной статье я буду использовать C#
.
Картинка для привлечения внимания:
.NET и паттерны проектирования
2013-09-02 в 20:00, admin, рубрики: .net, паттерны проектирования, шаблоны проектирования, метки: .net, c++, паттерны проектирования, шаблоны проектированияШаблон проектирования или паттерн — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.
Кажется, это определение мы слышали тысячу раз… Помимо знания терминов и паттернов интересно знать, как они применяются в реальных проектах.
В статье я рассмотрю несколько наиболее популярных паттернов используемых в .NET. Некоторые из них глубоко интегрированы в инфраструктуру .NET, в то время как другие просто применяются при проектировании базовых классов в BCL.
Паттернам проектирования посвящен не один десяток книг, но одна книга стоит особняком и это знаменитая книга «Банды четырех». Поэтому для большего понимания ситуации я буду приводить небольшое описание из этой книги.
Читать полностью »
Паттерн Стратегия на Javascript
2013-08-27 в 11:08, admin, рубрики: design pattern, design patterns, javascript, pattern, patterns, ооп, паттерн стратегия, паттерны, паттерны проектирования, Программирование, Стратегия От переводчика:
Я собрался изучить новый для меня паттерн Стратегия, но не нашёл толкового русского описания его реализации на javascript. Статья на wiki пугает своей сложностью, а наглядность примера оставляет желать лучшего. По этому и взялся за перевод этой статьи, одновременно разбираясь, что же из себя представляет данный паттерн.
Спойлеры и текст, выделенный серым, являются моими комментариями.
Далее мы разберём примеры того, как я использую СТРАТЕГИЮ в Javascript, и как он используется реальной библиотекой, для разбиения её на небольшие части.
Паттерны проектирования без ООП
2013-06-21 в 10:15, admin, рубрики: python, паттерны проектирования, функциональное программирование, метки: python, паттерны проектирования, функциональное программированиеВо времена, когда я писал на Лиспе и совсем не был знаком с ООП, я пытался найти паттерны проектирования, которые мог бы применить у себя в коде. И всё время натыкался на какие-то жуткие схемы классов. В итоге сделал вывод, что эти паттерны в функциональном программировании не применимы.
Теперь я пишу на Питоне и с ООП знаком. И паттерны мне теперь намного понятней. Но меня по-прежнему воротит от развесистых схем классов. Многие паттерны прекрасно работают в функциональной парадигме. Опишу несколько примеров.Читать полностью »
Шаблон проектирования «Спецификация»
2013-03-04 в 13:11, admin, рубрики: .net, DDD, Анализ и проектирование систем, паттерны проектирования, Проектирование и рефакторинг, спецификация, метки: DDD, паттерны проектирования, спецификацияПредпринимая попытки постичь DDD вы наверняка натолкнетесь на этот паттерн, который часто тесно используется вместе с другим, не менее интересным, паттерном «Репозиторий». Этот паттерн предоставляет возможность описывать требования к бизнес-объектам, и затем использовать их (и их композиции) для фильтрации не дублируя запросы.
Пример
Давайте для примера спроектируем домен для простого группового чата: у нас будут три сущности: Группа и Пользователь, между которыми связь многие-ко-многим (один пользователь может находиться в разных группах, в группе может быть несколько пользователей) и Message представляющий собой сообщение, которое пользователь может написать в какой-либо группе:
Читать полностью »
Зачем нужны паттерны ООП?
2013-02-25 в 8:13, admin, рубрики: design patterns, обучение программированию, ооп, паттерны проектирования, Программирование, Учебный процесс в IT, шаблоны проектирования, школа, метки: design patterns, обучение программированию, паттерны проектирования, шаблоны проектирования, школаЭта статья — попытка ответить на вопрос 11-летнего олимпиадника: «Зачем нужны паттерны?» Ещё не отправил, выношу на общий суд и прошу любой критики. Цель — не дать исчерпывающий ответ, а вызвать новые вопросы.
Итак
Как учат программированию в школе? Вам дают формочки и учат делать куличики из песка. Это хорошо, надо ведь с чего-то начинать.Читать полностью »
Управление в стиле ООП
2013-02-18 в 4:16, admin, рубрики: архитектура, ооп, паттерны проектирования, Совершенный код, управление проектами, метки: архитектура, ооп, паттерны проектирования, управление проектамиЛюбому приличному программисту известно, что грамотно написанная система должна иметь хорошую архитектуру, обеспечивающую чёткую структуру, удачное сочетание и взаимодействие объектов, чётко распределённые между объектами роли и разделение на слои.
Каждый приличный руководитель проекта знает, что для успешного, сданного в срок проекта хорошего качества (который, к тому же, не слишком вылез из бюджета) необходим отлаженный процесс, обеспечивающий прозрачное взаимодействие между членами команды, чёткое распределение ролей и обязанностей, полномочий и ответственности. Т.е. грамотная архитектура команды.
В этой статье я (очевидно, не слишком серьёзно) попробую спроецировать основные принципы ООП на проектное управление и посмотреть, что из этого получится.
ACL: в поисках идеального решения
2013-01-05 в 23:44, admin, рубрики: acl, mvc, Анализ и проектирование систем, паттерны, паттерны проектирования, Программирование, Совершенный код, метки: acl, mvc, паттерны, паттерны проектированияНовый проект. В очередной раз пришлось решать проблему с разграничением прав. В очередной раз пришлось изобретать велосипед. Вот я и подумал, а не проще ли разобраться с этой проблемой раз и навсегда. Предыдущий проект был на PHP, следующий будет на NodeJS. Поэтому хочу решить задачу «на бумаге», чтобы эти принципы можно было использовать независимо от технологии. Читать полностью »
Active Object Pattern: Повышаем производительность многопоточной системы
2012-10-21 в 4:54, admin, рубрики: c++, параллельное программирование, паттерны проектирования, Программирование, метки: параллельное программирование, паттерны проектирования, Программирование Параллельные алгоритмы направлены на ускорение работы приложения за счет распределения задач на разные потоки. Такой подход действительно дает существенное преимущество перед линейным выполнением задач. Но в некоторых случая можно реально ускорить параллельный код!
Читать полностью »