Обновить
60
Сергей Стоцкий@serjoga

Tech Lead

2
Подписчики
Отправить сообщение
Придумайте лучше. Думаю все только «ЗА»=)
ООП — всего лишь способ мыслить. Можно взять тот же brainfuck и написать статью, что я не понимаю его. Есть так же АОП, с ним все хорошо? Напишите топик и на эту тему, можно будет продолжить холивар.
Все исходит из сценариев использования (обычно называется спецификацией, ТЗ, таской, фичей и т.д.). Ибо система объектов, которые делают ненужные вещи никому ненужна.

В конце концов Вы все переводите в объекты (классы), потому как это дает возможность делегировать обязанности на определенные логические и структурированные части кода
Систему на много проще проектировать в контексте объектов (а не данных и методов, которые будут их обрабатывать). На много проще расширять систему построенную на объектах и определенных связях ибо у каждого свои обязанности. Тот же смысл, что и в жизни.

А на счет собак:
>> теперь было непонятно, следует ли собаке самой себя выгуливать, или для этого нужен специальный ВыгулМенеджер

менеджер для выгуливания нужен, если в нем есть (или будет) смысл. А собака может и сама прогуливаться, ведь живут как-то бездомные собаки=)

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

А статью считаю бредовой отчасти, такое ощущение что у автора накипело просто.
goto — выше «добра» и «зла» ;)
возможность автоматически генерировать первоначальный пароль для пользователя или в качестве такого брать номер телефона


Поле пароля можно убрать в настройках. Пользователь всегда регистрируется после заказа (почему бы и нет, если информация о нем все равно попадает в данные о заказе)
О возможностях здесь писать нет смысла. По скольку основное отличие в том, что в 0 Step Checkout на один шаг меньше чем в остальных. Я сделал небольшой обзор расширений с максимальной, минимальной и средней ценой. И хотел акцентировать внимание на недостатках существующих решений и причине почему создание нового расширения являлось актуальным
а форму доставки и оплаты можно просто убрать и все останется рабочим
есть возможность настроить чекаут только для одной страны, тогда не будут отображаться поля выбора страны и региона
В данном случае вызов объекта захардкодженый. Register по сути выполняет работу некого кэша (на один http запрос). Где Вы видели, чтобы драйвер кэша был захардкоджен?
Почему бы явно не положить объект в реестр?
$record = $someResponsibleObject->getRegister()->get(10);
if (!$record) {
     $record = $repository->findByPk(10);
     $someResponsibleObject->getRegister()->add($record->getId(), $record);
}


Зачем мешать логику реестра и ектив рекорд? Будут потом проблемы с тестированием;
А если хотите вызывать $user->getArticles() создайте свойство $_articles;
public function getArticles() {
     if (!$this->_articles) {
          $this->_articles = parent::getArticles();
     }
     return $this->_articles;
}
ИМХО если Вам нужен IdentityMap, то у Вас проблемы в архитектуре приложения. Не понимаю зачем люди плодят название, если это по сути патерн Register…

Рекомендую почитать: «Патерны Проектирования» Гамма Эрик

Вы скрывает логику в защищенном методе, последующее поведение экземпляра класса не очевидно.
Не такой уж сложный. Думаю сложнее настроить сервер под него. А для PHP под Windows есть Denwer и т.д. Скачал установил и начинай писать
echo "Hello world";
Как минимум выбросить слово Abstract. zfDbAdapter
Обычно в начале любой книге по программированию написано, что имена переменных должны быть максимально краткими и нести максимальную смысловую нагрузку.
Почему-то никто не пишет
$product_That_Need_To_Be_Added_To_Shopping_Cart = ....;

Я конечно утрирую, но смысл тот же
Никто не запрещает делать логическую структуру директорий и при этом использовать короткие имена классов.
К примеру Symfony 1.x, каждый плагин имеет свой префикс (обычно 2 символа) и свою директорию.
И найти все получается достаточно просто.
Согласен, но все равно не удобно. Имея grep я за «пару секунд» узнаю к какому модулю относится класс.
Интересуюсь, так как есть вероятность, что у Вас есть своя идея
Ясно.

Подскажите пожалуйста как быть если нужно изменить поведение блока? Например, в админке добавить кнопку Export Products на странице где выводятся продукты
Очень поверхностно. Почему не сравнили метод перезаписи и обсервера?
Минусы, плюсы? Как быть с блоками событий там на много меньше чем в моделях.
Написали что какие параметры передаются, но вместо того чтобы использовать response из события, вы обратились к фронт контроллеру. Почему?

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Зарегистрирован
Активность