Удобно пользоваться уже готовыми событиями из каких-нибудь сторонних библиотек, Boost.Signals например. Но если тебя ограничивают лишь стандартом, то приходится выдумывать свой велосипед, так как механизм событий в C++ стандартом не поддерживается.
понедельник, 2 апреля 2012 г.
среда, 28 марта 2012 г.
Экспорт в XML
Казалось бы, что такое XML уже давно известно. Да и не такая это сложная технология.
Но тем не менее, если вы когда-нибудь будете проектировать экспорт чего-либо в XML, то позаботьтесь об пользователе вашего экспорта. Как говорится, одно неверное движение, и импорт из вашей разметки будет не таким простым, как может показаться на первый взгляд.
В этом посте я решил собрать правила, придерживаясь которых, можно значительно упростить импорт ваших данных из XML.
Но тем не менее, если вы когда-нибудь будете проектировать экспорт чего-либо в XML, то позаботьтесь об пользователе вашего экспорта. Как говорится, одно неверное движение, и импорт из вашей разметки будет не таким простым, как может показаться на первый взгляд.
В этом посте я решил собрать правила, придерживаясь которых, можно значительно упростить импорт ваших данных из XML.
понедельник, 5 марта 2012 г.
Доступно о SOLID
Не так давно, около месяца назад, я сделал небольшой доклад, посвященный SOLID, для своих коллег. Объяснить, что это такое оказалось не совсем тривиальным делом. Поэтому, я думаю, многим моя публикация окажется полезной. В этом посте я попытался собрать самые простые и понятные объяснения по каждому принципу.
Ярлыки:
архитектура,
дизайн,
спецификация,
ISP,
LSP,
OCP,
SOLID,
SRP
вторник, 28 февраля 2012 г.
MVC, ее двуликая Модель и шаблон Команда
Многие при разработке настольного приложения, имеющего более менее сложный графический интерфейс, используют MVC. Если приложение должно иметь еще и Undo/Redo функционал, то вам прямая дорога к использованию шаблона Команда.
Первая же сложность, с которой сталкивается разработчик в такой ситуации, как правильно использовать обе практики вместе. В интернете не то, чтобы полно, но есть примеры, как органично встроить Команду в MVC.
Но обо всем по порядку.
Первая же сложность, с которой сталкивается разработчик в такой ситуации, как правильно использовать обе практики вместе. В интернете не то, чтобы полно, но есть примеры, как органично встроить Команду в MVC.
Но обо всем по порядку.
Ярлыки:
архитектура,
дизайн,
команда,
шаблонный метод,
C#,
ISP,
MVC
воскресенье, 29 января 2012 г.
Принцип инверсии зависимости
Принцип инверсии зависимости (DIP) впервые был определен Робертом Мартином около 15ти лет назад и содержит два утверждения:
- Модули верхних уровней не должны зависеть от модулей нижних уровней. Модули обоих уровней должны зависеть от абстракций.
- Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Подписаться на:
Сообщения (Atom)