Готовые решения для разработки web-проектов

Готовые решения для разработки web-проектов

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

Если вашей целью является доскональное изучение подобных технологий, то это также становится дополнительным фактором выбора данного пути. Однако у него имеются и свои недостатки. Во-первых, требуется наличие этих самых знаний, причем довольно приличных, и опыта web-разработок, что позволяет избежать многих ошибок и разочарований. Это существенно ограничивает круг претендентов, особенно среди начинающих web-мастеров. Во-вторых, похвальное во всех остальных отношениях стремление самому написать лучшие в мире скрипты, к сожалению, вполне может привести к созданию банального долгостроя. В-третьих, не стоит забывать, что, кроме скриптов, для сайта нужно делать еще дизайн, а также собственно информационное наполнение проекта, которое еще и обновлять надо, желательно регулярно. В условиях создания сайта одним человеком или небольшой группой товарищей "на общественных началах" на качественную проработку всех этих компонентов может просто не хватить времени и сил, что самым пагубным образом сказывается на результатах работы.
Можно, конечно, сильно ограничить полет своей фантазии, а то и вообще обойтись без динамических технологий или смириться с постоянно возрастающими сроками окончания первоначальной разработки проекта, но есть еще один, куда более конструктивный путь — использование готовых решений.

Рассудим логически: проблема создания, например, качественного скрипта поиска или форума возникла не вчера и не в каком-то единственном случае. Она решалась многими программистами уже тысячи раз с использованием самых разнообразных подходов и технологий. Многие полученные решения стали впоследствии предлагаться на различных условиях другим разработчикам. По прошествии некоторого времени происходит своеобразный естественный отбор, и наибольшее распространение получают продукты, обладающие определенными преимуществами, будь то функциональность, удобство использования, условия приобретения или какие-либо еще. Так почему бы не использовать такой вариант, тем более, что при желании многие такие пакеты можно доработать под собственные уникальные запросы? Это может сэкономить массу времени, которое вместо очередного бессчетного изобретения велосипеда можно потратить на более детальную проработку других сторон проекта. В этом случае важно обладать определенной информацией о существующих разработках, их возможностях и особенностях, что позволит сделать обоснованный выбор.
Прежде чем рассматривать конкретные системы, необходимо поговорить о некоторых общих вопросах, так сказать, теории подобных готовых решений. Это позволит в дальнейшем значительно сэкономить газетные площади и наше время при разговоре о самих пакетах.
Готовые web-решения можно разделять по самым разнообразным признакам. Мы не будем преследовать цель составления полной и безупречной классификации, а ограничимся некоторыми наиболее важными для нас признаками.
Первым основанием деления выступит функциональное назначение рассматриваемых продуктов, исходя из которого можно выделить несколько групп соответствующего программного обеспечения.
Это могут быть простейшие, но вместе с тем изящные мелочи типа скриптов, показывающих текущее время, разнообразные календари и другие решения в том же духе, столь любимые авторами учебников по программированию.

Далее выделим более серьезные вещи, позволяющие развернуть гостевые книги, форумы и другие разделы сайта. Именно этот класс программ, как правило, наиболее востребован при построении любительских проектов. Здесь же наблюдается наибольшее разнообразие предлагаемых пакетов.
Наконец, есть пакеты, представляющие собой заготовки целых порталов, объединяющие средства работы с наполнением сайта, ленты новостей, модули голосований, ссылок, авторизации, загрузки файлов и некоторые другие в различном сочетании. Иногда такие пакеты содержат также интегрированные форумы или модули гостевых книг. В других случаях их необходимо дополнять соответствующими пакетами других разработчиков. Выбрав и установив такой продукт, мы получим практически готовый сайт, который останется только доработать по собственному вкусу, наполнить полезным содержимым и регулярно поддерживать. Заметим, что для обозначения подобных пакетов существует термин CMS (Content Management System), что неплохо отражает их назначение и возможности — это действительно в полном смысле этого слова системные решения. Такие пакеты представляют интерес не только для любителей, но и для серьезных профессиональных разработчиков, ведь они позволяют после окончания разработки передать клиенту обязанности по дальнейшей информационной работе с проектом, устраняя таким образом его излишнюю зависимость от стороннего разработчика. Дальнейшую работу по наполнению и актуализации сайта ведет уже сам заказчик, благо квалифицированного программистского труда это уже не требует. Не случайно некоторые студии web-дизайна разрабатывают и всемерно продвигают CMS собственной разработки в качестве базовой платформы для своих клиентов.
Отдельно упомянем дополнительные модули, разрабатываемые для наиболее распространенных пакетов, разнообразные моды, темы оформления и прочие дополнения к названным системам. Создаваемые многочисленными авторами, они способны значительно улучшить внешний вид и возможности базового пакета, исправить некоторые существующие ошибки или же добавить новые, о чем также надо помнить.
Кроме этого, можно предложить и другие основания деления: примененные технологии и языки программирования, эксплуатационные характеристики, требования к хостингу, платный или бесплатный характер распространения и другие признаки, получив в результате так называемую фасетную классификацию.

Готовые web-решения, даже самые известные, — это, само собой, не панацея от всех проблем разработки. К их недостаткам традиционно относят отсутствие яркой индивидуальности получаемых решений, отсутствие по определению оптимизации для конкретного проекта, не всегда оптимальный код. Справедливости ради стоит привести и другие аргументы: унификация структуры и отчасти интерфейса web-решений отражает объективный процесс нахождения оптимальных решений определенных классов задач. Кроме того, это значительно упрощает работу с ними пользователя, который уже представляет, что и где можно найти на странице. Типовые решения в наибольшей степени оправдывают эти ожидания. Мне бы не хотелось дальше углубляться в рассуждения на тему того, хорошо это или плохо — здесь у каждого может быть свое, аргументированное или же просто субъективное мнение. В качестве компромисса, из которого и будем исходить далее, согласимся, что существует некоторый круг задач, для решения которых применение типовых пакетов вполне оправданно и дает определенные преимущества.
Выбор конкретного решения — это проблема, для которой предложить однозначный рецепт "лечения" весьма сложно, если вообще возможно. Здесь можно только посоветовать обращать внимание на некоторый круг характеристик, на которые рекомендуется обращать внимание при выборе пакета после того, как вы уже составили для себя некое "техническое задание" и четко представляете, что вы желаете получить в результате.
Вначале стоит определиться с технологиями, используемыми пакетом. Несмотря на то, что в большинстве случаев используется взаимодействие с теми или иными системами управления базами данных, этот подход имеет и определенные недостатки. Есть решения, которые вообще не используют никаких СУБД. Возможно, взвесив все pro et contra, вы решите использовать один из таких вариантов, избавив себя от необходимости искать хостинг с поддержкой определенной СУБД.
Далее необходимо убедиться в достаточной функциональности пакета, точнее, ее соответствии требуемой. Обратите внимание на наличие для него необходимых модулей в изначальной конфигурации или же доступных дополнительно из других источников. В этом случае преимуществом обладают более известные и распространенные пакеты, которые за время своего существования обзавелись прямо-таки огромным количеством всевозможных модулей.

Немаловажным качеством является и гибкость пакета, то есть возможности по его настройке и модификации, а также степень сложности написания собственных модулей расширения. Дополнительным плюсом становится наличие толковой документации и хорошей поддержки, будь то от разработчика пакета или от сообщества пользователей системы, а также регулярный выход новых версий или исправлений к прежним. Ну, а для некоторых приятным моментом будет аккуратно написанный код скриптов пакета.
После этого следует оценить удобство работы с уже установленной системой, возможности и трудозатраты по ее администрированию и наполнению полезной информацией, устойчивость и скорость работы. Что касается последнего, то здесь опять-таки надо учесть, что системы "с историей" уже прошли массу разнообразнейших испытаний в полевых условиях, поэтому их поведение в разных ситуациях в определенной степени предсказуемо. Новички такой статистикой могут похвастаться не всегда, что, безусловно, не должно вызывать однозначные и обязательные подозрения в более низком качестве продукта, ведь и нынешние лидеры тоже когда-то начинали с чистого листа.
Что касается выбора между коммерческим и бесплатным пакетом, то здесь также стоит исходить из поставленных перед проектом задач, ваших запросов и ресурсов. Сегодня существует очень широкий выбор бесплатных решений такого плана: от весьма простых до самых мощных и проверенных. В этих условиях изготовителям коммерческих пакетов приходится идти на различные дополнительные бонусы и гибкую ценовую политику для того, чтобы составить достойную конкуренцию свободным решениям. Как правило, на рынке предлагается несколько версий одного пакета, отличающихся функциональностью и характеристиками или же условиями поддержки. Разработчики могут предоставлять бесплатные ознакомительные версии продуктов, естественно, с урезанными возможностями, или же аренду своих пакетов с их последующим выкупом. Возможны и другие варианты — например, вместе с покупкой CMS вам могут сразу же предложить "в комплекте" еще и хостинг для вашего нового проекта. В определенных случаях это может быть выгодным решением.

Есть и третий путь — поиск и установка взломанных версий коммерческих систем, у которых удалены определенные участки кода, позволяющие авторам отследить пиратское использование своей продукции. Рациональным такой подход назвать нельзя. В условиях большого разнообразия бесплатных пакетов, обладающих самыми экзотическими возможностями, практически всегда можно подобрать вполне легальный и ничем не уступающий аналог, тем более, что вы все равно не сможете воспользоваться поддержкой и дополнительными предложениями разработчика, что, в основном, и является привлекательной стороной коммерческого решения. Поскольку этот путь пригодится разве что самым отчаянным любителям поиска ненужных приключений на свои головы, мы не станем лишать их удовольствия заниматься этим самостоятельно и не будем рассматривать такие варианты в следующих статьях.
На этом краткое теоретическое введение в область готовых решений для web-разработки разрешите считать законченным. Самые основные и необходимые для дальнейшей работы вопросы мы рассмотрели, пищу для размышлений получили. Теперь самое время перейти к самому интересному — обзору конкретных пакетов, с основным упором на бесплатные решения, чем мы и займемся в следующий раз.

Алексей Кутовенко, alteridem@tut.by


Компьютерная газета. Статья была опубликована в номере 31 за 2003 год в рубрике soft :: интернет

©1997-2024 Компьютерная газета