Самописные cms: Как я написал свою CMS, и почему не рекомендую вам делать то же самое / Хабр

Самописный сайт или CMS

Добрый день, читатели блога Freelancehunt! Меня зовут Георгий Малюк, и сегодня я хочу рассказать про опыт, который наша команда Milira получает каждый день при общении и работе с клиентами.

Очень часто к нам обращаются заказчики с просьбой сделать сайт-визитку без CMS (система управления контентом, движок). «Только индивидуальный, уникальный, самописный код!», — обычно так звучат фразы клиентов. Конечно, выделяться на просторах интернета индивидуальным дизайном — это здорово, но и на CMS можно сделать до неузнаваемости интересный сайт, у которого не будет аналогов.

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

Виды сайтов и их отличия

Разработка сайтов делится на два типа.

  • CMS — система управления сайтом (и тут неважно, это коммерческая, массовая бесплатная или самописная CMS).
  • Сайты, работоспособность которых разрабатывается программистами. Эксперты могут работать с фреймворками (программное обеспечение, облегчающее разработку и объединение разных компонентов) или использовать исключительно языки программирования.

Проведем анализ между CMS и самописным движком.

Критерий оценки

CMS

Самописный

Скорость загрузки

+

+

Возможность расширить функционал самостоятельно 

+

Наличее уязвимостей

Независимость от разработчика

+

Уникальность дизайна

+

+

Поддержка

+

Время на разработку

+

Сложность разработки

+

Стоимость разработки

+

В итоге:

8

2

Разберем кратко каждый пункт отдельно.

Скорость загрузки. На скорость сайта никогда не влияет «основа сайта» (не зависимо от того CMS это или самописный движок). На скорость всегда влияет: правильность верстки, обработка изображений, сжатие, кэширование, скорость обработки запросов и многое другое. Поэтому если сайт изначально долго грузится, то это значит, что он неправильно сделан.

Возможность расширить функционал самостоятельно. На самописных сайтах вы никогда без помощи опытного специалиста не сможете расширить функционал своего сайта, если вы сами таким не являетесь. С CMS дела обстоят по-другому. К примеру, одна из самых популярных и бесплатных CMS — WordPress, у которой есть свой отдельный ресурс с платными и бесплатными дополнениями, где вы сможете найти для своих нужд все подходящие плагины.

Наличее уязвимостей. По уязвимостям проигрывают обе стороны, так как нет гарантий, что ваш сайт не взломают. Если один человек смог написать защиту, другой сможет ее обойти, вопрос только во времени. Для таких случаев наша команда, например, предлагает своим клиентам ежемесячную поддержку их проектов. И тогда мы следим за обновлениями, нагрузкой на сайты и в кратчайшие сроки устраняем проблемы (если они появляются).

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

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

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

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

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

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

Так CMS все-таки лучше, чем самописный сайт?

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

Вывод

Несомненно, сайты на CMS обошли (почти по всем пунктам) самописные, особенно по скорости и стоимости разработки, и универсальности. Поэтому мы советуем нашим клиентам использовать CMS, если это возможно.

Это не значит, что самописные сайты хуже, но чаще всего в их разработке нет смысла. И «впаривать» клиенту продукт, ставя заоблачные цены за то, что можно сделать на готовой CMS — нет смысла. Недовольный клиент — это минус нашей репутации.

Какой бы вариант вы ни выбрали, делайте это неспешно, осознанно, тщательно оценив сроки, бюджет и риски.


От редакции. Благодарим автора за то, что поделился мнением, основанным на опыте работы. Если вы имеете за плечами опыт более 3-5 лет и вам также есть чем поделиться с нашими читателями, пишите!

Продвижение сайтов на самописных CMS.

Блог Web-студии РостСайт

Раскрутка веб сайта невозможна без использования удобного и функционального инструментария. Никто не прописывает теги страниц вручную, все пользуются системами управления контентом (CMS). В последнее время набирают популярность системы, созданные самостоятельно. Это так называемые самописные CMS. Они имеют определённые достоинства и недостатки.

CMS: стоит ли писать самостоятельно?

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

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

Самописная CMS нужна в следующих ситуациях:

  • создание сайта для решения узкой задачи;
  • высокие требования к безопасности портала;
  • не вызывает сомнений квалификация разработчика.

Какие положительные стороны у самописных CMS?

Во-первых, самостоятельная разработанная система управления контентом имеет более лёгкий программный код. Это ускоряет загрузку страниц. Раскрутка интернет сайта становится проще, так как поисковые роботы более дружественно относятся к «быстрым» сайтам.

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

Вопросы безопасности

Грамотно написанная CMS лишена многих уязвимостей, которыми кишат популярные решения. Это даёт много плюсов, в том числе безопасность seo продвижения сайтов. Но не всё так однозначно. Безопасность системы во многом зависит от уровня квалификации разработчика, от его багажа знаний и умений, касающихся вопросов безопасности.

Проблемы доработки

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

Когда Вы пользуетесь самописной CMS, внести изменения может быть не так просто. Для этого приходится либо много времени потратить самому, либо нанимать профессионалов. Последние, как правило, берут за свои услуги приличную сумму. Если Вы хотите заказать seo продвижение сайта, построенного на самостоятельно написанной CMS, этот фактор стоит учитывать.

Перенос сайта

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

Услуга переноса может стоить достаточно дорого, так как она связана с многочисленными техническими сложностями. Если та или иная компания предлагает создать сайт на самописной CMS, стоит хорошо подумать. Будет ли у Вас желание сотрудничать в дальнейшем? Может быть стоит заказать seo продвижение сайта в другой компании.

Перед принятием решения

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

Модернизация и разъяснение Окончательного правила Правил самонаправления врачей (CMS-1720-F)

  • Врачи

Обзор

20 ноября 2020 г. Центры услуг Medicare и Medicaid (CMS) издали окончательное правило для модернизации и уточнения правил, толкующих закон о самостоятельном направлении врачей Medicare (часто называемый «законом Старка»). ), который существенно не обновлялся с момента его принятия в 1989. Окончательное правило поддерживает инициативу CMS «Пациенты вместо бумажной работы», уменьшая ненужное нормативное бремя для врачей и других поставщиков медицинских услуг, одновременно усиливая цель Закона Старка по защите пациентов от ненужных услуг и направляя их к менее удобным, более низкокачественным или более дорогие услуги из-за финансовой корысти врача. В рамках инициативы «Пациенты вместо бумажной работы» окончательное правило открывает дополнительные возможности для врачей и других поставщиков медицинских услуг для координации ухода за пациентами, которых они обслуживают, позволяя поставщикам медицинских услуг из разных медицинских учреждений работать вместе, чтобы гарантировать пациентам получение помощи высочайшего качества. Кроме того, в рамках регуляторного спринта к скоординированному медицинскому обслуживанию CMS тесно сотрудничала с Управлением генерального инспектора Министерства здравоохранения и социальных служб в завершении политики, способствующей переходу к основанной на ценности системе оказания медицинских услуг и оплаты, которая улучшает координацию медицинских услуг. помощи среди врачей и других поставщиков медицинских услуг как в федеральном, так и в коммерческом секторах.

В этом информационном бюллетене обсуждаются основные положения окончательного правила (CMS-1720-F), которое можно загрузить из Федерального реестра по адресу: https://www. federalregister.gov/public-inspection/2020-26140. /medicare-program-modernizing-and-clarifying-the-thisician-self-referral-regulations. Окончательное правило устанавливает в положении, имеющем большое существенное значение, дату вступления в силу через 60 дней после даты отображения в Федеральном реестре. для всех положений, кроме одного (вступившего в силу 1 января 2022 г.).

Справочная информация

Когда в 1989 г. был принят закон Старка, медицинские услуги оплачивались в основном на платной основе. Закон справедливо признавал, что мотив получения прибыли может побудить некоторых врачей заказывать услуги, исходя из их личных финансовых интересов, а не блага пациента. По этой причине Закон Старка запрещает врачу выдавать направления на определенные медицинские услуги, оплачиваемые Medicare, если врач (или ближайший член семьи) имеет финансовые отношения с организацией, предоставляющей услуги. Существуют законодательные и нормативные исключения, но, короче говоря, врач не может направить пациента к какой-либо организации, с которой у него или нее есть финансовые отношения. Закон Старка также запрещает организации подавать претензии в Medicare за услуги, полученные в результате запрещенного направления, и Medicare не может платить, если претензии поданы.

С тех пор Medicare и частный рынок внедрили множество систем предоставления и оплаты медицинских услуг, основанных на стоимости, чтобы справиться с неустойчивым ростом затрат в текущей системе, основанной на объеме. Система, основанная на ценности, платит за качество обслуживания пациентов, а не за объем предоставляемых услуг. Правила, толкующие Закон Старка, не эволюционировали, чтобы идти в ногу с этим переходом. В своем нынешнем виде правила Закона Старка могут запрещать некоторые меры, направленные на усиление координации ухода, повышение качества и сокращение отходов. Хотя правила, толкующие Закон Старка, обновлялись несколько раз, все предыдущие изменения оставили в силе структуру, адаптированную к среде с оплатой за услуги.

CMS опубликовала Запрос на информацию (RFI) 25 июня 2018 г. , запрашивая мнения заинтересованных сторон о том, как устранить нормативные барьеры для системы оплаты и оказания медицинских услуг на основе ценности в соответствии с законом Старка. Комментаторы сообщили нам, что правила не поспевают за эволюцией ландшафта здравоохранения, который больше ориентирован на ценность, чем на объем. Они также запросили дополнительные рекомендации по фундаментальным требованиям и другим изменениям, чтобы облегчить нагрузку и упростить соблюдение требований. В ответ CMS опубликовала Уведомление о предлагаемом нормотворчестве (предлагаемом правиле) 17 октября 2019 г., в котором предлагались радикальные реформы правил, толкующих Закон Старка (84 FR 55766).

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

Исключения для соглашений, основанных на стоимости

Окончательное правило создает новые, постоянные исключения из Закона Старка для договоренностей, основанных на стоимости. Заинтересованные стороны отрасли сообщили нам, что, поскольку последствия несоблюдения закона Старка настолько ужасны, врачи и другие поставщики медицинских услуг могут быть лишены охоты вступать в новаторские механизмы, которые улучшат качество результатов, повысят эффективность системы здравоохранения и снизят затраты (или замедлят скорость их роста). Окончательное правило дает волю инновациям, позволяя врачам и другим поставщикам медицинских услуг разрабатывать и заключать соглашения, основанные на ценностях, не опасаясь, что законные действия по координации и улучшению качества обслуживания пациентов и снижению затрат нарушат закон Старка. Исключения применяются независимо от того, относится ли соглашение к уходу, предоставляемому людям, участвующим в программе Medicare, или другим пациентам.

Новые исключения, основанные на ценностях, включают в себя тщательно сплетенную ткань гарантий, гарантирующих, что Закон Старка продолжает обеспечивать эффективную защиту от чрезмерного использования и другого вреда. Эти окончательные политики признают, что стимулы отличаются в системе здравоохранения, которая платит за ценность, а не за объем предоставляемых услуг.

Новое руководство и разъяснения

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

Другие новые исключения

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

###

  • Предыдущий
  • Следующий

Зачем вам писать свою собственную CMS? 8 ноября 2012 г.

написание собственного .

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

Почему я решил написать свой собственный

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

Я также хотел сайт, на котором каждая страница могла бы быть синдицирована либо как JSON метаданные, либо как контент только HTML , и чтобы все, что нужно сделать пользователю, чтобы получить этот API контент, это добавить ". json" или ".html" на страницу URL . Насколько я знаю, ни одна существующая система не может сделать это без значительных модификаций.

Я много работал с WordPress, и я также хорошо покопался в установке, которую использует SitePoint — и это занимает много плагинов и собственного кода, чтобы все это работало. Я лучше потрачу это время на написание чего-то нового, не в последнюю очередь потому, что мне нравится создавать что-то самому .

Я также ненавижу окна редактирования на основе браузера , и даже самые продвинутые из них не могут сравниться с мощностью и гибкостью настоящего текстового редактора, такого как BBEdit или TextPad. Когда дело доходит до ежедневного обслуживания и обновлений, у меня есть способ работы и инструменты, которые помогают мне быть продуктивным, и почти все инструменты на основе браузера, которые я использовал, мешают этому. Мой опыт работы с WordPress, конечно, не помог, так как он постоянно расстраивает и раздражает меня на деструктивно анализирует мою разметку , меняет элементы, добавляет разрывы, превращает хороший HTML в плохой. Я не хочу иметь дело с этим. Мне нужна система, которая работает с обычными текстовыми файлами, которые вообще не анализируются, которые не нужно очищать, поскольку они не хранятся в базе данных.

Накладные расходы на использование базы данных вообще кажутся излишними для такого сайта, как мой, когда подавляющее большинство большинства страниц являются статическими HTML . Я подозреваю, что то же самое верно и для очень многих блогов — расточительно делать запрос к базе данных только для фрагмента разметки. Это может быть удобно для разработчиков и менеджеров, но не для пользователей.

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

Я хотел сместить этот фокус, чтобы чистый, надежный и доступный клиентский код всегда имел приоритет над тем, что легко сгенерировать серверу. И это означало не только изменение приоритетов написания серверной части, но и смещение акцента с динамических страниц на их предварительное создание.

Вот как работает SitePoint Reference — сложные подробные страницы генерируются из XML , но все это запускается заранее для создания по существу статических страниц, и это то, что получает пользователь. я не знаю ни одного CMS , которая работает таким образом, а сама ссылка на SitePoint была заказным решением (в основном разработанным Кевином Янком).

Преимущества самостоятельного написания

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

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

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

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

Когда вы используете систему с открытым исходным кодом, будет правильно и вежливо указывать разработчиков, обычно с уведомлением об авторских правах и ссылкой внизу страницы. Подобные кредиты — отличный сок для Google, но они также являются картами сокровищ для любого хакера, ищущего сайты с нужной версией нужного пакета, чтобы попасться на известный им эксплойт.

Один человек может уничтожить сотню уязвимых мест за вечер. Но у вас никогда не будет такой проблемы с самописной CMS .

Вам также никогда не придется думать о лицензировании или авторских правах . Когда у меня есть CMS , я могу делать с ним все, что захочу, не задумываясь о том, ограничено ли то или иное использование. И кто знает, может быть, однажды у меня даже появится товарный продукт!

Недостатки самостоятельного написания

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

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

Даже простая CMS очень долго собирается . Я знал, что это никогда не будет тривиальной задачей, но с самого начала я не предвидел, сколько времени я потрачу на это написание функций администратора . Оглядываясь назад, должно было быть очевидно, что создание инструментов администрирования будет (и было) около 90% работы. На разработку этой системы у меня ушло месяцев на разработку, и я бы солгал, если бы сказал, что все это время был полностью мотивирован!

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

Заключение

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

Глядя на это с точки зрения задач, это просто неэкономичное и эффективное использование моего времени , и если бы мое первоначальное мышление было обусловлено потребностями клиента, я бы никогда не делали этого выбора.