Самописный движок для блога
Самописный движок для блога
Это даже не массовая статья, а заметка для самого себя и размышления над мирозданием. В том числе о создании самописного движка для блога.
Уходя в прошлое, и задумавшись о создании движка для сайта, я пришел к выводу, что текущий движок, точнее его основа немного не подходят для реализации классического движка блога.
Во-первых, я заложился на то, что статья на сайте не может выходить чаще чем раз в день. Собственно, основа движка была построена в то время, когда самые распространенные сайты обновлялись раз в неделю. Максимум два раза в неделю. Ежедневки были крайне редки и такой частотой обновлений могли похвастаться не многие крупные интернет-издания.
Во-вторых, изначально я заложился на статику. Точнее статьи должны были храниться на диске в виде массы файликов, а пользователю они должны были отдаваться после небольшой обработки скриптом. Сейчас же я думаю, что удобней было бы работать с динамическим содержанием. Но, в те времена, когда я делал сайт, максимум, что было доступно из БД, так это MDB-файлы. При работе с сильно нагруженными сайтами БД сильно выручает, но разгружая дисковую нагрузку, БД грузят процессор и оперативу.
В-третьих, язык программирования. Язык программирования я выбрал относительно спонтанно. Просто хостинг-площадка, которая мне досталась была основана на Windows 2000 Server. Но когда я получил в свои лапы хостинг на котором можно было писать скрипты, то мне было как-то безразлично какой язык использовать. Залез в инет, скачал синтаксис языка, а остальное додумал сам.
В-четвертых, полное отсутствие признаков CMS. Собственно, на основе своего сайта я быстро сделал новостной сайт для Красноярского Культурно-исторического музейного комплекса. А там уже предусмотрел использование CMS.
Заметки о доработке.
Что я хочу поменять в текущем движке.
- Вывод титульной страницы. Сейчас выводится последняя новость, а я хочу чтобы выводилось по два параграфа из каждой новости. Будет ли это динамическая генерация, или же это будут заранее сгенерированные странички, я еще не решил.
- Увеличить разрядность новостей. Хочется чтобы была возможность публиковать по несколько статей в день. Это будет либо нумерация, либо время. Для простоты генерации RSS-ленты, я бы остановился на времени.
- Если я буду исходить из того, что за основу берется конечная новость и титульная страничка генерируется на основе списка новостей, то я смогу реализовать более простую CMS чем при текущем подходе к новостям.
- Реализовать редактирование уже набранных новостей через веб-интерфейс. Возможно даже без использования WYSIWYG-редактора.
Над реализацией вывода первой страницы в виде списка первых новостей я уже работаю. Пока все это в виде наброска. Возможно я все успею сделать до начала выходных. На выходных я буду заниматься садово-огородными работами и по этой причине не смогу углубленно работать над модернизацией сайта.
Из наметок у меня планируется выводить десять превьюшек новостей. По заголовку и двум параграфам из каждой новости. Если каждый параграф со своим заголовком, то и эти заголовки я тоже выведу. Картинки у меня считаются параграфом, так, что картинки тоже будут выводиться на титульной страничке.
На многих движках выводится не предпросмотр и цитаты из записи, а полный текст записи. Я считаю такой подход сильно расточительным, так как на блоге обычно тусуются люди которые уже наверняка вчера прочитали вчерашние новости, а сегодня хотят сегодняшних. Новые же люди, придя на блог, смогут окинуть вступительные части статей и прочитать только интересующие их.
Еще одна небольшая проблема заключается в том, что каждая страничка новости хранится в отдельном файле и информация об адресе предыдущей и последующей новости тоже хранится в файле. Получается, что при добавлении новости следует дополнительно отредактировать предыдущий файл с новостью.
Так же, из-за файл-ориентированного контента, сложно будет генерировать титульную страничку на лету. Скорей всего она будет статическая и генерироваться после публикации каждой новой новости. Получится рационально, с малой нагрузкой и требуемым конечным результатом.
По поводу нагрузки, то она у меня на сайте минимальная, так как почти все страницы являются статическим HTML. Скриптов очень мало и они срабатывают по крону. Я давно планировал перетащить все в БД и оттуда рулить контентом, но меня постоянно удерживает от этого нехватка времени. Плюсов от переноса тоже мало, по крайней мере для меня.
Кстати, о нагрузках. Нашел коротенькую запись о том на каком движке крутится проект «Вконтакте». Если будет немного свободного времени, то освещу данный вопрос. Есть там некоторые спорные вопросы. Но они, вероятно, спорные для меня, а для создателей проекта они очень логичны и выверены.
Еще посматриваю в сторону переезда на новую систему комментирования. Из всего, что есть на рынке мне очень нравится DISQUS. Либо напишу свою собственную комментировалку к блогу. Но это будет не скоро. Одна из наболевших проблем заключается в том, что я еще не знаю как гарантированно избавиться от спамеров.
Тэги: SEO
Отредактировано:2020-10-01 05:35:39