На сегодняшний день существует огромное количество систем управления сайтом (CMS), и веб-студии, стараясь предложить заказчику максимально возможный выбор услуг, ведут разработки проектов на любой платформе, которую выберет клиент. Но является ли это на самом деле преимуществом и как сказывается на качестве разработки?
Прежде всего следует сказать, что в этой статье речь пойдет не о различиях CMS, а об общих сведениях разработки проектов.
Любой проект делится на две части: дизайн и программная часть. С одной стороны, все сайты, вне зависимости от выбора CMS, пишутся на одних и тех же языках программирования.
Самая главная вещь при разработке программ — ясно представлять конечную цель.Исходя из этого, заказчику может показаться, что программист сможет разработать сайт на любой платформе. Это бесспорно так. Но каждая система отличается своим набором функций и готовых решений. Поэтому вся команда должна постоянно пополнять свои знания об особенностях работы той или иной CMS – читать документацию и проходить сертификацию, что позволит понимать основы и решать задачи наилучшим способом. Чем больше систем пытается освоить программист, тем ниже качество разработки, т.к. он будет уделять недостаточно времени для решения стоящей перед ним задачи и сочтет, что наилучшим выходом будет написать «костыль» (достаточно вольный перевод слова work-arounds) и сдать проект.
Бьёрн Страуструп
При всём многообразии готовых решений (многие CMS предлагают в своем составе готовые интернет-магазины, публикации новостей, форумы), разработчику необходимо максимально эффективно интегрировать компоненты и собственный код в платформу. Ведь стандартные поставки редко решают задачи клиента и подходят под бизнес-процессы компании. Только тогда проект будет выполнять свою задачу, и приносить максимальную прибыль.
Преждевременная оптимизация — корень всех зол.
Дональд Кнут
Следующим этапом является оптимизация проекта. Обладая общими знаниями о веб-программировании, разработчик сможет оптимизировать проект лишь наполовину (объединив скрипты, правильно написав стили, подумав о весе загружаемых страниц и выбрав хостинг, находящийся как можно ближе к целевой аудитории посетителей сайта). Приведу в пример наиболее частую и знакомую всем ситуацию: посетитель сайта листает каталог интернет-магазина, или пользуется фильтром, пытаясь облегчить себе поиск нужных товаров, и в итоге ждет результата несколько секунд. Не желая тратить такое количество времени на выбор товара, посетитель скорее уйдет на аналогичный сайт с похожей товарной группой.
Отсюда следует вопрос: сколько же должна загружаться страница и какое время брать за эталон? От момента, когда пользователь начал открывать страницу в браузере, до её полной загрузки проходит около 346.8 мс (в это время включены подгрузка стилей, скриптов и картинок). Стоит отметить, что такая скорость загрузки будет достигаться лишь при условии, когда между компьютером пользователя и сервером будет кратчайшее расстояние, достаточная скорость канала, а так же необходимо учесть параметры латентности. В реальности скорость загрузки страницы будет равна примерно 2 секунды. Если же страница загружается сильно дольше, то, скорее всего, это связано с недочетами программирования при проектирования. Задержка может быть связана с неправильным написанием запроса к базе данных, что значительно может нагружать проект. Так же существенную нагрузку оказывают различные флеш-анимации или сторонние сервисы (погода, курсы валют, блоки социальных сетей и т.п.). Говоря о последних: не значит, что сайт нужно лишать данных сервисов, наоборот, нужно продумать, какие варианты их исполнения будут меньше всего нагружать страницу. И наконец, «медленные сайты» хуже индексируются поисковыми системами. Это связано с тем, что поисковый робот, не дождавшись загрузки страницы, пропускает её и не включает в общий индекс.
Итак, подведем итоги. Прежде чем стать клиентом какой либо компании нужно учесть следующие аспекты:
Стоимость добавления нового функционала, это не только затраты на написание кода. Цена также включает в себя препятствия для дальнейшего расширения… Трюк в том, что следует подбирать функции, которые не конфликтуют друг с другом.
John Carmack
Надеюсь, что эта статья поможет Вам определиться с выбором и избавит от проблем, возникающих после сдачи проекта.