Несколько советов от разработчиков веб-проектов MTV

Не так давно удалось лично пообщаться с людьми, которые руководят разработкой веб-проектов MTV. Если отбросить все , что не касается именно программирования, то разговор не был не самый длинный, но некоторые свои правила для разработчиков они все-таки рассказали.

Первое, что было интересно — верстка

  1. Все картинки, которые используются, как бэкграунды склеены в одну и позиционируются при помощи свойства background-position
  2. Никаких хаков для ИЕ, вся верстка должна быть общей для всех браузеров
  3. Таблицы используются только для табличных данных, вся остальное на дивах. Ну это кстати уже года как 4 обычное дело.
  4. Интересный момент: половина из них считает, что нужно верстать с обязательным использование postion:relative, а вторая половина считает, что данное свойство вообще использовать не стоит.
  5. Если у вас много css файлов, то все-равно они должны подключаться как один, например <link rel=’stylesheet’ href=’http://mysite.com/allstyles.php’ />
    Как такое сделать я писал в статье об ускорении css.
  6. Тоже самое касается и файлов javascript.
  7. Из библиотек javascript используется jquery. (тут меня ждало разочарование — я очень люблю prototype.js, хотя справедливости ради стоит признать, что все чаще и чаще пользуюсь именно jQuery)
  8. Javascript и стили исключительно в файлах, запрещено использовать стили и сценарии через вставку в html страницы. Так же крайне нежелательно использование свойства style у элементов.
  9. Далее, интересно оформление блоков на странице, каждый блок выглядит примерно так <div class=»block current_block»>….</div> Например блок с пользователями будет выглядеть как <div class=»block block_users»>…</div> Причем класс block содержит в себе такие свойства как margin, padding, отображение теней и тому подобного. А вот размеры уже определяются в классе block_users. также тут могут быть переопределены шрифты, отступы и куча еще чего.

Вот, все, что вспомнил написал.

Теперь немного о php.

Чем им вообще нравится php, так это тем, что, буквально цитата, он позволяет быстро и дешево приступить к разработке. Теперь, что рекомендуется использовать и что не рекомендуется:

  1. Они не советуют отправлять почту через функцию mail, лучше для этого использовать PEARовский класс.
  2. Не советуют пользоваться статическими методами, хотя тут бы я поспорил, часто они удобней и даже семантически правильней. Мог бы привести пример, но пост не об этом.
  3. В коде не использовать пробелы, а использовать табы (честно говоря раньше я читал совершенно об обратном)
  4. Классы называть как в библиотеке Zend, типа Class_Subclass_Finalclass и складывать их в соответствующие папки, тут все как у Zend. Для меня если честно это было разочарованием, так как я привык к camel style, типа ClassSubclassFinalclass
  5. Не добавлять в начале имени класса букву C (типа CUsers) — это пережиток четвертого php, где по сути желательно было указывать,что имеем дела с классом.

Ну вот вроде как с большего все, о чем можно рассказать — свои инструменты они не «спалили», ни фреймворк, ни шаблонизатор ни базу данных, хотя я уверен — там не mysql.

Одно знаю, из всех движков форумов они предпочитают ни что иное как phpbb3, правда допиливали уже сами.

Использовать эти рекомендации это личное дело каждого человека: я просто привел слова людей, у которых за плечами ни один огромный и успешный проект. Кстати, среди них много женщин :).

Несколько советов от разработчиков веб-проектов MTV: 4 комментария

  1. О, большое спасибо за статью. Интересно особенно было почитать про PHP

  2. хороший камень в сторону Yii, где слишком много статики и прочей магии затрудняющей работу. В php очень не хватает возможности вызывать методы сразу при создании объекта. типа $news = (new News)->getList(); я обычно пложу статический метод create News::create()->getList();

    Но самое интересное вовсе не в php и бд, гораздо интереснее как они транслируют мультимедио, мне казалось что для этого лучше подходят продукты MS.

  3. По-поводу статики мне нравится что-то вроде Page::getById($id)->getParent() что-то вроде. А вот они часто используют
    $page = new Page;
    $page->getParent();
    Это имеет плюсы если $page будет использовано в дальнейшнем, но когда можно обратится через статический метод более читаемо что-ли.
    А по-поводу мультимедии у них там свои наработки во многом, например они гордятся своим плеером который работает быстрее чем тот, что на youtube.

  4. Совершенно одобряю все пункты без изключений. Уже лет 7 пользуюсь библиотекой ATK4 (www.atk4.com), которая избегает статики и включение страниц и объектов произходит так:

    $hint=$page->add(‘View_Hint’);

    Демки тут: demo.atk4.com

Обсуждение закрыто.