"Используй то, что уже создано и не изобретай велосипед!", - сказали мне мои знакомые, когда я сообщил им, что собираюсь написать себе свою блоговую систему с нуля. В этой статье я хотел бы немного поговорить о том, почему меня не устроили те блоги, что предлагаются в различных бесплатных службах Интернета, почему я решил писать свой, что мне нужно от блога и что умеет этот.
Начать, я думаю, стоит с того, что же такое, собственно, блог.
Блог - это, изначально, публикационная система, пользователь которой, может не задумываясь о технических сторонах вопроса, просто помещать в сеть, на общее обозрение, свои статьи.
Позднее, этот термин стал практически синонимом термину "домашняя страничка" или "личный сайт". То есть, блог - это место в сети, где автор вытворяет что душе угодно. К сожалению, вседоступность Интернета, а так же, полная свобода авторов, привели к тому, что в каждом первом блоге мы видим посты типа: "Сегодня съел котлету... Она была жутко вкусная. Давно не ел котлет! А вы что любите есть?". Разумеется, эта информация мало кому интересна (хотя, если посмотреть на многокилометровые комменты под подобными статьями, то начинаешь в этом сомневаться), поэтому, я долго не мог смириться с тем, что блог - это все-таки не вселенское зло. Смириться с этой мыслью мне помогли некоторые хорошие блоги, которые я встречал в сети, авторы которых, писали действительно интересные определенному кругу людей статьи. Именно статьи, а не рассказы о том, "какая химичка сволочь" и как "меня никто не понимает". Чем больше я встречал хороших блогов в сети, тем больше я понимал, что мысли, роящиеся у меня иногда в голове, просятся на простор сети. Возможно, они будут кому-то полезными или интересными. Это и послужило толчком к началу моих изысканий готовой хорошей блоговой системы, которая бы меня полностью удовлетворяла. К сожалению, мои поиски не увенчались успехом.
Было два варианта: завести блог, воспользовавшись одной из бесплатных блоговых систем типа livejournal, либо скачать готовый блоговый движок сторонних разработчиков и подделать его под себя. Второй вариант меня не устраивал сразу. Во-первых, скорее всего, этот движок был бы написан на PHP, который я не очень хорошо пока что знаю, а так же, не очень люблю по причинам, которые, думаю, не раз будут мелькать в этом блоге. Так что, если бы мне приспичило внести изменения в код, мне пришлось бы разбираться в чужом, да еще и писать свой на нелюбимом языке. Во-вторых, если бы эта система была написана на Perl, какой смысл использовать чужую, когда гораздо интереснее, приятнее и полезнее написать свою? Ну и последний довод: 99,9%, что скачанный мной движок, был бы спроектирован с применением базы данных MySQL. (Да-да, блог, который вы читаете написан на Perl и стоит на простых текстовых файлах! Вы не ослышались - я не использую базу данных.) Все это делало практически бессмысленным поиск хорошего готового движка.
Как помним, был вариант завести блог в какой-нибудь социальной сети и радоваться жизни, абсолютно не запариваясь над вопросами технической реализации. Это меня бы вполне устроило, если бы выполнялись все мои требования, которые я предъявляю к своему блогу. Эти требования будут расписаны ниже, а пока скажу лишь то, что мне явно не понравилось в блогах рунета.
Пожалуй, это все основные причины, почему я отказался от услуг блоговых систем. Оставался один выход - написать систему своей мечты самому.
Прежде, чем садиться за программирование, я составил себе ТЗ (для тех, кто не в курсе - "техническое задание"). Для того, чтобы не расписывать долго какой же ОН, блог моей мечты, просто приведу этот файл ниже. Скажу лишь, что некоторые требования к нему были обусловлены тем, что мой брат тоже захотел себе блог. Хоть два пользователя и не много, а все же, систему пришлось писать многопользовательскую. К тому же, пришлось делать избыточное количество настроек, чтобы каждый из нас мог получить то, что он хочет. Итак, вот ТЗ:
ЗАДАНИЕ ПО ПОЛЬЗОВАТЕЛЬСКОЙ ЧАСТИ
+1) Несколько пользователей с уникальными дизайнами
+2) Уникальная система тэгов
+3) Страничная навигация
+4) Уникальный контент
+5) Возмоность подключения скриптов по желанию
ЗАДАНИЕ ПО НАСТРОЙКАМ
+1) Основное отображение: Короткая статья/длинная статья/Заголовки
+2) Отображение тэгов: Короткая статья/длинная статья/Заголовки
+3) Количество постов на странице: число/все
+4) Количество тэгов на странице: число/все
+5) Возможность постить под статьей (подключаема индивидуально для каждой статьи): on/off
ЗАДАНИЕ ПО АДМИНКЕ
+1) Система авторизации
+2) Управление статьями с возможностью управления изображениями
+3) Управление настройками
+4) Управление паролем
+5) Управление стилями
+6) Управление изображениями (отдельно, чтобы удобнее)>
Как видно по плюсикам, то, что получилось, вполне соответствует моим требованиям.
В этом блоге я не намерен писать про котлеты и про то, как я несчастен. Я собираюсь выкладывать только ту информацию, которую сочту полезной для кого-то еще. В основном, конечно, эта информация будет касаться того, что меня интересует, и чем я живу. Это будет так или иначе, отражено в наборе тэгов. Надеюсь, что мой блог не станет ненужным куском… информации, и пользу от него получит хоть кто-нибудь.
Спасибо за внимание :)