• Проблема, из-за которой Ваш сайт обязательно когда-нибудь остановится, как это произошло с нашим
  • 2 приёма, применённые нами, позволившие не только запустить сайт снова, но и получить дополнительные значительные выгоды
  • Реальные примеры построение классов,  ускорившие наши скрипты в 60-240 раз, и облегчившие дальнейшую разработку сайта в разы

Нажмите Play, чтобы начать просмотр

Связанные записи

Share →

8 Responses to Как фантастически увеличить скорость скриптов и уменьшить количество ошибок

  1. Такие вещи надо как-то предельно, даже вырожденно просто рассказвать наверное. Потому, что все равно получается как дзен или карате какое-нибудь. Только мастер может вот так все разбить на классики и оно почему-то будет работать. Либо продраться с кровью и потерями через мессиво, пробы-ошибки.

    Необходимо заметить также, что такой рефакторинг мессива в классы может быть достаточно долгим и в конце может оказаться, что рефакторить надо еще раз.

    Каждый девелопер думает, что он умный, но через год может сказать, что год назад он был непростительно глуп. Это я к тому, что все зависит от того получалось ли раньше все задизайнить хорошо или нет. Если нет, то процесс познания будет не быстрым.

    ТимплейтМетод… мда… забыл, что это так называется 🙂 и опять же из видео не очень понятно что это за зверь. Пришлось сходить почитать
    http://ru.wikipedia.org/wiki/Template_method

    чтобы понять, несмотря на то, что я это использую сплошь и рядом.

    Насчет массивов в качестве параметорв. Я не люблю phpdoc, при хорошем именовании классов вроде Pear, и правильных названиях методов он не очень нужен, однако я всегда пишу коммент, какую структуру ждет класс на вход и чего возвращает на выходе.

    вот прямо из редактора 🙂

    //——————————————————-
    protected function getAction()
    {
    /*returns
    array(‘path’ => ‘/path/to/class’, ‘class’ => ‘controllerClass’, ‘params’ => array(…),

    ‘position’ => array(‘type’ => ‘command’, ‘action’ => ‘filemanager’,
    ‘dispatched’ => ‘/admin/filemanager’, ‘toDispatch’=> ‘/my/pictures’)
    //or
    ‘position’ => array(‘type’ => ‘module’, ‘model’ => ‘car’, ‘action’ => ‘edit’,
    ‘dispatched’ => ‘/admin/catalogue/car/1’, ‘toDispatch’=> »)
    );
    */

    return $this->dispatcher->getAction($this->pathToDispatch);
    }

    И еще.

    Можно пойти еще дальше фабрик. Наверное вы видели, как я люблю ссылаться на свой перевод доки к Phemto. Если не читали, посмотрите:
    http://h-type.com/filez/lj/articles/di/

  2. Вот еще что хотел написать, как отдельный коммент.

    Помните первый постинг про MVC? Там вы говорили, что контроллеры как кубики взаимодействуют друг с другом. НО обычно контроллер вытаскивает данные оперирует с моделью и вызывает рендер. И вот как раз в этих операциях маленькие кубики это совсем не контроллеры. Это модель. Вот эти вот $purchase->getCustomer()->isCompany() и есть модель.

    И это очень крутая абстракция. Действительно позволяет иметь язык близкий к бизнес-логике. А уж что там сыграет когда Вы скажете customer->save(), файл, SQL, или ORM, уже детали.

  3. admin:

    Да, я говорю именно про модель, а не про контроллеры. Верно.

    А что касается переделки, то блоки очень и очень просто переделать. В этом еще одна их прелесть.

    И они мало связаны между собой. Это тоже очень хорошо.

    Про Phemto почитаю чуть позже еще раз прочитаю, т.к. с первого раза не въехал 🙂

  4. admin:

    Прочитал, но показалось слишком наворочено. Надо что-то более простое, как мне кажется.
    Слишком смахивает на ORM

  5. 278+120 строчек всего.

    а концепция IoC, конечно требует осознания, но гибкость дает круче фабрик.

    так, что монстрячности, свойственной ORM там нет.

    Боюсь, что проще трудно будет придумать, учитывая предмет вопроса.

    ORM все-таки вы все равно рано или поздно себе сделаете — сама работа с моделью будет вас толкать к обобщению классов модели. Просто не будете гнаться за крутой общностью и построением запросов взамен SQL. А там глядишь общий класс для сохранения объекта, общий класс для объектов связанных один-ко многим. Без особой универсальности, но что-то такое у вас само вырастет, если еще не.

  6. Соврал. есть еще один файл на 68 строчек 🙂

  7. admin:

    ORM точно не сделаем. это я могу обещать со всей серьезностью

  8. Все комментарии похерились после установки плагина 🙁

Добавить комментарий