Собственная CMS с нуля или Готовая?
Меня периодически спрашивают, мол Рома скажи какая система для управления контентом сайта лучше, та что написана самостоятельно или готовая. Например какая нибудь из популярных: Joomla, WordPress? На что я однозначно ответить не могу, т.к. у этих двух вариантов есть свои плюсы и минусы, что вполне естественно. Но тем не менее давайте немного поразмышляем, раз уж такой вопрос стоит.
И так, преимущества готовой популярной CMS (буду перечислять в виде списка, дабы так удобнее)
1) Достаточно продвинутая админская зона сайта, богатый функционал
2) Гарантированная разработчиком безопасность, стабильность и надежность
3) Доступность инструкций, помощи и техподдержке по работе с CMS
4) Большое разнообразие уже готовых шаблонов, модулей и плагинов для выбранной вами системы.
5) Постоянное обновления и дополнение тех или иных функций, а так же средств защиты от атак и устранение разных уязвимостей.
На ряду со всеми плюсами, есть и весомые минусы, поехали:
1) Часто разработчики пытаются оснастить свою CMS всем, чем только можно, это могут быть и библиотеки работы с графикой для разных PHP модулей, различные текстовые редакторы WISIWIG, занимающие огромное количество пространства на сервере. Перегружают интерфейс админки Ajax, Jquery, JS, Mootool и прочими библиотеками. В результате движок становиться очень тяжелым и не поворотным, часто тормозящим на слабом хосте или при сильных нагрузках (посещаемости).
2) Безопасность хоть и гарантированна, но ввиду того, что исходных код зачастую доступен каждому, в том числе и злоумышленнику, становиться уже серьезной проблемой. Т.к. популярные системы и их устройство изучают все кому не лень, находят там дыры, и тут же спешат воспользоваться ими.
3) Модули и прочие компоненты которыми завален весь интернет, зачастую написаны без соблюдения рекомендаций разработчика, студентами и просто школьниками. О их стабильности порой и речи быть не может.
Как видно, часть преимуществ готовой CMSки, тут же опровергалась.
Давайте теперь подумаем о преимуществах самописного движка:
1) Высокая скорость работы, за счет откидывания всего не нужного функционала, и затачивания движка под конкретные условия.
2) Как правило безопасность таких систем (если разрабатываются они грамотным программистом) очень высока, ведь все возможные дыры и уязвимости ни кто не знает кроме разработчика. Т.к. исходники не доступны общественности.
3) Документация в таких случаях просто ненужна, ведь CMS пишется с нуля, и соответственно тот кто ее пишет знает все до мелочей.
4) Скорость разработки дополнительного не стандрастного функционала, очень высока. Соответственно гибкость и масштабируемость самой системы упирается лишь только в вашу фантазию.
5) Солидность, как не крути, а этот плюсик для кого-то основной.
Недостатки у такого подхода будут следующие:
1) Привязка заказчика к непосредственно разработчику, т.к. не всегда сторонний программист может разобраться в написанном коде, да еще если он на каком нибудь необычном мало кому известном фреймворке.
2) Длительность разработки. Т.к. многие функции реализуются с нуля.
3) Опять же если вы пишите такую CMS не сами, а заказываете программисту, стоимость работ значительно выше, нежели при использовании готовой.
Окончательный выбор: все же за вами, а лично я считаю, что для быстрого создания малых коммерческих проектов лучше использовать уже готовую и популярную CMS. Но при этом в арсенале держать самописную, для решения каких либо специфических задач.
Похожие записи
2 комментария to “Собственная CMS с нуля или Готовая?”
Оставить комментарий
Full Stack
Senior, Architect
предложить оффер
- jQuery: как получить значение атрибута?
- Интеграция с API ОСАГО сайта sravni.ru
- PHP работа с изображением, класс SimpleImage
- Комментарии на PHP, Ajax, mySQL
- PHP: Категории бесконечного уровня вложенности.
- Nginx редирект на другой сервис с сохранением URL спросил (а) Сергей
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Как создать Telegram-бота с авторизацией через сайт к записи
- PHP скрипт: каталог закладок на сайты к записи
- Валидация на PHP к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
- Подключение(интеграция) приема платежей WeChat Pay на сайте к записи
- Интеграция Тинькофф банк Эквайринг на сайт для приема платежей к записи
Archive
- +2024 (7)
- Сентябрь 2024 (1)
- Август 2024 (5)
- Май 2024 (1)
- +2023 (27)
- Ноябрь 2023 (1)
- Октябрь 2023 (13)
- Сентябрь 2023 (10)
- Апрель 2023 (1)
- Март 2023 (1)
- Февраль 2023 (1)
- +2022 (21)
- Декабрь 2022 (11)
- Ноябрь 2022 (1)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (36)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (41)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (7)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Как добавить алиас сетевого интерфейса в Centos 7 (Linux) 23.09.2024
- Вывести в меню индикатор новых новостей и статей на сайте Тильда 28.08.2024
- Свой сетевой диск для iPhone — поднимаем Samba на Centos 27.08.2024
- Бекап, сохранение и восстановление БД MySQL 21.08.2024
- Авторизация SSH с помощью ключа в Putty 20.08.2024
Здравствуйте, я бы выбрал лучше готовую CMS, но создавая свой движок Вы наберетесь опыта в программировании!
Я для небольших проектов использую готовую CMS, а для своих задач пишу свою с нуля под конкретную задачу.
Хотелось бы иметь «каркас», который потом наращивать в зависимости от задач, чтобы постоянно не писать его с нуля) Если есть такая возможность, то было бы хорошо узнать ее)) Про сохранение файлов конфига и функций, то такое, это минимум)) И у меня все функции хранятся в отдельном файле, который подключается к файлам.
Еще была практика в том, чтобы сделать систему с разными стилями. То есть, например для изменения стиля всего проекта на новый, при этом оставить доступный старый и переключаться между ними. Работает, но очень сложно было ее обслуживать, особенно, если сделал систему, она работает и нужно добавить какой-то модуль после нескольких месяцев) Приходится снова вспоминать, что, где и как взаимодействует и работает)) То я решил отказаться от этой идеи со стилями и писать систему под конкретную задачу со своим одним стилем.