суббота, 27 февраля 2010 г.

Разработка CMS

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

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

Идеи новой CMS вынашивал в голове уже давно. По мере использования второй версии рождались все новые и новые пункты, которые надо добавить или исправить в третьей версии. Естественно, она будет быстрее, удобнее и стабильнее. Главный акцент будет сделан на простоту работы – чтобы пользователь мог без труда разобраться даже без чтения справочных материалов.

Разрабатываться (уже разрабатывается, если сказать точнее) система будет на базе CodeIgniter. Дабы не разводить холивар а-ля «какая система лучше», скажу, что на настоящий момент для меня это лучший framework на PHP. Возможно, вы предпочитаете другие системы – и это ваш выбор.

Система будет реализована в трех редакциях – базовая, интернет – магазин и SEO.

Базовая редакция.

Базовая редакция будет представлять собой некий универсальный инструмент для разработки широкого спектра сайтов. Публичное распространение не планируется – буду ориентироваться только на студийные проекты.

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

Отдавая дань юзабилити, система будет представлять собой как frontend – интерфейс, так и будет включена в сам сайт. Не буду подробно на этом останавливаться – поверьте, будет круто :).

Далее. Дерево разделов будет храниться в Nested Sets. В прошлой версии системы, при реализации транзитивного замыкания (обожаю эту умную фразу) был реализован классический подход, когда в потомке хранится ID родителя, и выборка дерева происходит путем рекурсии. Когда на систему поставили каталог товаров, включающий около 350 категорий, выборка происходила крайне медленно (около 2-х секунд). Боюсь представить, что будет с 5000-10000.

Наконец-то реализую изменение позиций разделов посредством drag'n'drop. Этот личная просьба дизайнера.

AJAX’а будет много, но в меру. В любом случае AJAX – слуга юзабилити.

Интернет – магазин.

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

Кстати, реализация рекомендательной системы в составе CMS для электронной коммерции – это тема моего диплома. Так что за качество ручаюсь.

Система будет доступна публично. Буду ли я ее распространять бесплатно, или продавать – еще не решил.

SEO.

Специально для этой версии будет разработан набор SEO – ориентированных модулей. Хотите генератор сайтов? Пожалуйста! Хотите черные методы SEO? Пожалуйста! Хотите подробную статистику по позициям сайта? Тоже никаких проблем!

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

Естественно, система будет платной. Сколько будет стоить – пока говорить рано. Следите за обновлениями в блоге.

 

Вот, собственно, и все. Надеюсь все три версии иметь в наличии уже к концу лета.

четверг, 25 февраля 2010 г.

Путь Веб - мастера

Здравствуйте, мои будущие читатели! Долго думал, чему посвятить свой первый пост. Некоторые пишут «Hello, World», некоторые о себе. Я хочу предложить вам статью о том, что я очень хорошо знаю и чем занимаюсь каждый день – о карьере WEB – мастера.

Часто ли вы видите рекламу, как просто зарабатывать в интернете? Часто кто-нибудь из ваших знакомых вдруг начинает делать «свой сайт»? Уверен, что 90% ответят утвердительно. Так чем же так привлекает эта стезя? И насколько результат соответствует ожиданиям?

Я начал тесно заниматься разработкой сайтов с 3-го курса. Сейчас оканчиваю 5-й. Позади полтора десятка проектов, двухлетний стаж работы веб-мастером «на дядю» и написание двух версий CMS (Система Управления Контентом, кто не знает). Сейчас имеем вполне успешно работающую WEB – студию. На будущее – большие бизнес – планы (как в оффлайн, так и в онлайн сфере). И если бы сейчас мне предложили вернуться назад и повторить, я бы подкорректировал некоторые моменты.

Изучайте SEO.

Мой путь преставляет собой достаточно классическую картину. Сначала изучение PHP «со товарищи» (MySQL, JavaScript в лице jQuery, …). Затем создание своего хомяка (домашней странички, кто не в курсе), первый заказ, около десятка работ, открытие WEB – студии. И именно сейчас я наиболее сильно ощущаю недостаток знаний в некоторых областях, в том числе продвижении сайтов. Пожалуй, это первое (после PHP), что надо изучать начинающему Веб – мастеру. Мое воображение рисует такую идиллию: написание на PHP первого сайта, как-то связанного со сферой ваших интересов (музыка, автомобили, девушки, морские свинки, гавайские шляпы), выкладывание его в сеть (обязательно на нормальный платный хостинг!!!), и на его базе изучение продвижения и поисковой оптимизации (SEO). Таким образом, вы сможете параллельно развиваться в двух областях. Через некоторое время (как раз когда вы более-менее изучите PHP), в ваших руках окажется два козыря.

Во – первых, это интересный проект, который параллельно является для вас источником дохода. При этом в курсе SEO вы как раз изучите, как заработать деньги на сайте. Это тем более важно, если вы планируете стать фрилансером и уйти на «вольные хлеба» или собрать команду и открыть веб – студию. Тогда ваш сайт (по крайней в первое время) станет единственным постоянным источником дохода.

Во – вторых, вы будете разбираться в SEO! Вы сможете предложить заказчику, помимо разработки сайта, его продвижение. А при устройстве на работу «на дядю» ваши знания сыграют немаловажную роль в формировании уровня заработной платы.

Разрабатывайте проекты.

Не занимайтесь разработкой маленьких скриптов. Естественно, если вам шеф поставил такуюзадачу, то ее необходимо выполнить. Но, по возожности, сосредоточьте усилия на одном большом проекте. Даже если вы только начали изучать PHP, то не пишите скрипты типа “Hello, world” или «программа для решения квадратных уравнений». Лучше сразу поставьте себе большую задачу, например, реализовать фотогалерею.

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

Во-вторых, работая над большими проектами, вы автоматически формируете свое портфолио. Несмотря на очевидность, многие не понимают, что при устройстве на работу или борьбе за заказчика преимущество будет иметь тот кандидат, который имеет за своими плечами ркупные обемные работы, а не тот, который всю жизнь писал «Hello, World».

Не пишите в стол.

Используйте все доступные возможности, чтобы люди могли использовать ваши работы. Пусть они будут не настолько «круты» или функциональны, как вы планировали. Главное, чтобы люди могли увидеть и принять участие  в том, что вы разрабатываете. Любой отзыв, даже отрицательный, будет дополнительной мотивацией к развитию. А если постоянно писать «для себя», то вы в скором времени просто потеряете интерес к делу.

Развивайтесь.

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

Развивайтесь. Программируйте не менее 5 дней в неделю. Если в настоящее время у Вас нет проектов, то придумайте их!