<rmcreative>

RSS
  1. Тонкие и толстые модели

    4 апреля 2011

    1. Толстые модели можно охватить модульными тестами. С тонкими придётся писать ещё и функциональные.
    2. Реализацию метода толстой модели легко подменить. Для меня это основной аргумент (хотя часто и я ленюсь). Например, есть у нас модели в системе, использующие Active Record:
    class MyThinModel extends CActiveRecord
    {}

    В большинстве случаев вызывают их в контроллерах как-то так:

    $criteria = new CDbCriteria();
    $criteria->compare('used', 1);
    $models = MyThinModel::model()->findAll($criteria);

    А теперь представим, что проект у нас вырос до приличных нагрузок и кэш с оптимизацией запросов не помогают. Что теперь делать? Приходится перекраивать хранилище на какой-нибудь быстрый key-value, например, тот же Redis. Вот только проблема есть… проект очень завязан на SQL-ный Active Record и программист, посмотрев на всё это дело, принимает популярное решение «переделать с нуля». А ведь можно было этого избежать (ну или хотя-бы сгладить эффект), если бы изначально использовались толстые модели:

    class MyThinModel extends CActiveRecord
    {
        public function getAllUsed()
        {
            $criteria = new CDbCriteria();
            $criteria->compare('used', 1);
            return self::model()->findAll($criteria);
        }
    }

    Ну и в контроллере:

    $models = MyThinModel::model()->getAllUsed();

    В этом случае переписать необходимо будет только getAllUsed.

    30 комментариев
  2. Правила хорошего тона в «Фотошопе»

    30 марта 2011

    Хороший набор правил работы в Photoshop, позволяющий свести проблемы вроде «мне надо вот ту надпись поменять, а тут слой слит» или «и как мне нарезать из этого ужатого JPEG нормальный фон» к минимуму.

    Правила написаны не на пустом месте и действительно актуальны.

    Читаем и даём ссылку дизайнерам

    5 комментариев
  3. Yii 1.1.7

    29 марта 2011

    На днях вышел релиз 1.1.7 PHP-фреймворка Yii, в который было включено более 90 исправленных ошибок, улучшений и новых возможностей.

    Полный список изменений доступен на сайте фреймворка, самые вкусные из которых мы рассмотрим ниже.

    Читаем

    32 комментария
  4. Productivity guide в IDE от JetBrains

    27 марта 2011

    Будучи на CodeFest открыл для себя productivity guide, который встроен во все IDE от JetBrains. Вызывается он по Help → Productivity Guide и показывает статистику по использованию разных полезных функций и их описание.

    Оказывается, при разработке Yii я ни разу не пользовался introduce variable, звёздочками при переходе к файлам и классам, а также кучей других полезных возможностей.

    3 комментария
  5. CodeFest 2011, впечатления

    27 марта 2011

    CodeFest 2011 удался.

    Читаем

    16 комментариев
  6. JavaScript Гарден на русском

    25 марта 2011

    Хороший перевод отличного руководства по самым занятным особенностям JavaScript. Настоятельно рекомендуется как новичкам в языке, так и тем, кто уже с ним плотно работает.

    Читаем, добавляем в закладки и перечитываем перед сном

    Отдельного внимания заслуживает оформление документа: цвета, шрифты и навигация замечательны.

    4 комментария
  7. Какой PHP фреймворк вы используете и почему?

    23 марта 2011

    На хабре появился довольно интересный опрос с обсуждением на горячую тему. Ответы немного удивили:

    • Yii на втором месте после Zend Framework. Думал, там будет Symfony или CodeIgniter.
    • Очень многие выбрали «самописный фреймворк». Дело, конечно, хорошее. Опыт наберётся быстро. Но для работодателя коммерчески невыгодно. Конечно, если задачи очень специфичны, вроде создания игр, то свой фреймворк может быть оправданным решением.
    • Подавляющее большинство «пишет на PHP, но не использует фреймворки». То ли лапшекодеров на хабре много, то ли все делают игры… не ясно.

    Обсуждаем и голосуем

    58 комментариев
  8. Firefox 4

    22 марта 2011

    Конечно, такого же энтузиазма, что вызывает каждая новая версия IE, фоксу не видать, но не упомянуть данный факт нельзя. Вышел FF4. Что же мы получили:

    • Новый интерфейс, расположили табы над адресной строкой. Мне, как постоянному пользователю Opera он показался знакомым. Наверное, это к лучшему. Выглядит приятно.
    • Включили по умолчанию Opera Link Firefox Sync.
    • Вкладку можно закрепить как приложение. Опять же, привет, Opera.
    • Panorama. Гибрид Opera Speed Dial с табами.
    • Небольшой набор теперь несовместимых плагинов (основное всё на месте).
    • Скорость и аппаратное ускорение.
    • HTML5, CSS Transitions, HTML5 Forms API, Audio Data API, HTML History API.
    • И другое

    Вообще, несмотря на небольшое количество того, чего нет у конкурентов, релиз хороший. Заимствования сделаны очень неплохо.

    Релиз уже можно забрать через автообновление, ну или взять с официального сайта.

    UPD:

    24 комментария
  9. Internet Explorer 9

    15 марта 2011

    Вышел релиз IE9, над которым очень хорошо потрудились:

    • Новый, более быстрый, JavaScript-движок.
    • Аппаратное ускорение рендеринга.
    • Частичная поддержка HTML5 и CSS3, Canvas, SVG.
    • Понимает цветовые профили при отображении картинок.
    • и др.

    Пока в Windows Update девятая версия ещё не попала, так что есть время посмотреть, всё ли хорошо в ваших проектах и, если что, привести всё в нормальный вид.

    UPD: неплохой обзор изменений

    15 комментариев
  10. Делегация OpenID Google и редиректы

    14 марта 2011

    В ноябре прошлого года я писал про делегирование OpenID Google. Недавно, как я узнал из блога Ивана Сагалаева, Google поменял URL профиля, служившего также идентификатором пользователя. Как следствие OpenID отвалился.

    Несмотря на то, что на тему неудачности OpenID в целом ведётся много разговоров и не только разговоров, на некоторых отличных сервисах, вроде StackOverflow, OpenID остаётся единственным способом авторизации, так что ситуацию надо исправлять. Исправление заключается лишь в прописывании нового URL профиля вместо старого. В итоге это будет выглядеть так:

    <link rel="openid2.provider" href="https://www.google.com/accounts/o8/ud?source=profiles" />
    <link rel="openid2.local_id" href="https://profiles.google.com/u/0/ваш_id" />

    Проверить работоспособность можно, например, на этой странице.

    8 комментариев