О проекте

Проект MyFirstSite.ru был запущен в феврале 2010 года. В то время один из моих друзей пытался сделать свой первый сайт, не имея изначально навыков веб-программирования и верстки. Я ему периодически помогал советами. Однажды он подметил, что неплохо бы было создать ресурс с такой информацией для начинающих веб-мастеров. Я подумал: "Почему бы и нет?".

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

Апрель 2011 года стал переломным в истории проекта. В конце месяца сайт был переведен на собственный легкий и быстрый движок (о движке чуть позже). Благодаря реорганизации структура сайта стала более простой и понятной, ускорилась работа сайта. Появилась более продвинутая система комментирования, раздел "Инструменты" и "Новости Интернета".

Учитывая тематику сайта хочется поподробнее рассказать именно о технической стороне его работы.

Хостинг

Сайт за время своей работы сменил несколько серверов. Сначала он работал под обычным хостингом, позже для удобного управления всеми своими проектами я приобрел виртуальный выделенный сервер с ОС Debian 5 и сайт переехал туда. На сервере были частые проблемы с каналом, поэтому пришлось его менять. Следующий VPS был стабильным и устраивал полностью. Работал он под Debian 6. Мне, все же, хотелось попробовать развернуть сервер на моем любимом ArchLinux и поэтому свершился очередной переезд в пользу технологии Xen.

Сейчас сайт работает на виртуальном сервере с ArchLinux. Территориально сервер расположен в датацентре в Германии.

Веб-сервер

Изначально сайт работал под управлением веб-сервера Apache. С переездом на виртуальные сервера я решил опробовать связку Nginx + Apache, что, как я считаю, оправдало себя полностью. Nginx и Apache имеют специфичную для движка сайта конфигурацию. Допустим, запрещено любое прямое обращение к PHP-файлам, а разделение запросов осуществляется по следующему правилу:

location / {
    root                    /var/www/myfirstsite.ru/html;
    expires                 30d;
    try_files               $uri $uri/ @fallback;
}

Движок

Движок сайта написан на PHP и использует СУБД MySQL. По сути, это форк другого движка (автор D. Blokhin). Он представляет из себя набор PHP-классов. Движок имеет такие возможности как модульность, шаблонизацию, событийность, блочное кеширование. Функционал сайта построен на нескольких десятках модулей.

Процесс разработки сайта

Подсветка синтаксиса

Для подсветки синтаксиса на страницах сайта используется GeSHi. Это довольно функциональный и удобный инструмент для подсветки синтаксиса написанный на PHP. Специальный модуль использует функционал GeSHi и позволяет "разукрасить" код в статьях, комментариях и в любом другом месте.

Поиск

Для поиска по сайту используется поисковая система Яндекс. Модуль поиска использует API сервиса xml.yandex.ru.

jQuery

Не так давно я все же решил подключить эту библиотеку. JS-кода на сайте совсем немного. На данный момент он обрабатывает форму поиска и реализует стилизацию checkbox'ов в формах. Все реализовано таким образом, что без проблем функционирует с отключенной поддержкой JavaScript в браузере. Сайт заранее переведен на jQuery с учетом дальнейшего развития проекта.

Комментарии

Оставить комментарий »

 
Joker-jar
13 октября 2011, 17:51
#1
 

Любопытный факт: я сторонник операционной системы Linux, у меня ArchLinux стоит на всех машинах (дома, на работе, нетбук, веб-сервер). Но на сайте описываю Windows. Так как практически все новички - пользователи Windows. Для создания публикаций использую виртуальную машину с Windows (кстати, лицензионной).

Быть может, имеет смысл затронуть и тему Linux в своих статьях...

Михаил
18 ноября 2011, 10:32
#2
 

Проект действительно очень интересный: понравился дизайн сайта и представление материала. Но вот как отфильтровать статьи по определенной тематике так и не нашел. Как так? Нужно сделать меню, фильрующую статьи по HTML, CSS, PHP, CMS, MySQL и т.п.

Joker-jar
18 ноября 2011, 11:13
#3
 

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

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

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

Михаил
18 ноября 2011, 11:29
#4
 

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

Михаил
18 ноября 2011, 11:35
#5
 

думаю нужно и то и другое. Разделы, как основной фильтр статей (причем именно для статей), и облако тегов для всего сайта.
Что касается последовательности, то ее никто не отменял. Уроки могут быть последовательны, а статьи они сами по себе. Получится такой универсальный сайт с учением и просто интересными статьями.
Это мое мнение.
Вообще я бы посоветовал вам объдинить усилия с этим автором: http://www.webremeslo.ru/html/glava10.html у него замечательно все организовано (но не идеально) и он сам по себе очень хорошо материал излагает. Но только по CSS и HTML. А вместе вы сделаете сайт с материалам по всем актуальным языкам.
Мой коммент можно удалить, если что.

Joker-jar
18 ноября 2011, 11:37
#6
 

Согласен. В принципе, наработки уже есть. Проект Winner Code создан мною на том же самом движке, что и MyFirstSite.ru, там есть и дерево разделов, и облако тегов. Нужно лишь выкроить время и перенести модули.

Joker-jar
18 ноября 2011, 11:47
#7
 

Тут есть еще один нюанс: у меня хронологически связаны статьи и уроки в более раннем периоде. Допустим, статья "Язык разметки гипертекста", за ней следует урок "Создание HTML-страницы". В общем, для отслеживания этой хронологии я и сделал дополнительный раздел, где весь материал отсортирован по дате размещения.

Но дополнительной структуризацией я обязательно займусь в будущем.

Оставить комментарий

Ваше имя
 
Ваш e-mail
 
Комментарий