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

в 19:28, , рубрики: HostCMS, imagecms, php, symfony, движки, движок, Разработка веб-сайтов, разработка интернет-магазинов, Разработка под e-commerce, разработка сайтов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

читатели, наверняка я не один такой, наверняка здесь много опытных веб-разработчиков. Интересно узнать ваше мнение. Обобщенно я бы сформулировал вопрос следующим образом: «Что эффективнее, писать проекты с нуля, используя по возможности фреймворки, или брать готовый движок и допиливать его под собственные нужды?»
Буду очень признателен за развернутые комментарии. Если вы считаете, что лучше использовать движки, то какие?

Автор: masterdrew

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js