Pull to refresh

Стандарты качества разработки веб-сайтов на PHP

От себя:
Я работаю php-программистом и меня интересуют вопросы качества разработки. Я сторонник ООП и Zend Framework в частности. В последнее время заинтересовался Ruby on Rails. Для себя я составил тезисы, которым стараюсь следовать, что получается не всегда. Некоторые принципы позаимствованы из Rails, некоторые в конторе, в которой я работаю, но в основном, мои наработки.
Приветствую комментарии, возможно какие-то из них дополнят мои стандарты. При составлении мне хотелось не слишком углубляться в детали, чтобы не потеряться в них.


Содержимое веб-сайта


  • Сайт должен иметь следующие элементы:
  • файл robots.txt — инструкции для роботов
  • файл sitemap.xml — список страниц для поисковых систем
  • иконку favicon.ico
  • счетчик статистики (google.analytics)
  • канал rss — контент в виде ленты RSS
  • страницы должны иметь теги title, keywords, description
  • страницы должны иметь мета-теги для публикации в социальных сетях
  • отсутствие грамматических ошибок


Дизайнеру


  • Дизайн должен использовать принципы юзабилити
  • Нужно использовать стандартные шрифты, которые есть на каждой машине, не стандартные — в виде картинок
  • Если предполагается использовать javascript-меню, ссылки должны дублироваться дополнительно (например, в нижнем меню)
  • Доступ к информации должен быть максимально удобным
  • Один из элементов меню на дизайне должен быть активным (чтобы показать как он выглядит)
  • Нужно показать как выглядит hover для всех ссылок (изменение вида при наведении мыши)
  • Слои в psd-файлах должны располагаться по папкам
  • Для сайтов с регистрацией должнен быть разработан дизайн: форм регистрации, авторизации со ссылкой на восстановление пароля, блок со статусом авторизации пользователя, образец сообщения об ошибках в форме, дизайн письма пользователю
  • Типичный набор страниц (необходимых файлов psd): главная, о проекте, блог, пост в блоге, 404, результаты поиска, форма регистрации, форма входа


Верстальщику


  • Страницы должны пройти валидацию validator.w3.org
  • Вес страницы не должен превышать 300-500 кб (включая javascript-файлы)
  • Страницы должны выглядеть одинаково с отключенным javascript (камень в cufon-огород)
  • Пункт меню (на котором находится пользователь) не должен быть ссылкой.
  • Кнопки форм должны быть именно кнопками, а не ссылками
  • Изображения, используемые на сайте должны быть максимально сжатыми без видимой потери качества
  • Корректное отображение сайтов в браузерах: Internet Explorer, FireFox, Opera, Safari, Chrome новых и старых версий
  • Корректное отображение сайтов на экранах с разрешением от 1024 точек по ширине
  • Должен использоваться современный «блочный» тип верстки
  • Данные об оформлении сайтов должны быть максимально вынесены в отдельные таблицы стилей с группировкой сходных свойств элементов
  • Шрифты должны быть одинаковыми на всех страницах


Программисту


  • Код должен максимально использовать концепции ООП и шаблоны проектирования (mvc, data-mapping, singleton, и т.д.), php test driven development
  • Использование принципов DRY – “Don’t Repeat Yourself”, Convention Over Configuration, REST
  • Система шаблонизации должна давать возможность работы верстальщикам без вмешательства программистов
  • Минимизация количества и времени выполнения запросов в базу данных
  • Код должен выполняться не более 1-3 сек
  • Код должен быть переносимым и расширяемым (формирование библиотеки классов)
  • Код должен форматироваться однообразно
  • Код должен комментироваться по стандартам phpDocumentor
  • Отсутствие ошибок в коде (strict/notice)
  • Код не должен быть привязан к домену
  • Код не должен быть привязан к расположению в файловой системе
  • Код должен быть простым для восприятия.
  • Осмысленное именование переменных и функций
  • Обработка ошибок выполнения try catch
  • Разработка должна вестись в системе контроля версий (git) в нескольких режимах работы (development, production, testing)
  • Отсутствие глобальных переменных
  • Работоспособность всех ссылок на сайте
  • Фильтрация и валидация форм
  • Экранирование данных, помещаемых в базу
  • Движок сайта, конфигурация должны лежать вне public_html


Тестировщику


Должно быть проведено тестирование всего функционала сайта в различных браузерах:
  • ссылки
  • формы ( валидация, сообщения об ошибках, обязательность заполнения, вводимые символы )
  • кнопки
  • юзабилити
  • html, css, rss — валидация
  • присутcвие всех необходимых элементов: robots.txt, sitemap.xml и т.д.
  • соответствие разработанного приложения техническому заданию


Расшифровка аббревиатур, терминов:


  • DRY – “Don’t Repeat Yourself” – suggests that writing the same code over and over again is a bad thing.
  • Convention Over Configuration – means that Rails makes assumptions about what you want to do and how you’re going to d o it, rather than requiring you to specify every little thing through endless configuration files.
  • REST is the best pattern for web applications – organizing your application around resources and standard HTTP verbs i s the fastest way to go.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.