Ускорение веб-разработки с фреймворком Limb

Ускорение веб-разработки с фреймворком Limb

В этой статье хочу рассказать о том, как я пришел к идее написания своей собственной cms. В целом эффективность проекта можно представить как отношение прибыль/затраты (затраты могут быть как временные, так и финансовые). Естественно, что результат в прямом отношении зависит от внешнего вида и удобства сайта. Вот только беда то в чем... Для конечного пользователя сайт за 100-200 тыс. руб. не сильно отличается от сайта за 10-20 тыс. руб. И заказчику бесполезно рассказывать о том, насколько красив, гибок и элегантен код вашего проекта.

А в чем соль-то?

 

В процессе разработки сайтов приходилось иметь дело со многими cms для сайта. Наиболее полный перечень cms и фреймворков можно найти на странице, указанной выше. У каждой есть свои достоинства и недостатки. Для каждой из них легко можно представить ход развития и усложнения - добавление новых фич, удовлетворение новым требованиям. Как итог такого развития - многие cms для сайта имеют чрезвычайно сложные панели управления. А чего хочется в первую очередь? Правильно, чтобы панель управления была как можно более простой и интуитивно понятной для пользователя, чтобы этого самого пользователя не приходилось учить работать с cms в течение нескольких месяцев.

Семь раз отмерь...

 

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

Готовые решения можно разделить на несколько групп. Рассмотрим их подробнее.

Конструкторы сайтов. Данное решение дает максимальную скорость - сайт за считанные минуты. Но вот для того, чтобы что-то изменить требуются огромные затраты.

Коробочные CMS. Это, как правило, так же довольно жесткое решение. Однако, в таких системах управления контентом, стараются смягчить эту самую жесткость обилием всевозможных настроек. И, кажется, - все отлично, да вот беда - админка превращается в мешанину настроек, от которых разбегаются глаза. Да, сторонними разработчиками пишется множество различного рода дополнений и плагинов. Но для самостоятельного написания таковых нужно четко понимать архитектуру соответствующей системы управления контентом.

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

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

Таким образом, приходим к тому, что выбор инструмента разработки очень важен.

...один раз отрежь

 

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

Думаю, читатель уже догадался, на что выпал мой выбор. Конечно, фреймворки. В виду наличия опыта работы с фреймворком Limb, другие варианты и не рассматривались. Но думаю тут и не важно, каким именно фреймворком вы пользуетесь.

Чтобы организовать быстроту, пришлось написать скрипт для создания директории базового проекта, создания соответствующих виртуальных хостов, инициализации базы данных и т.д. Т.е. автоматизировать тот медленный старт при разработке с фреймворком. Раз уж нам требуется создать cms, то без некоторой жесткости не обойтись. В эту жесткость входит некоторый "базовый набор", из которого можно ваять что-то кастомное, без затрат на разработку того, то уже готово.

Некоторые подробности

 

Используемый мною фреймворк позволяет переопределить практически все, что можно. Поэтому были написаны базовые классы и "модули" для создания своей cms. Все эти новые модули были объединены в один репозиторий. Теперь в совокупности со скриптами, написанными ранее, за считанные секунды создается проект, репозиторий для него с уже готовым набором базовых функций. И что следует заметить, гибкость разработки совершенно не пострадала.

Что теперь оказалось в моем распоряжении? Быстро разворачиваемый базовый сайт (стандартные модули можно выбирать по собственному желанию). Теперь при выявлении ошибок в "базовых модулях" они будут исправляться на всех проектах. А если в конкретном проекте требуется изменить часть функционала, то такая проблема решается простой подменой требуемых классов. Кроме того, в набор наших "базовых возможностей" включен функционал для быстрой разработки панели администрирования (так сказать конструктор кода).

Использование такой системы позволяет сильно сократить время программиста при создании новых сайтов в разы (хотя и не моментально).

Что касается набора базовых возможностей. То его я оформил как отдельные пакеты Limb (по образу и подобию). В их состав вошли следующие:

  • базовая панель администратора
  • обратная связь с генератором форм
  • фото и фотогалерея
  • вопросы и ответы
  • seo фишки
  • документы (древовидная структура страниц)
  • навигация
  • блоги
  • новости
  • каталог товаров
  • древовидный каталог товаров
  • корзина товаров
  • крон
  • рассылки
  • голосования
  • параметры
  • текстовые блоки
  • средства отслеживания пользователей на сайте
  • добавление видео

По сути, данный набор функций покрывает большинство потребностей среднестатистического сайта.

О дизайне

 

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

Что получилось?

 

Очевидно, что принцип "Любой каприз за ваши деньги" не перестает работать. Однако такое построение проекта позволяет удовлетворить максимум капризов клиента, при минимальных затратах на разработку. Именно это позволяет делать сайты качественнее и дешевле. Любое новое нужное трудоемкое решение добавляется в общий набор "базовых возможностей", что опять же сокращает затраты.

Нет комментариев.
Добавить комментарий
Вам необходимо включить показ изображений в браузере для того чтобы увидеть код

Дайте нам знать, что вы - живой человек. Для нас это важно!
Кликните, если плохо видно

Прежде чем высказать свое мнение, прочитайте пожалуйста: правила

Рейтинг@Mail.ru