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