О говнокоде в движках партнерских шопов

2011-06-19 09:50:59


Я обращаюсь ко всем владельцам партнерским программам, которые предоставляют движки интернет магазинов вебмастерам.
Также обращаюсь к разработчикам движков для подобных проектов.
Я выражу свое недовольство, которое перерастёт в полезные для вас рекомендации.

Решив начать работать с фармой в рунете, я выбрал наилучшую по отзывам партнёру doktordick.
Эта партнерка предоставляет несколько шопов, по сути отличающихся только дизайном.

рекомендации.

Решив начать работать с фармой в рунете, я выбрал наилучшую по отзывам партнёру doktordick.
Эта партнерка предоставляет несколько шопов, по сути отличающихся только дизайном.

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

Двиг шопа представлял кашу из php, html и js кода. Говнокод одним словом. Давайте рассмотрим файлы сайта.

Файлы движка партнерского шопа

На скриншоту я думаю, вы уже догадались, увидев такие файлы как buy.php, price.php, order.php, info.php, что единой точки входа в движке нет.
А это означает, что большинство элементов кода и верстки продублировано в файлах, которые открывают соответствующую страницу!
Короче говоря, если вы решитесь натянуть свой дизайн на движок, то вам придется ковырять 12 файлов, которые состоят из htmlphpjs каши.
Причем эта каше не содержит комментариев в коде. А ведь каждый разработчик знает, каково ковыряться в чужом коде, если он никак не документирован. А хороший код, как правило, сам себя документирует. Но рассматриваемый нами говнокод — это уж точно не этот случай.

Но если бы дело было только в дизайне. Я был в а*уе, когда установил шоп на свой хостинг. Оказывается на всех страницах одинаковый тайтл, который единожды присваивается
в header.php

На скрине видно, что если тайтле пустой, то ему присваивается значение. Если посмотреть все 12 файлов, которые инклудят header.php, то можно убедится, что переменная $title нигде не определена. Следовательно, человек, не разбирающийся в программировании, не сможет привести этот шоп в человеческий вид.

А ведь тайтл имеет огромное значение для внутренней сео оптимизации сайта. Да и страницы с одинаковыми тайтлами могут просто на просто попасть под фильтр пс.
Про meta_d и meta_k я вообще промолчу.

На страницах, которые имеют «постоянный» контент, тайтлы проставить довольно легко. Просто присвоить переменной $title значение перед инклудом файла header.php.
А вот со страницами, где контент зависит, например от id товара, придётся повозиться. Данные о товарах парсятся с сайта партнерки и кэшируются в папке cache.
Никакой БД, ребята. Придется покопаться в коде, чтобы подставить нужные тайтлы, дескрипшон и кейворды.

Лично я переделал движок так, чтоб данные грузились из mysql базы данных на моем хостинге. Сделал внутреннюю оптимизацию, в том числе и ЧПУ. В общем, на перетяжку дизайна, внутреннюю оптимизацию и другие модификации движка у меня ушло
немало времени.

А как же следует разрабатывать подобные движки шопов? Я порекомендую использовать mvc (Model-View-Controller) подход и преимущества объектно-ориентированного программирования.

Таким образом, дизайн / шаблон отделяется от бизнес логики. При таком подходе дизайн сайта можно сменить за пару минут. Да и код модифицировать гораздо легче будет.

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

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

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

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

Используйте ООП подход, отделяйте бизнес логику от представления, комментируйте код в местах, где это необходимо.

Я верю, что наступит время, когда мне не придётся больше сталкиваться с говнокодом.