Разработка CMS с нуля. Часть 2: Реестр всему голова. Разработка cms с нуля
Разработка CMS с нуля. Часть 2: Реестр всему голова
Рад Вас видеть! Вернулись? Или впервые у меня в гостях? Для новых гостей я советую ознакомиться с предыдущими статьями из этого, пока небольшого, цикла. С теми же, кто уже с ними знаком — мы продолжаем нашу разработку CMS с нуля. Мы уже поговорили, в общих чертах, о том, что хотим видеть в конце и затронули общую структуру нашей системы, затронув структуру будущей базы данных. Начало положено, и отступать нельзя, да я и не думаю об этом.
К базе данных мы вернемся чуть позже, а пока начнем писать код нашего движка. Но для начала немного «матчасти». Начинаем.
Начало начал
На данный момент мы имеем только некоторые идеи и понимание работы той системы, которую мы хотим реализовать, а вот самой реализации пока нет. Нам не с чем работать: у нас отсутствует какой либо функционал — а, как помните, мы разделили его на 2 части: внутренний и внешний. Для алфавита нужны буквы, а для внешнего функционала нужен внутренний — с него-то и начнем.
Но не так быстро. Для его работы нужно капнуть еще чуть глубже. Наша система представляет иерархию, а любая иерархическая система имеет начало: точка монтирование в Linux, локальный диск в Windows, система государства, компании, учебного заведения и т.д. Каждый элемент такой системы кому-то подчинен и может иметь несколько подчиненных, а для обращения к своим соседям и их подчиненным использует вышестоящих или само начало. Хорошим примером иерархической системы является генеалогическое дерево: выбирается точка отсчета — какой-либо предок и понеслась. В нашей системе нам также нужна точка отсчета, из которой мы будем растить ветви — модули, плагины и т.д. Нам нужен некий интерфейс, через который будут «общаться» все наши модули. Для дальнейшей работы нам нужно познакомиться с понятием «шаблон проектирования» и парочка их реализаций.
Шаблоны проектирования
О том, что это такое и какие есть разновидности существует великое множество статей, тема достаточно заезженная и ничего нового я не расскажу. На любимой
Создание сайта. Выбираем CMS, Framework или разработка “с нуля”
И так, давайте поговорим о
CMS
CMS – система управление контентом, позволяет значительно упростить и ускорить разработку стандартных проектов: сайта-визитки, корпоративного сайта, интернет магазина…CMS очень хорошо использовать по назначению, т.е. именно для того чего она предназначалась, так если Вы хотите создать новостной сайт или интернет магазин то использовать лучше CMS т.к. изобретать велосипед здесь не стоит, большинство систем достаточно хорошо будут с ними работать.
CMS лучше всего использовать при: 1. Ваш сайт/сервис это стандартный корпоративный сайт, интернет магазин, сайт-визитки и при этом у Вас нету значительных требований к доработкам. 2. Ваш сайт/сервис повторяет логику работы используемой Вами CMS. Так существует большое количество CMS для сайтов знакомств, интернет-магазинов, купонных сервисов и т.д., т.е. не изобретайте велосипед, просто берите и пользуйтесь! 3. Популярность CMS позволит достаточно быстро найти разработчиков для нее.
Какие есть минусы:1. Популярность CMS (можно и в плюсы) они по своей сути “комбайны”, которые очень тяжелые. Для нормальной работы готовьтесь ставить отдельные сервера для сайта или очень хороший VPS сервер (при большом кол-ве посетителей). 2. Чем больше модулей Вы подключаете к сайту – тем более проблемно начинает работать Ваш сайт. 3. Поддержка проекта достаточно проблематичная штука и чистоту кода получить крайне сложно.
CMS хороша, чтобы ооочень быстро запустить сайт, сервис и при этом не сильно изменяя логику системы (желательно и дизайн) для проверки жизнеспособности бизнеса или если Ваш бизнес очень стандартный (интернет-магазин, новостной сайт). А вот если у Вас что-то нестандартное или Вы планируете постоянные доработки, тогда Вам подойдет лучше всего следующий подход.
FRAMEWORK
Фреймворк позволяет упростить жизнь в долгосрочной перспективе, если Вы считаете, что у проекта есть все шансы достигнуть успеха и у Вас есть значительные планы по доработкам, тогда это идеальный для Вас вариант.Какие плюсы Framework? Наша команда использует Framework Yii2, но эти пункты легко подходят к другим популярным framework: 1. Достаточно быстрый запуск проектов, относительно CMS. Конечно, разработка на фреймворке будет медленней, но, Вы получаете только то, что необходимо для сайта/сервиса и у Вас нету необходимости наблюдать тонну лишних элементов “комбайна”. 2. Безопасность проекта. Использование фреймворка позволяет значительно улучшить безопасность относительно CMS и использования 3. Удобство доработок функционала и чистота кода. 4. Скорость работы сайта будет значительно выше при сопоставимом количестве посетителей и одинаковом сервере.Легко поменять команду разработчиков, т.к. ядро системы не меняется и код читается достаточно легко (хотя и здесь можно напортачить).В нашей команде hix.one мы используем этот подход в большинстве случаев, хотя и работаем с CMS WordPress в случае если используются полностью стандартные функции.
РАЗРАБОТКА “С НУЛЯ”
Сейчас мы подходим к самому сложному и дорогому способу реализации сервиса. Здесь компетенции разработчика должны быть самые высокие, т.к. если изначально будет заложен неправильная структуру = ждите проблем, Вы потом этот код нигде не сможете применить и как бы печально не было – далеко уехать не получится.Но, стоит признать и достоинства, при соблюдении высоких компетенций ведущего разработчика:1. Скорость работы будет выше чем при использовании Framework2. Можно крутиться как угодно. Вы пользуетесь только тем, что Вам необходимо.Минусы 1. Перейти к другому разработчику достаточно сложно, т.к. требует время на “вход”. 2. Необходимо достаточно строгое документирование кода иначе потом там черт ногу сломит 3. “Дыры” в безопасности, а точнее необходимость это очень серьезно контролировать.Стоимость разработки в этом случае значительно выше относительно того, что может предложить Framework
ИТОГО: CMS используется там где уже 100500 аналогов (сайты визитки, интернет магазины…) и Вы не планируете серьезных изменений по коду; Framework – вы хотите сделать хороший сайт/сервис с расчетом на достаточное количество “фишек” с оптимальным соотношением цена/время/качество; Чистый PHP – поздравляю у Вас очень серьезный проект, который требует кропотливой и серьезной команды разработчиков, которые смогут сделать качественное ядро Вашего сайта/сервиса.
P.S. Hix.one - создаем, продвигаем и поддерживаем бизнес в интернете. Запускаем проекты в партнерстве.
Как сделать cms, разработка с нуля
Создано: 11.01.2015 Обновлено: 10.10.2018 Категория: РазноеЧасто для создания сайта используется готовая CMS, которая становится основой для развертывания сайта. У некоторых пользователей может возникнуть вопрос: как сделать систему управления содержимым (CMS) самому?
Сразу стоит сказать, что создание собственной CMS представляет собой непростой процесс. Для разработки сколько-нибудь пригодной системы необходимо владеть на хорошем уровне технологиями разработки сайтов с нуля - то есть нужно знать один из языков веб-программирования (например PHP), знать и уметь составлять запросы к базе данных (MySQL), уметь писать скрипты на JavaScript, знать HTML и CSS. Конечно, в некоторых случаях можно отказаться от некоторых вышеназванных технологий, но зачастую без этих средств не обойтись. Рассмотрим упрощенный процесс создания.
Проектирование системы
Создание системы управления содержимым нужно начинать с ее проектирования. Необходимо определить, как будет функционировать система, составить схемы взаимодействия основных ее частей. Для проектирования можно прибегнуть к различным специальным средствам, например, использовать программное обеспечение или составить простейшие схемы на простом листе бумаги. Обычно система имеет несколько основных компонентов, которые будут решать основные типичные задачи, такие как администрирование, управление материалами, регистрация и вход пользователей и так далее. Если необходимо использовать чистые адреса в системе, то прежде всего необходимо продумать каким образом будет происходить их обработка.
Реализация системы
После решения некоторых основных вопросов, касающихся базовых принципов функционирования системы, необходимо переходить к непосредственной реализации системы, а вернее ее основных компонентов. Типичным примером может быть система, имеющая одну точку входа в приложение (обычно это файл index.php), эта точка входа далее обрабатывает все запросы. Обычно стоит создать файл ядра, который будет содержать часто используемые функции (API), а потом функции из этого файла использовать во всех необходимых местах системы. Большинство функционала реализуется в дополнительных файлах ядра. Когда будет готов фундамент в виде основных функций для построения системы, можно перейти к реализации каких-либо конкретных задач в системе.
По мере развития вашей собственной системы управления содержимым, вам придется исправлять ошибки в ее работе, улучшать работу ее компонентов, а также добавлять новый функционал. Таким образом, шаг за шагом вы разработаете собственную CMS.
eqsash.com