Создание CMS с нуля. Глава 1. Концептуальная разработка унифицированной системы

CMS - Content Management System - это набор программ, написанных на языке веб-программирования, которые выполняют функции управления содержимым сайта. CMS обычно доступны для скачивания и использования всеми разработчиками: платно или бесплатно. Существуют и частные CMS, которые создают веб-программисты для собственных проектов и не распространяют свой продукт.

Сейчас разработкой CMS занимаются частные веб-разработчики, команды веб-разработчиков, сообщества программистов, обменивающихся готовыми разработками для популярных систем с открытым исходным кодом.

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

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

Все CMS претерпевают изменения, связанные с исправлением ошибок, доработкой функций, расширением возможностей.

 

Разработка концепции

Перед разработкой нового ИТ-продукта нужно определить цели и конечный результат проекта. На этапе концептуальной разработки решаются вопросы:

  • сфера применения продукта: масштаб аудитории, рынок, тенденции рынка (например: личная CMS - или - популярная CMS для российских веб-студий),
  • область применения и реализуемые задачи: блог, сайт компании, лендинг, социальная сеть, корпоративный сайт - или - всё это в одной CMS  с возможностью расширения,
  • частота обновлений продукта и способ обновления готовых сайтов (например: каждый новый релиз может заменить старый без усилий со стороны клиента - или - новый релиз будет требовать разработку сайта заново, без возможности импорта данных из старой версии),
  • условия распространения и поддержки (если это коммерческий продукт, он должен быть защищён лицензией и иметь поддержку разработчиков),
  • роли разработчиков и уровни доступа (будет ли это ваш личный проект одного разработчика, или к созданию CMS и её частей могут привлекаться и другие разработчики)

 

Преимущества Open Source проектов

Системы с открытым исходным кодом конкурируют с коммерческими системами. Интернет как явление - это бесплатный быстрый доступ к информации и обмен информацией со всем миром. Поэтому CMS, как продукт, погруженный в Интернет, и созданный для Интернет, может содействовать идее Интернет, потому что:

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

 

Преимущества распространения CMS на коммерческой основе

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

 

Инструменты разработчика CMS

Проект - это его логика и структура. Для проработки структуры могут быть использованы средства проектирования программного обеспечения, например, язык UML.

В процессе создания, тестирования программного обеспечения разработчики должны выбрать и использовать инструменты:

  • Сервер (Apache, Lighttpd, Denwer, Nginx, Node.js)
  • Система контроля версий, VCS (SVN, Git)
  • Среда разработки, IDE
  • Каркас веб-приложений, или фреймворк

 

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

Идея - Концепция - Проект - Функции - Продукт - Пользование продуктом - Программный код.