URL: http://gamebomb.ru/
Статус: завершен
Дата начала: 19.07.2010
Дата завершения: 10.06.2012

Теги: PHP, MZZ, jQuery, Mercurial, design

GameBomb.ru

GameBomb.ru — информационный портал для геймеров. Свежие игровые новости, обзоры, даты релизов и последние трейлеры, все здесь, на GameBomb.ru!

Наша цель — создать лучший в России информационный портал для геймеров! Для вас (если вы геймер:) трудится команда редакторов и ньюсмейкеров, которые делают отличные новости и видео-ролики, освещающие все события игровой индустрии! Если вам интересны компьютерные игрывэлкам!

Является одним из моих сторонних проектов. Это самый масштабный веб-проект, в котором мне доводилось участвовать на данный момент. Разработка портала ведется мной уже более года. Весь код портала, верстка, некоторые элементы дизайна, система опыта — все это было сделано вашим покорным слугой :)

Разработка

В начале разработки этого довольно огромного проекта было выделено достаточно времени на проектирование. Мной была разработана проектная документация (в Google.Docs), в ходе написания которой была продумана структура и многие моменты в предстоящей реализации задуманного.

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

Портал должен был содержать много медийного контента, такого как картинки и видео. Была разработана схема, в которой URL нужной картинки и видео можно получить зная всего-лишь его ID. Это позволило экономить сотни запросов к БД при отображении большого количества информации. Также можно передать и необходимые параметры изображения, такие как высоту, ширину, сохранение пропорций и др. При этом нужные копии уменьшенных изображений не создаются сразу при загрузке изображения на сайт, а генерируются налету при первом запросе картинки с необходимыми параметрами браузером пользователя, если она еще не была создана. Данный подход позволяет получить достаточную гибкость использования, если будут необходимы какие-то новые размеры изображений, и экономию дискового пространства.

Со временем нам стало не хватать ширины внешнего канала для отдачи видео-контента и были арендованы сервера, заточенные чисто под отдачу видео, попутно была написана система синхронизации контента между серверами и разбалансировки.

Скриншоты