Архив рубрики 'Технологии'

Выбор фреймворка

Технологии Оставь комментарий »

Продолжаем выбор фреймворка… Ознакомившись с отличиями PHP5 от PHP4 сделал вывод, что необходимо наложить чёткое ограничение на фреймворк – отсутствие поддержки PHP4.

Ограничение кажется небольшим, но в действительности оно очень существенно.

В PHP5 наконец-то реализована нормальная поддержка объектно-ориентированного программирования и поэтому всё, что поддерживает PHP4 – заведомо вчерашний день и совершенно другой уровень программирования. К сожалению, и PHP5 не позволяет создать по настоящему профессиональную CMS, но разработка CMS на Phyton или на Java пока не входит в наши планы по причине нераспространённости виртуальных хостингов с поддержкой этих языков. А покупку выделенного сервера потянет далеко не всякая компания.

Поэтому останавливаемся на PHP5.

Смотрим самые свежие данные по существующим фреймворкам. И видим всего два подходящих варианта фреймворков Zend Framework и Simphony.

На основе прочитаных материалов у меня сложилось следующее мнение. Для Symphony есть отличная документация, но скорость его работы относительно невысока. К тому же многие жалуются на трудности при его изучении (которые возможно возникают из-за того, что Symphony использует PHP5, непонятный программистам, которые работали только на PHP4).

В то же время Zend Framework вроде бы обеспечивает возможность использования только части своих модулей, в результате чего фактически есть возможность реализовать свой фреймворк. Сравнения по скорости для Zend Framework я не нашёл, но видел негативные отзывы по его глючности. Хотя отзывы были давнишние, возможно сейчас много чего исправлено.

Думаю, что пойду следующим путём… Изучу всю документацию по Symphony и уже на её основе приму решение об использовании фреймворка. На данный момент мне кажется, что всё-таки придётся делать что-то своё на основе Symphony и Zend Framework.

Ссылки:

Тестирование фреймворков.

Сходные размышления о фреймворках.

Восторги по поводу Sympony и Zend Framework.

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

Сервисы, Технологии 1 »

От сервисов мне требовалось уведомление по email о недоступности сайта, а эта возможность есть на всех сервисах. Остальной функционал меня не очень волновал, поэтому сравнение будет проводиться по частоте проверок, количеству сайтов и стоимости.

Больше всего меня интересовала стоимость проверки трёх сайтов через каждые пять минут (3 x 5) в месяц.

  1. https://site24×7.com/
    Предоставляет наглядную статистику, быстро информирует по email о возникающих проблемах.
    Бесплатно: 2 x 60
    3 х 5 : $12
  2. http://host-tracker.com/
    Есть поддержка русского языка, что несомненно является плюсом. Отправляет уведомления на почту, аську, gtalk, sms. Дает возможность мониторить до 2-х сайтов с интервалом 30 минут, используя при этом методы GET и HEAD. Рассылает еженедельные, ежемесячные, ежеквартальные отчеты. Предоставляет информер, который можно повесить на сайте. Доступны также платные услуги, начиная с $4.33. Не все хостинги дают этому сервису себя мониторить.
    Бесплатно: 2 x 30
    3 х 10 : $4.99
  3. http://www.siteuptime.com/
    Предоставляет мониторинг одного сайта с интервалом 30/60 минут. Уведомления по почте, ежемесячные отчеты. Поддерживает протоколы http, pop3, smtp, ftp.
    Бесплатно: 1 x 30
    3 х 5 : $5
  4. http://www.serviceuptime.com/
    Позволяет мониторить большое количество разных сервисов и даже задать номер порта самостоятельно.
    Бесплатно: 1 x 30
    3 х 5 : $5
  5. http://www.hyperspin.com/
    Богатый набор поддерживаемых сервисов, уведомления по email, интервал мониторинга – 60 минут. Платные тарифные планы – от $2.
    3 x 5 : $9
  6. http://basicstate.com/
    Абсолютно бесплатный сервис, который выполняет проверку каждые 15 минут, уведомляет о даунтайме по почте или смс, предоставляет ежедневные отчеты.
    Бесплатно: any x 15
  7. http://www.uptimeauditor.com/
    Бесплатно: нет
    3 x 5 : $7
  8. Mon.itor.us
    Web 2.0 в действии. Куча возможностей по опросу (HTTP, HTTPS, FTP, SIP,IMAP, SMTP, POP3 на любом порту, любой TCP или UDP порт, DNS, Ping) и отчетности, мониторинг из 3х точек, опрос каждые 30-45 минут, предупреждния высылаются на e-mail, ICQ, YIM, MSN, GTalk, телефон. Можно скачать и установить агента (пока только под Windows), который помимо мониторинга процессов, памяти и жестких дисков самой машины может выступать в роли еще одной точки опроса (пока только HTTP и Ping).
    Бесплатно: 3 x 30
  9. http://www.internetseer.com/
    Бесплатно: 1 x 60
    3 x 5: $45
  10. http://www.netmon.com/
    3 x 5: $30

Резюмируем.

Все сайты на поддержке можно загнать в систему BasicState, чтобы контролировать их аптайм с 15-ти минутной точностью.

Среди платных нашлось два подходящих сервиса. После их тщательного изучения обнаружилось, что ServiceUptime, кроме HEAD-проверки, позволяет осуществлять GET-проверку сайта, т.е. контролировать содержимое страницы. Это нужно, в случае если вместо вашего сайта хостер выдаёт свою страницу с сообещнием о том, что ведутся работы. Обычная HEAD-проверка покажет, что всё в порядке. Неисправность обнаружит только GET-проверка.

Но вот незадача, для оплаты сервиса нужно зарегистрироваться на 2checkout.com, и мало того, что там регистрация платная, так ещё и у них возникают вопросы к российским карточкам.

В результате единственный оставшийся вариант - host-tracker.com, где можно заплатить по web-money.

Архитектура MVC

Технологии Оставь комментарий »

После непродолжительного изучения определил для себя суть архитектуры Model-View-Controller. Тенденция здесь такая же, как и при вёрстке в XML, т.е. отделение данных (model) от представления (view). И поскольку MVC применяется для интерактивных приложений, добавляется ещё один элемент – контроллер (controller), который обрабатывает данные от пользователя и инициирует реакцию модели и представления.

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

Вот, пожалуй, наиболее удачное из найденных мною, объяснений сущности MVC:

——————————————-

Модель (Model)

Модель представляет собой данные, с которыми оперирует приложение. Это могут быть как данные базы данных, так и любая другая структура данных описывающая некоторые объекты системы и их состояние.

Вид (View)

Вид представляет собой компонент системы для отображения состояния модели в понятном человеку представлении. Это могут быть диалоги, формы и другие визуальные и не визуальные (например, синтезатор речи) средства взаимодействия человека с системой. Вид не изменяет данные напрямую (режим только чтение), данные изменяются при помощи контроллера.

Контроллер (Controller)

Контроллер является средством, при помощи которого пользователи взаимодействуют с системой. Это может быть клавиатура, манипулятор мышь и т. д. А также является управляющим элементом для обмена данными и сообщениями между видом и моделью.

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

Модель не зависит ни от вида, ни от контроллера, что позволяет одновременно строить различные интерфейсы пользователя для взаимодействия с одной и той же моделью данных.

——————————————-

В nSite CMS в данный момент выделяются три типа представлений:

  1. Списки объектов
  2. Редактирование свойств объекта
  3. Сервисные функции (настройки системы, рассылка и т.п.)

Вот эти представления мы и будем проектировать по архитектуре MVC.

Для понимания архитектуры были использованы следующие источники:

  1. Википедия
  2. Сергей Бердачук. Eclipse RCP. Файловый менеджер
  3. MVC для начинающих
  4. Триада MVC в действии
  5. Разработка встроенных приложений с использованием eSWT

Model-view-controller

Технологии Оставь комментарий »

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

Задача: разобраться в архитектуре MVC (Modell View Controller), которая используется в большинстве PHP-фреймворков. Её выбрали IBM и Zend, так что имеет смысл в первую очередь обратить внимание на ней.

В ЖЖ было небольшое обсуждение современных фреймворков, на основании которого я и пришёл к выводу ближе познакомиться с MVC и возможно подобрать фреймворк для nSite.

Сейчас в nSite используется очень похожая на MVC модель, так что переход не будет сложным, скорее он придаст системе ещё больше упорядоченности и понятности.

Изучение MVC начну со страницы на Википедии и пойду дальше по ссылкам.

Система контроля версий

Программы, Технологии Оставь комментарий »

Система контроля версий нужна, чтобы в разрабоке nSite CMS могло участвовать больше одного человека. И чтобы этим людям можно было не сидеть в одном офисе – нужно использовать сервер с системой контроля версий.

На сегодня самой популярной и одной из самых продвинутых является система Subversion. Вот её мы и будем использовать.

К сожалению, на виртуальных хостингах установка системы Subversion недоступна. Поэтому придётся использовать специализированный Subversion-сервер: subversion.ru.

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