Программирование порталов

Любой портал – сайт, но не каждый сайт – портал. Эта формулировка может показаться путаной, однако имеет много смысла при разработке в веб.
Веб портал – это система сайтов, разработанная под большую нагрузку и широкую аудиторию. Обычный сайт, в свою очередь – одна или несколько страниц, объединенных между собой единой темой и часто созданных под определенную аудиторию.
Веб-порталы могут быть нескольких видов:
- тематические – посвящены конкретной теме, а значит, привлекают заинтересованную в ней аудиторию (финансовые, медицинские и т.д.);
- информационные – новостные ресурсы, СМИ;
- обучающие – проекты учебных заведений, онлайн-курсов;
- корпоративные – ресурсы, объединяющие сотрудников фирмы онлайн и предоставляющие доступ к корпоративным данным.
Сайты, в свою очередь, включают блоги, визитки, лендинги, портфолио, промо-сайты, простые интернет-магазины или сайты-витрины. Они не отличаются широким функционалом, а потому к ним применяются другие методы веб-разработки и программирования.
Программирование портала включает в себя несколько этапов:
- разработка прототипа;
- создание функциональной составляющей (сервисов, блоков управления, скриптов, взаимодействия с базами данных);
- тестирование;
- настройка взаимодействия систем между собой.
Так как порталы разрабатываются под более высокую нагрузку и с большим количеством интерактивных сервисов, для их программирования используются:
- редакторы кода (Komodo Edit, Vim, GNU Emacs, Visual Studio Code и др.) – достаточно простые программы, которые применяются для создания и изменения файлов кода;
- многофункциональные интегрированные среды (IDE) (Eclipse, Geany, Light Table, JetBrains и т.д.) – больший инструментарий и широкий прикладной функционал;
- облачные IDE (Cloud9, Codeanywhere, Eclipse Che, Orion, др.) – функционал десктопных решений для веб-разработки, реализованный в виде интернет-сервиса.
Это самые популярные решения, которые используются для написания исходного кода и его редактирования. Современные редакторы экономят время и нервы разработчиков, расставляя отступы, скобки, закрывая кавычки. Самые мощные программы могут хранить историю изменений проекта, а также обновлять файлы, хранящиеся на удаленных серверах.
Прототипирование портала
Прототип – схема будущего ресурса или его отдельных страниц. Прототипирование, в свою очередь, подразумевает процесс создания такой схемы. Это один из главных этапов на пути к началу разработки веб-порталов и визуализации каждого проекта.
Хороший прототип станет крепким фундаментом для остальных этапов работы. Кроме того, затраченное на проработку схемы портала время обязательно сэкономит часы в будущем. Важность прототипирования не только в том, что вы увидите потенциальный образ будущего веб-ресурса, но и сможете обдумать расположение элементов на каждой странице и их взаимодействие, а также внести правки в схему еще до начала создания портала. В ином случае, если на этапе разработки окажется, что некоторые элементы работают не так, как нужно, переделывать придется в разы больше, а на это потребуются дополнительное время и финансовые траты.
Проекту любого размера нужен прототип, важно лишь выбрать правильный его вид.
По глубине проработки выделяют:
- Эскиз (низкая детализация) – подходит для одностраничных сайтов. Нарисовать его можно на бумаге или в простейшей программе для создания схем. Не подойдет для реализации масштабных проектов.
- Высокая детализация – для многостраничных сайтов и веб-порталов. Создается с помощью специальных сервисов.
По месту хранения:
- аналоговый (рисунок);
- цифровой (создан в программе, а доступ к редактированию есть только у разработчика);
- облачный (прототип находится в облаке, поэтому доступ к редактированию есть у нескольких участников проекта).
По возможности взаимодействия:
- статичный – графическое изображение;
- интерактивный – включающий элементы взаимодействия, такие как кликабельные ссылки, слайдеры, всплывающие формы и т. д.
Логично, что прототип может совмещать в себе эти характеристики: возможны такие комбинации как эскиз на бумаге или статичный прототип с низкой детализацией, а также статичный или интерактивный с высокой детализацией.
Какой выбрать? Зависит только от сложности и требуемой глубины проработки. Чем сложнее проект, тем больше внимания нужно уделить созданию прототипа. Если создается лэндинг, то достаточно будет статичной схемы расположения элементов на бумаге. Но мы говорим о крупных, многостраничных проектах с большим количеством сервисов, а значит, для них потребуется тщательно продумать схему каждой страницы прежде чем приступать к веб-разработке.
Среды программирования порталов
Один из важнейших этапов разработки веб-порталов – выбор IDE.
Vim. Вариант свободного текстового редактора vi разросся благодаря многочисленным расширениям и плагинам. Теперь Vim – почти совершенный редактор, который не требует мощной станции и работает с огромным количеством языков и платформ. Кроме того, для этой среды есть функция работы в виде только консоли и бесконечно много возможностей расширения.
Adobe Brackets. Несмотря на относительную «юность» этого редактора, Brackets заслужил доверие многих разработчиков. Особенно он подходит работающим с UI и фронтендом программистам и дизайнерам, так как упор в этом редакторе делается на визуализацию и CSS. Редактор позволяет просматривать HTML-код прямо в браузере, а работа с PSD-файлами оптимизирована, и импортировать их можно в Adobe Photoshop. Наконец, у редактора открытый исходный код, поэтому его можно подстраивать под нужды специалиста.
Visual Studio Code. Многофункциональный и при этом компактный редактор изначально предназначался для обработки JavaScript и его расширений. Однако плагины к VSC позволяют добавить и другие популярные языки, которые помогут при разработке портала. Кроме того, программа хорошо работает с платформой Node.JS.
Sublime Text 3. Кроссплатформенный редактор, поддерживающий множество плагинов и имеющий открытый исходный код. В нем есть удобное переключение между разными файлами, а широкие возможности настроек позволяют «подогнать» ПО под свои требования – от хоткеев до настройки цветовой темы.
Eclipse. Редактор подойдет специалистам, часто переключающимся между языками и платформами веб-разработки. Хорошо работает с Java и JavaScript и многими другими популярными языками.
Тестирование программного кода
Этот этап крайне важен для любого интернет-ресурса. Тестирование – тщательная проверка сайта на предмет потенциальных ошибок. Оно проводится как в процессе разработки портала, так и перед самым запуском. Во время проверки выявляются не только ошибки и баги, но и оценивается привлекательность сервиса для пользователей, удобство и безопасность использования. Кроме того, тестирование определяет, достигаются ли поставленные в начале работы над проектом бизнес-цели.
Специалисты выделяют несколько типов тестирования:
Функциональное тестирование. Проверяет работу каждой функции веб-портала, его возможность решить поставленные пользователем задачи. Его смысл – установить соответствие ресурса исходным функциональным требованиям клиента. Включает в себя проверку работы ссылок, пользовательских форм, проверку HTML/CSS-кодов, проверку workflow и отрицательных сценариев (например, вывод сообщений об ошибке при вводе некорректных данных).
Тестирование юзабилити (удобства использования). Выявляет характер взаимодействия человека с порталом. Упор делается на простоту навигации и субъективное удовлетворение посетителя от использования сервиса.
UI-тестирование (интерфейса пользователя). Проверка графического интерфейса пользователя. Помогает понять, удобно ли нажимать на кнопки, понятны ли иконки, определяет, насколько читабелен выбранный формат текста и шрифты. Также помогает определить, правильно ли расположены акценты и к чему стоит привлечь внимание. Кроме того, UI-тестирование определяет, как сайт будет выглядеть в других браузерах.
Тестирование производительности. Веб-порталы создаются под большую нагрузку, поэтому тестирование производительности обязательно включает:
- нагрузочное тестирование, проверяющее, сколько одновременных пользовательских запросов выдержит сайт или страница;
- стресс-тестирование – оценка работы сайта в экстремальных условиях;
- тестирование на разной скорости интернет-соединения, которое проверяет, как быстро откликается портал в разных условиях.
Тестирование безопасности. Необходимо для выявления потенциальных уязвимостей, слабых мест и лазеек, которые могут привести к потере данных, дохода или репутации.
Настройка и интегрирование портала
На этом этапе необходимо настроить модули портала, иерархию пользователей, а также интегрировать его со сторонними сервисами.
Веб-портал – огромный проект с большим количеством информации, которая хранится на разных модулях, поэтому важно разграничить доступ всех основных пользователей. Так, рядовым посетителям можно дать возможность комментировать публикации, в то время как администрация может как публиковать контент, так и комментировать его, таким образом общаясь с посетителями портала.
Наиболее распространены следующие роли:
- администраторы и модераторы – имеют наиболее высокий доступ;
- редакторы и контент-менеджеры – управляют записями, публикуют и редактируют их, часто занимаются и модерацией комментариев;
- авторы, пользователи – могут создавать свои публикации и управлять ими;
- гость – может просматривать контент, в некоторых случаях – комментировать.
Возможности каждого уровня пользователя должны учитываться при разработке веб портала.
Помимо создания иерархии доступа, нужно уделить внимание интеграции ресурса со сторонними сервисами. Хороший проект не может быть изолирован: внешняя интеграция позволяет решить многие бизнес-задачи и повысить юзабилити сайта.
Можно выделить некоторые наиболее популярные системы для интеграции:
- e-mail – коммуникация между пользователем и администрацией с помощью электронной почты;
- SMS – в виде такого сообщения пользователь может получить логин и пароль для входа на сайт, код подтверждения оплаты, трек-номер и информацию о состоянии доставки и т. д.;
- доставка – выбор адреса или отделения для доставки и расчет ее стоимости;
- платежные системы – оплата услуг и покупок онлайн;
- системы учета товаров, бухгалтерский учет – интеграция портала с хранилищем данных (1С, Оборот и т. д.);
- CRM – система управления отношениями с клиентом (сбор данных о клиентах, управление сделками, аналитика, программирование).
Портал можно интегрировать и с другими типами ПО, которое разрабатывается индивидуально под отдельные проекты.
Высоконагруженные порталы – основа портфолио DDPlanet, в котором есть и наши собственные большие проекты – Выберу.ру и Мир квартир. Мы более 10 лет делаем уникальные ресурсы со сложной структурой и функционалом и находим нетиповые решения, которые не боимся применять на практике.
Мы убеждены, что каждый проект и его задачи уникальны. Поэтому не используем шаблоны и стандартные методы программирования, с головой погружаемся в специфику каждого проекта и проводим тщательный анализ рынка и бизнеса наших заказчиков. Все это – залог продуктивной работы по веб-разработке.
В нашем штате более 150 сотрудников, каждый из которых – часть команды. В каждом проекте задействован полный штат специалистов, от менеджера, аналитиков и разработчиков до контент-менеджеров. При этом все работы ведутся исключительно инхаус – мы не привлекаем сторонних специалистов, поэтому полностью отвечаем за качество готовых продуктов.
К тому же члены команды DDPlanet не стоят на месте и постоянно учатся и повышают квалификацию. Это настоящие профессионалы в своем деле, которые не боятся новшеств и экспериментов и следят за новыми веяниями в программировании. При разработке порталов используются технологии, ставшие стандартом для многих крупных IT-компаний, в том числе Asp.Net, Microsoft.Net, SharePoint.