Posts Tagged ‘ООП’

UP. Полномасштабная разработка проекта

Пятница, Октябрь 10th, 2008

Чего-то сегодня не спится совершенно… Возможно это тот самый знак, которого я так долго ждал? А знак мне нужен был, что бы решиться начать серию статей на основе реальной разработки проекта средних масштабов. Но не просто разработке в общем смысле этого слова, и даже не о разработке на основе Zend Framework, Doctrine ORM и пр. и пр., а о разработке начиная с постановки задачи, анализа и проектирования (с необходимой степенью глубины), поиска решений и реализации.
И раз уж первый абзац уже набран, то смысла останавливаться не вижу :) Приглашаю всех поучаствовать в процессе, который будет проходить на основе UP.
(more…)

ООП для ООП: GRASP

Четверг, Август 28th, 2008

GRASP - General Responsibility Assignment Software Patterns (основные шаблоны распределения обязанностей в программном обеспечении)

Когда речь заходит о термине “ООП”, все непременно подразумевают Объектно-Ориентированное Программирование, но сегодня речь пойдет не о нем. Почти. Сегодня я бы хотел рассказать о принципах Объектно-Ориентированного Проектирования, а в частности о шаблонах GRAPS и области их применения. (more…)

PHP Doctrine и большие проекты

Понедельник, Июнь 23rd, 2008

…и еще немного о работе :)

Опробовав Doctrine на двух довольно больших проектах (они еще не закончены слава богу), могу сделать следующие выводы (ИМО):

  • считать что этот ORM реализует бизнес-логику - глупо
  • автор Doctrine разрабатывал продукт под нужды небольших проектов и команд
  • описывать таблицы из кода - очень неудобно
  • …так же как и связи
  • поднять оценку до 3 из 5 для Doctrine можно было бы реализовав setter’ы и getter’ы защищенными
  • …и связи между таблицами тоже
  • LSB очень не хватает :(

дружественные классы в PHP

Понедельник, Апрель 7th, 2008

заметка, как продолжение статьи о методах доступа в PHP.

Как известно, в C++, кроме основных трех методов доступа к методам и свойствам классов, есть еще так называемые “дружественные классы” — классы, которым дозволено обращаться к любым методам и свойствам класса, указанного как друга. В PHP данной возможности к сожалению нет, а она так часто бывает необходимой… Зачем оно надо? Например, когда Вам надо создать экземпляр класса, реализующий возможность установки свойств через __set, но при этом Вы хотите свойства указывать более высокоуровневыми свойствами, нежели прямым воздействием на объект. Тогда можно было бы объявить метод __set protected и не заморачиваться, но что, если __set - унаследован от базового класса и объявлен как public? тогда поможет грязный хак :) (more…)

права доступа к свойствам и методам

Четверг, Февраль 28th, 2008

Права доступа к свойствам и методам — это на первый взгляд всего лишь три слова: privat, protected и public. Но что скрывается за ними? Какие преимущества это дает в разработке? И как их правильно использовать? Здесь, как и во всех других аспектах программрования, без практики не разобраться…

Одна из трех основных концепций ООП — наследование (другие две: инкапсуляция и полиморфизм). Вобзем-то именно для нее и были реализованы права доступов. Основаная идея наследования: Дочерний объект, при наследовании (extend) родителя перенимает себе все родительские методы и свойства, а так же может обзавестись своими собственными. Понимая эту базу, можно перейти в всему что находится ниже… (more…)

некоторые вкусности JavaScript

Четверг, Январь 31st, 2008

Начиная пользоваться Javascript, каждый разработчик учиться делать alert() и setTimeout(), а что делает с Javascript “продвинутый” разработчик? Постараемся рассмотреть аспекты, которые позволяют делать код гибче и удобочитаемее… (more…)

Nested Sets

Понедельник, Январь 14th, 2008

В очередной раз столкнулся с ситуацией, когда данный алгоритм просто жизненно необходим и снова столкнулся с тем, что из предложенного в Сети нет ничего рабочего под PHP :( (more…)

рефакторинг и немного +

Вторник, Июль 31st, 2007

хочу спрогнозировать некоторые изменения в базовом классе… + появится два новых класса для создания более качественных объектных решений на их основе, а так же будет подготовлена некоторая статья по практике применения паттернов проектирования и ООП в целом… осталось дождаться свободного времени :)