В этой статье хочу рассказать о своем методе реализации шаблона проектирования “Registry“ на PHP. Если кратко о шаблоне — это алгоритм, с помощью которого можно хранить переменные в одном месте. Про этот шаблон можно почитать, например, здесь. От себя же хочу добавить, что этот шаблон очень хорошо идет в связке с шаблоном “Facade“.
Читать полностью »
Рубрика «patterns» - 5
Шаблон проектирования „Registry“ на PHP
2013-01-20 в 15:04, admin, рубрики: patterns, php, Registry, singleton, метки: patterns, PHP, Registry, singletonСтроим прочный прозрачный frontend
2013-01-11 в 8:59, admin, рубрики: html, javascript, optimization, patterns, web, Веб-разработка, Проектирование и рефакторинг, метки: html, javascript, optimization, patterns, web, ооп, фронтендВ автомобиле, если нет сидения, то двигатель будет работать всё равно, а если двигатель сломается, то ручной тормоз от этого не пострадает. Это большая система независящих друг от друга модулей, которая продолжает работать после отказа одного из них и позволяет быстро определять проблемный модуль. Водителю же, в идеале, нет необходимости знать, как устроен мотор или тормоз, каждый модуль предоставляет ему простой интерфейс, такой, например, как педаль газа или кнопка включения фар.
В последующем тексте мы рассмотрим вариант абстракции над HTML кодом, который упрощает разработку и поддержку похожим принципом, благодаря слабым связям и модульности. Такой подход успешно используется автором в двух долгосрочных проектах, один из которых — сервис интернет-банкинга.
Читать полностью »
Ruby Science: руководство по созданию качественных приложений на Ruby on Rails от thoughtbot
2012-12-13 в 22:29, admin, рубрики: best practices, patterns, ruby, ruby on rails, метки: best practices, patterns, ruby, ruby on railsthoughtbot (с маленькой буквы) — одна из ведущих американских консалтинговых фирм, ориентированных на веб разработку с помощью Ruby on Rails. thoughtbot эксплуатирует распространенную в этой среде бизнес-модель, и зарабатывает не только за счет консалтинга, но и за счет своих больших вкладов в Open Source, активного участия в жизни сообщества (например, подкаст Giant Robots Smashing into Other Giant Robots), образовательной деятельности (воркшопы, менторство), внутренних продуктов и литературы.
На их счету до сегодняшнего дня числилось две полноценных книги: The Playbook — исчерпывающий справочник по внутреннему распорядку и трудовым хитростям thoughtbot (бесплатна для изучения на их сайте), и Backbone.js on Rails — не менее исчерпывающее руководство по использованию JS фреймворка Backbone вместе с Ruby on Rails.
Интересна особенность их подхода к публикации книг. Это не статичный труд, написанный однажды, напечатанный на бумаге и устаревающий с годами, а продукт, поддерживающий версионность, развивающийся под влиянием читателей и сопровождающийся различными электронными плюшками, в том числе и готовым к использованию кодом примеров. «Исходники» книги хранятся на github, а это значит, что в любой момент читатель имеет возможность получить самый свежий релиз, сообщить о проблеме, обсудить какую-либо часть текста и т.п.
Сегодня они объявили о начале работы над новой книгой, под названием «Ruby Science. The reference for writing fantastic Rails applications». Более того, начать чтение книги и принять участие в её развитии можно уже сейчас.
Читать полностью »
В панель администрирования Windows Azure добавлена возможность управления сервисами Service Bus
2012-10-08 в 8:30, admin, рубрики: patterns, windows azure, Блог компании Microsoft, Облачные вычисления, метки: patterns, windows azureХорошие новости! Новая панель администрирования Windows Azure на базе HTML5 постоянно совершенствуется и сегодня в ней были добавлены функции управления сервисной шиной Service Bus.
Пользователи могут создавать новые элементы сервисов Windows Azure Service Bus, такие как очереди, темы и подписки, новые пространства имен.
Читать полностью »
Шпаргалка по MV-паттернам для проектирования веб-приложений
2012-09-11 в 0:59, admin, рубрики: amd, hmvc, mvc, mvp, mvvm, patterns, web, Веб-разработка, паттерны, шпаргалка, метки: amd, hmvc, mvc, mvp, mvvm, patterns, web, паттерны, шпаргалка
В Интернет можно найти множество различающихся реализаций и схем, уже набившего оскомину, паттерна MVC. В разных книгах я также встречал разные схемы. Это порождает некоторую путаницу и комментарии к моей предыдущей статье: "Реализация MVC паттерна на примере создания сайта-визитки на PHP" тому подтверждение. В поисках истины, я попытался расставить все по местам… перечитал некоторую литературу и статьи по паттернам проектирования и написал дополнение к упомянутой статье. Но решил запостить это дополнение, как отдельный топик в надежде на фидбэк. Под катом вы найдете несколько часто встречающихся схем MVC и MVP с описанием жизненного цикла приложения, а также описание менее популярных паттернов HMVC, MVVM и схемы AMD (Asynchronous Module Definition), которая актуальна для клиент-сайд приложений. Разумеется, некоторые из перечисленных паттернов применимы не только к веб-приложениям, но в статье они рассматриваются именно в этом контексте.
Читать полностью »
MVC умер, пришло время MOVE
2012-09-06 в 23:56, admin, рубрики: move, mvc, patterns, ПрограммированиеMVC феноменальная идея. У вас есть модели, которые самостоятельные кусочки состояний, представления которые самостоятельные кусочки UI, и контроллеры которые самостоятельные кусочки…
Что?
Я конечно не первый кто это замечает, но проблема с MVC как данность, в том что вы пихаете слишком много кода в контроллеры.
Чтобы исправить это, я использую новый паттерн: MOVE. Models, Operations, Views и Events.
Читать полностью »
Реализация шаблона проектирования «Наблюдатель» на С++
2012-08-31 в 11:29, admin, рубрики: c++, class, Events, Observer, patterns, templates, Песочница, метки: c++, class, Events, Observer, patterns, templatesВведение
«Наблюдатель» (observer) – один из часто используемых шаблонов (паттернов) проектирования. Также известен как «подчинённые» (dependents) и «издатель-подписчик» (publisher-subscriber). Определяет зависимость типа «один ко многим» между объектами таким образом, что при возникновении некоторого события в одном из объектов, все объекты, подписавшиеся на оповещения об этом событии, извещаются о его возникновении.
Реализация паттерна Компоновщик (Composite pattern) на php
2012-08-14 в 13:15, admin, рубрики: patterns, php, метки: patterns, PHPВведение
На определенной стадии изучения серверного программирования мне захотелось написать свой простенький фреймворк. Я рассчитывал, что это поможет более глубоко понять идеологию MVC и Zend Framework в частности. Когда дело дошло до части представления и генерации html я вспомнил о паттерне Компоновщик (Composite pattern). Возможно я несколько исказил его применение, но мысль пошла оттуда.
Читать полностью »
Три возраста паттерна Singleton
2012-07-08 в 19:16, admin, рубрики: c plus plus, c++, patterns, singleton, метки: c plus plus, c++, patterns, singletonПаттерн Singleton появился, пожалуй, как только появились статичные объекты. В Smalltalk-80 так был сделан ChangeSet, а чуть в самых разных библиотеках стали появляться сессии, статусы и тому подобные объекты, которых объединяло одно — они должны были быть одни-единственные на всю программу.
В 1994 году вышла известная книга «Паттерны проектирования», представив публике, среди 22-х прочих, и нашего героя, которого теперь назвали Singleton. Была там и его реализация на C++, вот такая:
Читать полностью »
Ruby on Rails + simple javascript patternization
2012-07-06 в 10:45, admin, рубрики: javascript, patterns, ruby on rails, Веб-разработка, метки: javascript, patterns, ruby on rails Я уже давно разрабатываю приложения используя haml и coffee script. Всячески стараюсь избегать случаев написание pure javascript кода, html или erb. К хорошему быстро привыкают.
Ruby on Rails ругают за низкую производительность, отчасти это правда, отчасти не все возможности оптимизации поддались постижению. В любом случае,
Views: 490.9ms | ActiveRecord: 14.4ms
выглядит печально и хабраэффекта я не переживу. Как раз настал момент рефакторинга, кода вопрос производительности встал ребром.
Решение лежало в области ejs.
Читать полностью »