Последняя прочитанная мною книга была книга Влада В. Головача «Дизайн пользовательского интерфейса2 Искусство мыть слона». Сказать что она мне понравилась — это ничего не сказать. Во-первых, это лаконичный и содержательный материал, насыщенный примерами из богатого опыта автора. Во-вторых это умозаключения и выводы, которыми автор делится с читателем, и с позицией которого, я на сто процентов солидарен. Эту книгу, я советую каждому, кто в силу своей профессиональной деятельности, связан с проектированием пользовательских интерфейсов. К сожалению то, что является неотьемлемой частью успеха любого информационного продукта, а программное обеспечение, именно таковым и является, зачастую выпускается из виду программистами и дизайнерами, — дизайнерами, в силу …
Month: May 2010
Если вы работаете с командой php-разработчиков, то вы знаете как много кода они пишут, особенно если это высокопроизводительная команда разработчиков. программистам свойственно автоматизировать любой рутинный труд, поэтому и труд по контролю над кодом тоже понемногу автоматизируется. Самым полезным, для меня, оказался инструмент Copy/Paste Detector for PHP code. Как ясно из названия, этот инструмент используется для дублирующегося кода, ярым поборником которого я являюсь. Устанавливается он очень просто, как PEAR пакет: sb@ubuntu ~ % pear channel-discover pear.phpunit.de Adding Channel "pear.phpunit.de" succeeded Discovery of channel "pear.phpunit.de" succeeded sb@ubuntu ~ % pear channel-discover …
Еще один паттерн из группы порождающих – фабричный метод (factory method). Этот паттерн позволяет скрывать от клиента логику создания запрашиваемого объекта. Этот паттерн следует применять когда заранее неизвестно объекты каких классов должны быть созданы, поскольку предполагается множество различных вариантов работы, либо объекты, которые класс создает должны быть определены уже в подклассе. Пример применения паттерна на UML диаграмме: А вот, пример применения паттерна в коде, – класс создающий разные типы документов, из одинаковых составных частей: // IChapter.java package patterns.factorymethod.report; public interface …
Сегодня мы рассмотрим паттерн абстрактная фабрика, или фабрика, как его часто называют. Этот паттерн относится к группе порождающих и решает проблему создания группы объектов. Классический пример использования фабрики для предоставления приложению элементов интерфейса в зависимости от платформы. Например, приложение на linux будет создавать при помощи фабрики кнопки, поля и прочие элементы через фабрику, которая в свою очередь, по запросу будет возвращать элементы XWindows, а приложение на windows будет возвращать элементы win32. Таким образом программе становится не важна платформа, платформо-зависимая логика …
Предыдущий опыт показал что скриптовые языки не очень подходят для иллюстрации паттернов и дальше мы ограничились использованием ООП языков со строгой типизацией, так сказать, для большей наглядности. Сегодня речь пойдет о паттерне Строитель, предназначенного для конструирования объектов. Если процесс создания какого либо сложного объекта из составных имеет схожие этапы, имеет смысл описать единый алгоритм создания включающий в себя действия по созданию необходимого объекта. Вот как это выглядит в UML: В моем простом примере логика создания простой игровой карты выносится в класс строителя WorldBuilder, в котором реализовано два метода для создания пустого …