Не так давно удалось лично пообщаться с людьми, которые руководят разработкой веб-проектов MTV. Если отбросить все , что не касается именно программирования, то разговор не был не самый длинный, но некоторые свои правила для разработчиков они все-таки рассказали.
Первое, что было интересно — верстка
- Все картинки, которые используются, как бэкграунды склеены в одну и позиционируются при помощи свойства background-position
- Никаких хаков для ИЕ, вся верстка должна быть общей для всех браузеров
- Таблицы используются только для табличных данных, вся остальное на дивах. Ну это кстати уже года как 4 обычное дело.
- Интересный момент: половина из них считает, что нужно верстать с обязательным использование postion:relative, а вторая половина считает, что данное свойство вообще использовать не стоит.
- Если у вас много css файлов, то все-равно они должны подключаться как один, например <link rel=’stylesheet’ href=’http://mysite.com/allstyles.php’ />
Как такое сделать я писал в статье об ускорении css. - Тоже самое касается и файлов javascript.
- Из библиотек javascript используется jquery. (тут меня ждало разочарование — я очень люблю prototype.js, хотя справедливости ради стоит признать, что все чаще и чаще пользуюсь именно jQuery)
- Javascript и стили исключительно в файлах, запрещено использовать стили и сценарии через вставку в html страницы. Так же крайне нежелательно использование свойства style у элементов.
- Далее, интересно оформление блоков на странице, каждый блок выглядит примерно так <div class=»block current_block»>….</div> Например блок с пользователями будет выглядеть как <div class=»block block_users»>…</div> Причем класс block содержит в себе такие свойства как margin, padding, отображение теней и тому подобного. А вот размеры уже определяются в классе block_users. также тут могут быть переопределены шрифты, отступы и куча еще чего.
Вот, все, что вспомнил написал.
Теперь немного о php.
Чем им вообще нравится php, так это тем, что, буквально цитата, он позволяет быстро и дешево приступить к разработке. Теперь, что рекомендуется использовать и что не рекомендуется:
- Они не советуют отправлять почту через функцию mail, лучше для этого использовать PEARовский класс.
- Не советуют пользоваться статическими методами, хотя тут бы я поспорил, часто они удобней и даже семантически правильней. Мог бы привести пример, но пост не об этом.
- В коде не использовать пробелы, а использовать табы (честно говоря раньше я читал совершенно об обратном)
- Классы называть как в библиотеке Zend, типа Class_Subclass_Finalclass и складывать их в соответствующие папки, тут все как у Zend. Для меня если честно это было разочарованием, так как я привык к camel style, типа ClassSubclassFinalclass
- Не добавлять в начале имени класса букву C (типа CUsers) — это пережиток четвертого php, где по сути желательно было указывать,что имеем дела с классом.
Ну вот вроде как с большего все, о чем можно рассказать — свои инструменты они не «спалили», ни фреймворк, ни шаблонизатор ни базу данных, хотя я уверен — там не mysql.
Одно знаю, из всех движков форумов они предпочитают ни что иное как phpbb3, правда допиливали уже сами.
Использовать эти рекомендации это личное дело каждого человека: я просто привел слова людей, у которых за плечами ни один огромный и успешный проект. Кстати, среди них много женщин :).
О, большое спасибо за статью. Интересно особенно было почитать про PHP
хороший камень в сторону Yii, где слишком много статики и прочей магии затрудняющей работу. В php очень не хватает возможности вызывать методы сразу при создании объекта. типа $news = (new News)->getList(); я обычно пложу статический метод create News::create()->getList();
Но самое интересное вовсе не в php и бд, гораздо интереснее как они транслируют мультимедио, мне казалось что для этого лучше подходят продукты MS.
По-поводу статики мне нравится что-то вроде Page::getById($id)->getParent() что-то вроде. А вот они часто используют
$page = new Page;
$page->getParent();
Это имеет плюсы если $page будет использовано в дальнейшнем, но когда можно обратится через статический метод более читаемо что-ли.
А по-поводу мультимедии у них там свои наработки во многом, например они гордятся своим плеером который работает быстрее чем тот, что на youtube.
Совершенно одобряю все пункты без изключений. Уже лет 7 пользуюсь библиотекой ATK4 (www.atk4.com), которая избегает статики и включение страниц и объектов произходит так:
$hint=$page->add(‘View_Hint’);
Демки тут: demo.atk4.com