Posts Tagged ‘ООА’

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

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

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

ООП для ООП: GRASP

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

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

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

Перечисления в PHP

Понедельник, Июль 7th, 2008

Часто ли вам приходилось сожалето о том, что в PHP нет перечислений как таковых?

Да, кто-то обходился конвенцией именования и получалось нечто вроде:

define( 'COLOR_RED', 'F00' );
define( 'COLOR_GREEN', '0F0' );
define( 'COLOR_BLUE', '00F' );

Или нечто вроде:

// данную переменную ЗАПРЕЩЕНО модифицировать
$colors = array(
    'red' => 'F00',
    'green' => '0F0',
    'blue' => '00F',
);

Но оба подхода имеют существенные недостатки:

  • В первом случае члены перечисления не образуют явной группировки
  • Во втором случае есть риск что переменная будет изменена
  • И в обоих этих случаях мы не можем делать проверку на тип переменной (type hinting)

Под катом предлагаю решение без вышеописанных недостатков…
(more…)

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

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

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

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

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

пути в переменных

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

если хранить в переменно путь, то что считать идеологически верным - использовать завершающий слеш или нет? я склонен предполагать что завершающий слеш оставлять не надо и в итоге будем иметь:
если храним в константе путь, к примеру, к каталогу тимплейтов, то везде где мы будем его использовать литеральная часть будет вести от своего корня (”/” = root).
Пример:

TEMPLATE_DIR."/some/path/from/tpl/root/file.tpl";

или пофик?..