Вы здесь

Amazee

Версия системы: 
Друпал 6
Amazee

17 сентября 2008 года был перезапущен сайт Amazee. Мы написали эту статью для всех разработчиков сайтов на Друпале, которым интересно как был сделан этот сайт и какие вопросы мы решаем в настоящее время.

Что такое Amazee

Amazee — это платформа, на которой могут располагаться любые проекты. Amazee позволяет организовать, развивать и финансировать проекты любого масштаба и по всему миру, предоставляя для этого удобные и эффективные инструменты.

Вы можете создать международную футбольную команду, или организовать большое количество широкополосных соединений в удалённых городах Африки. Amazee подойдёт для всего.

Возможности сервиса

Amazee

Amazee предоставляет инструменты для создания и управления проектом, позволяя присоединяться к проекту заинтересованным людям и продолжать над ним совместную работу. Вы можете, например, определять уровень открытости и публичности проекта, назначать участникам различные права и информировать посетителей о текущем положении дел через сетевой журнал. Команда проекта может обмениваться идеями на форуме и совместно редактировать какие-либо документы. Участники могут загружать изображения, а также другие файлы и организовывать встречи, управляя календарём. Финансирование проектов — важная и уникальная часть Amazee, которая предоставляет три разных механизма для получения денег и возможность запроса дальнейшей поддержки.

Команда разработчиков и партнёры

Amazee разрабатывается в сотрудничестве с epoint из Румынии и netnode из Швейцарии (смотрите профили в конце статьи). Epoint и netnode обладают значительным опытом в области разработки «Паутина 2.0»-проектов и кодировании на PHP и Drupal. Группа Space Invader из Швейцарии отвечает за дизайн проекта.

Тестовый сайт

Работа над сайтом началась, когда мы находились в трёх разных городах, что было для нас новым делом. Многие разработчики занимались ранее крупными проектами, но не работали разделённые сотнями километров.

Имея команды разработчиков в Цюрихе и Люцерне (Швейцария), и Томишоаре (Румыния), мы не только должны были научиться использованию SVN для связи друг с другом, но также получить опыт работы с веб-дизайном и оформлением для успешной разработки.

Сегодня все размещают свой код в хранилище SVN, которое находится в Румынии, где находится тестовая система. Раньше для этого каждый разработчик использовал своё окружение на локальной машине где всё тестировал сам.

После удачных тестов мы развернули окружение онлайн. Здесь мы также улучшили наш процесс: развёртывание начиналось в 10 часов вечера и заканчивалось в 3 часа дня, что позволило оптимизировать процесс так, чтобы время наибольшего внедрения приходилось на последние 18 минут работы.

Редизайн сайта

Самой серьёзной проблемой было внедрение текущего дизайна. Начав с неоптимизированного для Паутины дизайна в начале 2008 года, мы начали оптимизировать дизайн для мониторов и характеристик сайта в июле 2008 года. В конце июля мы реализовали работу с характеристиками сайта, дизайн был внедрён и мы начали работу с шаблонами.

В августе, и до середины сентября, 90% старых характеристик было перенесено и переделано под новый дизайн.

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

Мы начали с определения основных стилей, которые используются на сайте везде. Потом увидели, что вывод данных большинства страниц различается и уже потом добавили ещё стилей.

Издатели, публикующие информацию на сайте, и программисты были не в восторге друг от друга. Мы постоянно вносили в процессе работы множество изменений по всем направлениям и поэтому мы не можем сказать, что у нас был заранее подготовленный план редизайна.

16 сентября, старый сайт Amazee.com остался в истории. Мы внедрили полностью новый сайт в течение нескольких часов и открыли новый сайт 17 числа.

Стандартные и дополнительные модули

В настоящее время Amazee работает на Друпале 5.7 и использует около 50 стандартных и дополнительных модулей. Кроме этого, мы разработали 10 специальных модулей. Мы собираемся опубликовать их в будущем, выложив их на drupal.org.

Node API и Content Construction Kit (CCK) + Form API

Мы использовали CCK и несколько связанных с ним модулей. Использование CCK и Node API сделало Друпал очень гибким и расширяемым. Почему? Node API — это отличный инструмент для работы с интерфейсом документов, а сами типы документов, мы могли легко создавать с использованием модуля CCK. Form API и Node API предоставили возможности по созданию, обновлению и удалению документов прямо из интерфейса системы и работая с сайтом, нам не приходилось думать о деталях этого процесса.

Aggregator

Aggregator собирает и публикует RSS-ленты из различных источников. Мы использовали агрегатор для обработки лент, которые пользователи прикрепляют в журнале проекта. Агрегатор совместим с различными версиями RSS и Atom. Таким образом, нам не пришлось работать над совместимостью.

Tagadelic

Amazee

Tagadelic используется в нескольких местах на сайте. Во-первых, каждый проект и группа могут быть тегированы в соответствии с потребностями пользователей, во-вторых, пользователи могут использовать теги в своих профилях.

Другим назначением этого модуля, является связывание проектов и групп между собой. Теги выводятся шрифтами разных размеров, что позволяет пользователям оценить частоту того или иного тега в проекте и на платформе Amazee в целом.

Privatemsg

Персональные сообщения — один из ключевых элементов сайта. Они позволяют пользователям общаться друг с другом. Кроме того, они используются для оповещения пользователей о событиях, которые происходят на Amazee.

Imagecache

На Amazee используются изображения нескольких размеров, которые выводятся в профилях пользователей и на страницах проектов. Пользователи могут загружать изображения любых размеров и они автоматически будут масштабированы до выбранного размера модулем Imagecache.

Invite

Модуль Invite — отличный инструмент для сообщества, он гибок в применении, его легко использовать и расширять. На Amazee этот инструмент является одни из основных требований и используется во всех проектах. Он помогает проектам развиваться, позволяя пользователям приглашать к участию в них новых участников.

Модули, которые мы изменили

Так как изменение кода стандартных модулей не слишком хорошая идея, мы предпочли разработать свои модули с похожими характеристиками. Нам потребовалось расширить характеристики некоторых стандартных модулей. Если кто-либо из участников сообщества интересуется сделанными нами изменениями, наши разработчики могут объяснить их вам. Мы не собираемся публиковать эти патчи, так как изменения носили специфический для Amazee характер.

Imagecache

Страницы Amazee могут содержать большое количество изображений и все они отдаются через этот модуль. Мы изменили модуль Imagecache, чтобы избежать обработки PHP при отдаче изображения и изображения отдаются напрямую из кеша.

Invite

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

Project

Проекты являются центральной частью сообщества Amazee. Таким образом модуль Project также является важной частью, которая связывает вместе многие другие части: другие модули, такие как журнал, обсуждения, форум, участников, опросы и другое.

Amazee

Модуль Project — это модуль работающий с документами и улучшающий их возможности. С другой стороны, модуль Alliance связывает проекты вместе. Это модуль работающий с документами, для их объединения и собора других документов проектов и их участников.

Оба модуля позволяют использовать и поддерживают другие социальные модули, такие как Invite, Privatemsg, Imagecache, CCK и так далее.

Журнал проекта

Amazee

Журнал проекта, это сборник различных библиотек. Yahoo JavaScript Library позволяет нам сделать возможность перетаскивания мышкой, что можно увидеть в режиме Configure magazine. Project magazine framework позволяет нам быстро внедрять новые виджеты. Виджеты блога и виджет текст/видео, например, полностью сделаны на основе хуков CCK.

Webwidget

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

За что мы любим и ненавидим Друпал

Мы любим Друпал за CCK и систему хуков. Это позволяет нам легко и быстро вести разработку. Также здорово реализованы стандартные возможности включая систему меню, jQuery, работу с шаблонами и возможности по разработке своих модулей. И мы ещё хотим сказать, что на api.drupal.org просто отличная документация, мы обожаем это место!

Связь между модулями

Связь и взаимодействие между модулями очень эффективно реализуется с помощью хуков, вы можете легко получить в своём модуле всё, что вам нужно. Node API и form_alter() очень эффективны.

Модуль System

Его структура, лёгкость в расширении и доступность любой характеристики являются хорошим примером того, как нужно реализовывать вещи в современных, расширяемых фреймворках.

Шаблонизация

У нас были некоторые проблемы при работе с шаблонами. В настоящее время работа с шаблонами и программированием ведётся более-менее параллельно. А так как некоторые моменты изменялись достаточно часто, работа с шаблонами была не слишком удобна. Мы думаем, что новая система шаблонов, которая будет реализована в Друпале 6 намного лучше текущей и позволит делать многие вещи более проще.

Система меню

Требования иногда меняются и вместе с ними может меняться структура меню. Но: «...как разработчик должен сказать клиенту или управляющему проектом, что пункт куда-то вложен и что он не может его переместить туда, куда хочет?» ;-)

Но мы должны сказать и о некоторых не слишком хороших сторонах Друпала. Одним из слабых мест является скорость и быстродействие в целом. Мы бы не сказали, что Друпал медленный, но когда сложность сайта возрастает, вам действительно нужно заботиться о быстродействии. Однако, проведя тонкую настройку сервера, вы вполне в состоянии получить приемлемый результат.

Заключение и контактная информация

Мы продолжаем работу над Amazee и сегодня, сайт развивается и полностью он ещё не закончен. Мы хотим выразить свою благодарность сообществу Друпала за создание такого замечательного продукта, студиям Space Invader, epoint, netnode и всем остальным, кто помогаем нам разрабатывать Amazee.com.

Профили

Amazee

epoint consulting & development is a fresh and pleasant working environment, where relaxing, studying, working and having fun is part of the daily schedule as any project. Our versatile team consists of young, highly specialized professionals who work and create together. http://www.epoint.ro/

Amazee

netnode IT services GmbH is a software engineering and internet marketing agency founded by Lukas Fischer. Our core competency is the development of web applications focused on communication and marketing. http://www.netnode.ch/

Дополнительная контактная информация