понедельник, 28 марта 2011 г.

Создать сайт? Зачем с нуля, ведь есть CMS

Нам понадобилось написать сайт, или если выражаться более корректно разработать сайт. В большинстве случаев новички бросаются в бой. Устанавливают xampp или denwer и начиная с программки "hello world" вдруг загораются желанием написать свой мегадвижок, на котором потом можно будет строить сайты любой сложности. "Вот это круто!" Но секундочку, давайте все же определимся? какого именного конечного результата вы хотите достичь: создать сайт или все же написать свой движок?

Здесь есть один важный момент, если вы сразу ринетесь разрабатывать свой движок вы потратите уйму времени на "индусский" программинг, ну или говнокод. Причина проста - у вас нет навыков разработки серьезных проектов, а самому на пустом месте освоить новые технологии очень сложно, и тут вспоминается такая прекрасная фраза как "обучение на примерах". А за примеры стоит брать высококачественные CMS, либо для отчаянных новичков это могут быть frameworks, в которые вложено множество сил и времени программистов высокого уровня. Что может быть лучше чем заглянуть в контрольную отличника?)

CMS - Contant Management System, говоря простым языком применительно к веб, это готовый сайт который можно настроить под свои нужды. Настройка может осуществляться как изменениями в администраторской части так и изменением кода CMS.

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


Ну что же, CMS так CMS. Но вот возникает вопрос какую же выбрать. Предлагаю подготовить небольшой план.
1. Платная или бесплатная?
2. Платформа и среда разработки
2. Что же мы все таки ищем?
3. Сообщество, кто все эти люди?



1. Есть множество как платных так и бесплатных cms, и какие из них надежнее вопрос довольно спорный. С одной стороны большое количество платных CMS имеет закрытый код, что затрудняет хакер доступ к нему(коду), но в тоже время обнаруженная уязвимость может жить довольно долго, а хакеры будут ей пользоваться раз за разом, пока наконец клиенты не поднимут панику и разработчики не обнаружат дыру. А бесплатные CMS имеют открытый код в связи с чем баги в подобных системах всплывают довольно быстро очень много любопытных программистов анализирует такой код.
Я сторонник бесплатного софта, и помимо всего прочего бесплатный софт имеет наибольшее сообщество, но об этом в в последнем пункте.

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


2. Здесь все довольно просто если вы новичок, и только собираетесь окунуться в веб разработку, то несомненно вам стоит остановится на LAMP (Linux, Apache, MySQL, PHP). Эти непонятные для многих термины нечто иное как основа для любого сайта, у которой конечно же есть альтернативы. Ключевым здесь пожалуй является PHP. Ну во первых, это язык понять и разобраться в котором проще всего. Во вторых количество CMS на этом языке очень даже значительное, ну и в третьих когда соседский кул программер говорит что PHP не круто, стоит напомнить ему на чем написан facebook.
Если вы вдруг насторожились при виде слова "Linux", то зря - все это прекрасно работает и на Windows.

Вывод: начинать проще всего с PHP & MySQL. А чтобы не потерять запал к созданию сайта в муках настройки веб сервера воспользуетесь xampp - это сэкономит много времени и сил.


3. Итак что же вам нужно, вот самый основной и каверзный вопрос. И ответ "сайт" или "сайт как вот этот" не подходят.
В первую очередь надо определится с направленностью ресурса, как то представительский сайт (сайт компании), блог, либо социальный ресурс.
Если вы планируете создать свой блог и нет желания разбираться в программировании то начните с Blogspot
На практике грани между существующими CMS сейчас настолько размыты, что сложно понять какая из них ориентирована на представительский, какая на социальный ресурсы. Тот же wordpress некогда самая популярная CMS для блогов уже позволяет создавать все что душе угодно и соц порталы и форумы.
В общем на этом этапе необходимо прибегать к аналитическим статьям в поиске тех продуктов, которые по максимуму перекрывают ваши нужды. Ну к примеру можно попробовать сравнить CMS вот здесь


4. Если вы нашли CMS в которой все вас устраивает, и все вроде у нее есть, и симпатичная она на внешний вид, не торопитесь. Узнайте как много людей ею пользуется, продолжается ли ее разработка и поддержание. Много ли доступно расширений/модулей/аддонов и темплейтов. Поверьте от этого многое зависит, если CMS всего то полгода, и о ней знать никто не знает будьте уверены, что ни полезного опыта ни рабочего сайта вы не получите. Потому что обязательно всплывут ошибки реализации, недоработки и т.д. А вот зарекомендовавшие себя продукты уже имеют твердое ядро, стабильность и множество дополнительных расширений - что в свою очередь сэкономит вам время и деньги.
Как узнать? Да просто, посмотрите сколько ссылок на эту CMS в google, найдите сайт разработчика и оцените активность на нем, быстро ли исправляются баги, часто ли выходят версии, и вообще есть ли на этом сайте кто-нибудь помимо разработчика.

Заключение:
Если вам нужен сайт, то используйте CMS - это сэкономит вам и время и деньги, а так же позволит добиться конечно результата в кратчайшие сроки.
Вот несколько cms которые на слуху:
wordpress - очень популярный прежде блог, теперь это уже полноценная CMS с множеством модулей, темплейтов. Один из самых оптимальных продуктов для новичков с амбициозными проектами.
joomla- к ней я испытываю жестко устоявшеюся апатию, она безусловно простая, но не задерживайтесь на ней, двигайтесь дальше.
drupal- золотые наручные часы, множество шестеренок, заморочек, и вообще сложно въехать как это все работает, но зато когда въедешь.. отличная CMS. но не советую с нее начинать не программистам.
livestreet- проект русский, ориентирован на социальные ресурсы, т.е. когда поситители сайта сами формируют наполнение сайта, пишут статьи, а другие пользователи оценивают. Таким образом на главной страницы всегда отображается самое интересное.
instantcms- так же русский проект, cms c довольно большим функционалом, для того чтобы начать и сделать свой сайт за пять минут вполне даже подойдет, а дальше уже решать вам устраивает или идти на поиски чего то большего.