Архив рубрики ‘паттерны проектирования’ Category

Пример реализации Comet-техники на PHP

Четверг, Декабрь 13th, 2007

Переводить не стал, все достаточно понятно: http://www.zeitoun.net/index.php?2007/06/22/46-how-to-implement-comet-with-php

Рассмотрено 2 случая, в первом используется скрытый iframe, второй (небольшой чат)  основан на классическом AJAX-е, не возвращающем запрос.

Кто не в теме, про Comet см. предыдущий пост.

Вот и попался, мистер Гаррет Джесси Джеймс ;)

Среда, Декабрь 12th, 2007

С одной стороны — недавно узнал кто ввел в массы понятие AJAX — Джесси Джеймс Гаррет, с другой — недавно познакомился с нотацией Гаррета, которую как вы думаете кто придумал? … нет, не Пушкин. Гаррет! тот же самый Джесси Джеймс. Так к чему это я все… а к тому что иногда приятно когда разрозненные кирпичики складываются в единую картину и все встаёт по своим полочкам. В общем, окружили мы его с обоих флангов )))

ладно, работать надо

пардон

Интересный блог, есть информация по Ruby on Rails, AJAX, Mysql, PHP, JavaScript, ZendFrameWork

Среда, Июль 11th, 2007

http://kpumuk.info/

облако тегов:

active record administration advertisement ajax amazon ansi apache 2.2 benchmark blogging bmp books brainbench browsers caching capistrano category cheatsheet color conferences configuration console css debian debug deployment design dom effects encoding events experience ffmpeg filtering fixtures friends front controller fulltext geshi headers html http humor iframe images internet internet explorer javascript job last modified library life links locale mailer memcached mencoder microformats mock mongrel moo.fx multimedia mvc mysql news optimization patterns performance permalinks php plugin postgresql progress proximity rest resume rjs rspec rss ruby ruby on rails russian scalability screencast script search smarty sorting specification sphinx sql stemming style sub query svn syntax tech textmate theme twitter unittest upload validation video vt100 web 2.0 web services widget wordpress xml xslt zend framework zend studio

Какие запросы мешают вам использовать ORM?

Пятница, Март 30th, 2007

http://phpclub.ru/talk/showthread.php?s=&threadid=91066&perpage=10&pagenumber=1

Кто создал symfony и зачем?

Понедельник, Март 12th, 2007

Первая версия symfony была выпущена в октябре 2005-ого основателем проекта Фабьеном Потенсьером (Fabien Potencier). Fabien — гендиректор Sensio (http://www.sensio.com/), французкой веб-фирмы известной своими инновационными взглядами на веб-разработку. В 2003 году Фабьен изучил возможности существующих средств разработки приложений на PHP5, с открытым кодом. Ни одно из них не удовлетворяло перечисленным выше требованиям. Когда же появился PHP5, Фабьен решил что PHP созрел для написания полнофункционального фреймворка. Позже он потратил год на разработку ядра symfony, взяв в качестве основы MVC pattern, ORM Propel, и helper-ы из Ruby on Rails.

Изначально Фабьен разрабатывал symfony для Sensio. Это дало бы фирме преимущества, поскольку использование фреймворка в работе делает готовые проекты более надежными, а разработку приложений быстрой и интуитивно понятной. После успешного использования фреймворка в приложениях е-комерции и других проектах Фабьен решил сделать symfony проектом с открытым кодом. Он сделал это чтобы дать возможность другим людям пользоваться symfony, чтоб получить связь с пользователями фреймворка, чтоб поделится опытом Sensio, и потому что open sourсe это весело :)

http://www.symfony-project.com/trac/wiki/Documentation/ru_RU/introducting_symfony

Обзор паттернов проектирования

Воскресенье, Март 11th, 2007

«Каждый паттерн описывает некую повторяющуюся проблему и ключ к ее разгадке, причем таким образом, что этим ключом можно пользоваться при решении самых разнообразных задач».

Christopher Alexander

АННОТАЦИЯ
Данная работа представляет собой обзор нескольких наиболее значительных монографий, посвященных паттернам проектирования информационных систем. Материал оформлен в виде структурированного справочника, в который включены паттерны проектирования обьектов информационных систем, архитектурные системные паттерны и паттерны интеграции информационных систем. В справочнике приведены краткие описания паттернов проектирования, однако, несмотря на свою лаконичность, данные описания позволяют понять ключевые особенности каждого паттерна и успешно использовать его на практике.

http://www.citforum.ru/SE/project/pattern/index.shtml#toc

Оглавление

  • Аннотация
  • 1. Введение
  • 2. Принцип классификации паттернов проектирования
  • 3. Паттерны проектирования классов/обьектов
    • 3.1 Структурные паттерны проектирования классов/обьектов
      • 3.1.1 Адаптер (Adapter) — GoF
      • 3.1.2 Декоратор (Decorator) или Оболочка (Wrapper) — GoF
      • 3.1.3 Заместитель (Proxy) или Суррогат (Surrogate) — GoF
      • 3.1.4 Информационный эксперт (Information Expert)- GRASP
      • 3.1.5 Компоновщик (Composite) — GoF
      • 3.1.6 Мост (Bridge), Handle (описатель) или Тело (Body) — GoF
      • 3.1.7 Низкая связанность (Low Coupling) — GRASP
      • 3.1.8 Приспособленец (Flyweight) — GoF
      • 3.1.9 Устойчивый к изменениям (Protected Variations) — GRASP
      • 3.1.10 Фасад (Facade) — GoF
    • 3.2 Паттерны проектирования поведения классов/обьектов
      • 3.2.1 Интерпретатор (Interpreter ) — GoF
      • 3.2.2 Итератор (Iterator) или Курсор (Cursor) — GoF
      • 3.2.3 Команда (Command), Действие (Action) или Транзакция (Транзакция) — GoF
      • 3.2.4 Наблюдатель (Observer), Опубликовать — подписаться (Publish — Subscribe) или Delegation Event Model — GoF
      • 3.2.5 Не разговаривайте с неизвестными (Don’t talk to strangers) — GRASP
      • 3.2.6 Посетитель (Visitor) — GoF
      • 3.2.7 Посредник (Mediator) — GoF
      • 3.2.8 Состояние (State) — GoF
      • 3.2.9 Стратегия (Strategy) — GoF
      • 3.2.10 Хранитель (Memento) — GoF
      • 3.2.11 Цепочка обязанностей (Chain of Responsibility) — GoF
      • 3.2.12 Шаблонный метод (Template Method) — GoF
      • 3.2.13 Высокое зацепление (High Cohesion) — GRASP
      • 3.2.14 Контроллер (Controller) — GRASP
      • 3.2.15 Полиморфизм (Polymorphism) — GRASP
      • 3.2.16 Искусственный (Pure Fabrication) — GRASP
      • 3.2.17 Перенаправление (Indirection) — GRASP
    • 3.3 Порождающие паттерны проектирования
      • 3.3.1 Абстрактная фабрика (Abstract Factory, Factory), др. название Инструментарий (Kit) — GoF
      • 3.3.2 Одиночка (Singleton) — GoF
      • 3.3.3 Прототип (Prototype) — GoF
      • 3.3.4 Создатель экземпляров класса (Creator) — GRASP
      • 3.3.5 Строитель (Builder) — GoF
      • 3.3.6 (Фабричный метод) Factory Method или Виртуальный конструктор (Virtual Constructor) — GoF
  • 4 Архитектурные системные паттерны
    • 4.1 Структурные паттерны
      • 4.1.1 Репозиторий
      • 4.1.2 Клиент/сервер
      • 4.1.3 Обьектно — ориентированный, Модель предметной области (Domain Model), модуль таблицы (Data Mapper)
      • 4.1.4 Многоуровневая система (Layers) или абстрактная машина
      • 4.1.5 Потоки данных (конвейер или фильтр)
    • 4.2 Паттерны управления
      • 4.2.1 Паттерны централизованного управления
        • 4.2.1.1 Вызов — возврат (сценарий транзакции — частный случай).
        • 4.2.1.2 Диспетчер
      • 4.2.2 Паттерны управления, основанные на событиях
        • 4.2.2.1 Передача сообщений
        • 4.2.2.2 Управляемый прерываниями
      • 4.2.3 Паттерны, обеспечивающие взаимодействие с базой данных
        • 4.2.3.1 Активная запись (Active Record)
        • 4.2.3.2 Единица работы (Unit Of Work)
        • 4.2.3.3 Загрузка по требованию (Lazy Load)
        • 4.2.3.4 Коллекция обьектов (Identity Map)
        • 4.2.3.5 Множество записей (Record Set)
        • 4.2.3.6 Наследование с одной таблицей (Single Table Inheritance)
        • 4.2.3.7 Наследование с таблицами для каждого класса (Class Table Inheritance)
        • 4.2.3.8 Оптимистическая автономная блокировка (Optimistic Offline Lock)
        • 4.2.3.9 Отображение с помощью внешних ключей
        • 4.2.3.10 Отображение с помощью таблицы ассоциаций (Association Table Mapping)
        • 4.2.3.11 Пессимистическая автономная блокировка (Pessimistic Offline Lock)
        • 4.2.3.12 Поле идентификации (Identity Field)
        • 4.2.3.13 Преобразователь данных (Data Mapper)
        • 4.2.3.14 Cохранение сеанса на стороне клиента (Client Session State)
        • 4.2.3.15 Cохранение сеанса на стороне сервера (Server Session State)
        • 4.2.3.16 Шлюз записи данных (Row Data Gateway)
        • 4.2.3.17 Шлюз таблицы данных (Table Data Gateway)
  • 5 Паттерны интеграции корпоративных информационных систем
    • 5.1 Структурные паттерныны интеграции
      • 5.1.1 Взаимодействие «точка — точка»
      • 5.1.2 Взаимодействие «звезда» (интегрирующая среда)
      • 5.1.3 Смешанный способ взаимодействия
    • 5.2 Паттерны по методу интеграции
      • 5.2.1 Интеграция систем по данным (data-centric).
      • 5.2.2 Функционально-центрический (function-centric) подход.
      • 5.2.3 Объектно-центрический (object-centric).
      • 5.2.4 Интеграция на основе единой понятийной модели предметной области (concept-centric).
    • 5.3 Паттерны интеграции по типу обмена данными
      • 5.3.1 Файловый обмен
      • 5.3.2 Общая база данных
      • 5.3.3 Удаленный вызов процедур
      • 5.3.4 Обмен сообщениями
  • 6 Заключение
  • 7 Приложение: Словарь терминов
    • 7.1 Общие термины
    • 7.2 Термины паттернов проектирования объектов
    • 7.3 Термины архитектурных системных паттернов
    • 7.4 Термины паттернов интеграции
  • Литература