Pull to refresh

На пути к созданию собственного движка интернет магазина

Reading time 4 min
Views 17K
Моя статья не открывает каких-либо технологических новшеств и скорее преследует цель узнать мнения Хабравчан. Возможно ваши соображения помогут остановиться и выбрать правильный путь.

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

Выбор тогда пал на два движка ImageCMS и HostCMS. Сейчас пройден уже достаточно немалый путь, но чем дальше я иду, тем больше сомневаюсь, правильный ли выбираю путь.


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

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

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

Со временем такие вещи, как php, js, html, mysql и т.п. перестали быть чем-то за гранью фантастики. Во всяком случае, для потребностей обывательского масштаба. Развивались и мои магазины, некогда начатые на ImageCMS и HostCMS.

Два года назад я понял, что в состоянии самостоятельно допилить один из интернет-магазинов, благо, допиливать нужно было преимущественно клиенткую составляющую. Этот магазин работал на ImageCMS. Убив уйму времени на разбор логики работы этого движка, пытаясь разобраться в документации и пр. я тогда подумал: “А не проще ли запились свой движок интернет-магазина, буду знать всю его логику и, как следствие, смогу оперативно вносить в него любые изменения под любые свои потребности”. Тогда эта мысль осталась только на уровне мысли и в ход не пошла.

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

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

Я сторонился каких-либо движков, т.к. был убеждён, что применять чьи-то шаблонные решения лишит меня гибкости, отнимет уйму времени на разбор документации и сделает зависимым от поддержки этих самых движков их разработчиками.
На пути к развитию очередного проекта я решил попробовать использовать какой-нибудь фреймворк. Изучив различные варианты, выбор пал на Symfony. Благо к этому моменту я уже начал понимать принципы объектно-ориентированного программирования, поэтому раскуривание маны не заняло много времени, результатом оказался доволен. Масса рутины выполнялось за меня.

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

И именно в этот момент я задумался, а стоит ли в этом случае писать всё с нуля (с фреймворком или без него), если всё равно базовая структура проекта получается ровно такая-же, как и в сторонних движках?! Не проще ли выбрать один-два движка, которые реализуют максимально широкий спектр возможностей, разобраться в них и допиливать под собственные нужды? Может быть пока я еще не начал писать свой собственный интернет-магазин, партнёрку или монетизацию стоит пойти другой дорогой?!

Именно здесь нужно поставить многозначительное троеточие…

Хабравчане, наверняка я не один такой, наверняка здесь много опытных веб-разработчиков. Интересно узнать ваше мнение. Обобщенно я бы сформулировал вопрос следующим образом: «Что эффективнее, писать проекты с нуля, используя по возможности фреймворки, или брать готовый движок и допиливать его под собственные нужды?»
Буду очень признателен за развернутые комментарии. Если вы считаете, что лучше использовать движки, то какие?
Only registered users can participate in poll. Log in, please.
Какой подход вы используете для разработки несложных проектов (интернет-магазины, интернет-сервисы, информационные ресурсы), чтобы впоследствии иметь возможность дорабатывать и расширять как клиентскую, так и серверную составляющую?
15.26% с нуля пишу весь проект целиком 76
50.2% самостоятельно пишу проект используя фреймворки 250
34.54% использую готовые движки, допиливая их при необходимости 172
498 users voted. 200 users abstained.
Tags:
Hubs:
+4
Comments 72
Comments Comments 72

Articles