Pull to refresh
18
0
Валера @Valery77

User

Send message

Использование Symfony2 для создания e-commerce портала с нуля

Reading time5 min
Views14K
Всё началось с того, что мы задумали веб портал для продажи мебели. Это веб портал для продажи предметов мебели и интерьера, и что у меня самого есть множество идей, которые мы должны реализовать в рамках будущего портала. Все эти идеи были похожи на интернет-магазин, но при этом они не совсем укладывались в рамки обычного магазина. Например, товары мы должны показывать в красивых интерьерах реальных квартир — это интересно, а главное удобно для покупателя. Значит, у нас на сайте должны быть отдельно карточки и интерьеров и товаров, которые образовывают структуры. Вот еще задачка: сам портал не имеет своего склада и логистики, а только агрегирует информацию: собирает, анализирует, красиво показывает и генерирует продажи у партнеров. Значит нужно ввести различных поставщиков, показывать различные условия доставки и т.д. Поэтому перед нами встал вопрос: что мы можем использовать, чтобы создавать портал не с нуля, но при этом иметь большую гибкость при кастомизации выбранных решений. Итак, что же у нас получилось.

Выбор LAMP
Вначале мы выбрали общий стек технологий. Здесь было просто: ведь наиболее распространённый выбор технологий для веб-порталов — это LAMP (Linux, Apache, MySQL, PHP). Мы не хотели изобретать велосипед, писать все с нуля, так как это и дорого и долго. Нам нужно было максимально быстро создать портал с использованием каких-либо библиотек/фреймворков, возможно CMS/E-commerce систем. Если LAMP технологии наиболее распространены — то значит, мы сможем найти большое количество различных open-source решений, а из них сможем выбрать что-то подходящее для «фундамента» своего портала.

Готовые E-commerce системы
Как только мы выбрали PHP и все, что с ним связано, мы начали смотреть, что уже есть готового по нашей тематике. Конечно же, мы сразу начали думать про готовые E-commerce системы, например, набирающую популярность Magento. Нашли нескольких партнеров Magento, которые занимаются кастомизацией и внедрением этой системы. Попросили сделать примерную оценку того, во сколько нам обойдется «заточить» Magento под все наши требования, включая оптимизацию быстродействия, с которым у Magento, как оказалось, есть сложности, особенно у бесплатной версии. Наши расчеты показали, что по стоимости работ и дальнейшей поддержке в краткосрочном периоде — это будет даже дороже, чем, если бы мы писали все с нуля на чистом PHP. Мы посмотрели другие E-commerce решения: osCommerce, ZenCart, PrestoShop. Здесь ситуация была примерно такая же, а может даже хуже. Таким образом, мы вернулись в исходную точку поиска.

Фреймовики и библиотеки
Тогда мы решили смотреть в сторону более общих решений: фреймворков и библиотек. Мы решили остановиться на выборе 3-ех наиболее популярных фреймворков: Zend 1.11, Symfony 2 и Yii. Здесь у нас был более технологичный подход к выбору: мы хотели полную поддержку PHP 5.3, причем, желательно, чтобы сам код фреймворка предполагал стиль написания PHP 5.3, а именно как можно больше ООП, ведь нам же это все еще поддерживать потом. От Zend отказались сразу. Он очень монструозный, а нам нужно процентов 20 от его функциональности. К тому же ожидаемый 2.0 тогда был еще в форме идей на сайтах основных разработчиков. Yii был еще очень свежий на тот момент (осень 2011 года), а мы знаем, чем бывают чреваты эти «горячие пирожки» (как показало время – версия Yii 2.0 с полной поддержкой PHP 5.3 пишется до сих пор). И мы решили не рисковать и взять наиболее готовый и стабильный продукт – Symfony 2.

ORM решения
Итак, у нас были выбраны и платформа и фреймворк: LAMP + Symfony2. Нам также нужно было решить проблему с уровнем хранения и представления данных в нашем портале. Наверное, хорошо написать что-то специфическое для себя – это и работает быстрее и меньше кода. Однако основная наша проблема была в том, что мы делали свой продукт, и у нас не было четкой и постоянной спецификации. Улучшения же (читай: частые изменения) в сущностях, их взаимосвязях и бизнес-логике, требовали какого-то гибкого решения, которое мы могли бы быстро изменять и не бояться получить массу regression багов. В данном случае мы пошли хорошо проторенной дорогой. Сейчас большую популярность набирают различные ORM решения. Это не зависит от стека технологий или домена приложения. Посему после недолгих рассуждений мы выбрали ORM Doctrine 2. Тем более что она входит как стандартный модуль в Symfony 2. К тому же, мы понимали, что с ростом объемов данных и взаимосвязей между сущностями при работе на портале, мы перейдем к использованию нереляционной СУБД, например, MongoDB, а с выбранной ORM – Doctrine это также просто реализуется.

Итого у нас получился интересный набор технологий:

LAMP + Symfony 2 + Doctrine 2.

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

Читать дальше →
Total votes 23: ↑11 and ↓12-1
Comments23

Ремарт: как я создавал свой бизнес

Reading time4 min
Views1.1K
Часть III: Команда

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

Как организовать команду и заразить всех членов общей целью? Меня все время мучает вопрос: «ну, почему они не понимают?» Ведь сначала нужно напрячься и крепко поработать, чтобы получить результат и только потом можно будет думать о том, как бы это расслабиться. Очевидно! Оказывается, так думают не многие, я бы даже сказал меньшинство. Оказывается, большинство хотят все прямо сейчас. Их мало заботит, что ты сейчас в самом начале пути, что у тебя нет ресурсов, чтобы сделать их жизнь сказкой, и что им нужно ужаться в расходах на какой-то промежуток времени. Есть такое понятие «стремление избегать неопределенности» и, оказывается, большинство людей максимально стремятся этой самой неопределенности избегать.
Работая в стартапе, команда сталкивается как раз с тем, что такие неопределенности на каждом шагу. Касаясь конкретно нашего проекта так уж точно. Мы выводим на рынок новый продукт, никто так раньше не делал, а значит понять ценность продукта для потребителей сложно. По нашей оценке – это ценно, но это наша оценка, а провести какое-то исследование – дорого. Часто мы обращаемся ко мнению со стороны, чтобы оценить сервис и всю нашу. Спасибо за отзывы в предыдущих статьях, вижу что вам нравится, что наши усилия не проходят зря и нам необходимо двигаться только вперед. Мы работаем, общаемся с партнерами, для них это тоже ново и непредсказуемо, реакции тоже разные. Ворочать носом нам вроде как не пристало, мы ведь еще пока маленькие и не очень всем интересные. Выручку просчитать невозможно: как построить модель, если не с чем сравнить и не к чему привязаться? Соответственно и команде пообещать нечего, во всяком случае, обоснованно просчитанного. Полная неопределенность.
В таких условиях мы делаем упор на нескольких направлениях:
Читать дальше →
Total votes 11: ↑8 and ↓3+5
Comments6

Ремарт: как я создавал свой бизнес

Reading time3 min
Views1.2K

Часть II: Важное решение



Помните я рассказывал о начале своего бизнеса Ремарт? Здесь первая часть моего рассказа.

Продолжая тему инвесторов: итак, не взял я деньги у того инвестора, потому что получил другое предложение, от которого я уже никак не мог отказаться. Можно просто взять деньги, однако очень важно понимать, у кого ты берешь эти деньги. У меня было несколько предложений на разные суммы, но все эти деньги стоили по-разному. Первое и самое очевидное то, что каждый из потенциальных инвесторов просил разную долю. Но не стоит забывать, что помимо суммы и доли, также нельзя сбрасывать со счетов того кто именно дает эти деньги. Меня привлекло одно предложение больше остальных, потому что я знал потенциального инвестора. Я точно знал, что я могу на него положиться, и что вместе с его деньгами — я получаю намного больше. Я получаю увлеченного сильного члена команды, который сможет стать одним из Лидеров проекта. Для меня на тот момент это было определяющее, потому что идея без реализации — это просто фантазия. Сильная команда намного ценнее идеи. Сильная команда способна реализовать, если не эту идею, то любую другую, которых очень много вокруг. В среде стартапов крутится фраза про концепцию «FFF» (Friends, Family, Fanatiсs). У меня сработало на друзьях.

image

Читать дальше →
Total votes 16: ↑9 and ↓7+2
Comments7

Ремарт: как я создавал свой бизнес

Reading time5 min
Views2.9K

Часть I. Идея и инвесторы



Началось все с мебели. Листая один популярный журнал, я заметил статью с описанием интересного бизнеса. Там американская компания производила и устанавливала скрытые проходы. Это что-то вроде того, что можно увидеть в фильме о приключениях Бэтмена. Я до этого случая видел что-то подобное только в фильмах, мол, расставляешь шахматные фигуры на поле с электроникой внутри, и если правильно их расставить – то дверь откроется. Удивительное дело, вот мне и запомнилась эта статья.
Через пару месяцев жизненные обстоятельства сложились таким образом, что передо мной стал вопрос, как организовать собственное дело.
Дальше - больше.
Total votes 72: ↑63 and ↓9+54
Comments36

Information

Rating
Does not participate
Location
Россия
Registered
Activity