А почему бы вам, коллеги, не приобщиться к интернет-магазинству?
Страшно? То-то же, и мне страшно. И здесь мы поговорим о том как побороть свои страхи. С помощью… объектно-ориентированного подхода.
Один мой знакомый интернет-созидатель весьма ловко зарабатывает на всевозможных потомках баннерной системы. Сайты, реклама, рейтинги цитирования… Однажды я его спросил — а почему бы тебе не смастерить собственный интернет-магазин (далее — «И-М»)? Мол, доходы в разы выше. В ответ он помолчал и сказал — сложно это.
Блоки и интерфейсы
Да, это сложно. Но путь решения проблем на пути становления интернет-магазинации на мой взгляд есть. Это классический «Divide and Conquer» — «Разделяй и властвуй», применяемый, в частности, в объектно-ориентированном программировании. Делим схему на слабозависимые блоки и соединяем через интерфейсы. Реализатора интерфейса впоследствии можно менять по своему усмотрению без воздействия на процесс в целом. Итак, посмотрим на схему ниже.
Здесь мы видим блоки по одну сторону баррикад: Промоутер, Склад, Продавец, Курьер. На другой стороне — Клиент. И, с потугой на нейтральную Швейцарию, — Платежная система.
Что с этими блоками делать?
Во-первых, заставить их поддерживать определенные интерфейсы. Назвался складом — будь добр, реализуй поддержку методов GetItemsList() и ReserveItem(). Да, ребята, да. Время Excel-я прошло, придется ставить сервак, покупать софт и тянуть выделенку. Иначе будут покупать у кого-то другого.
Кстати, для каждого блока это обинтерфейсчивание вполне реализуемо силами одного человека. Даже я лично возьмусь.
Конструируем И-М
Теперь примерим на одного человека возможность созидания И-М.
Итак, вперед выходит новый будущий интернет-торговец. Предположим, что домен RussianVegetables.com он уже купил. Далее он выбирает из списка овощебаз наиболее подходящий ему. Например по ценам (тут есть один маленький бонус, но о нем мы поговрим в следующей статье).
Поехали дальше. Раскручивать будем сами? Если нет, то ищем промоутера, объясняем ему схему и отправляем промоутить.
Итак, к нам пришел покупатель. Он посмотрел список товаров от Склада. И заказал мешок кормового турнепса. При этом он заполнил форму доставки. Кстати, ее писали вовсе даже и не мы сами. Мы просто вставили вызов формочки предоставленной интерфейсом курьера. Оплату покупатель сделал через внешнюю Платежную систему. Мы забронировали мешок турнепса на Складе и пнули Курьера через те же интерфейсы. Курьер пошел, забрал на Складе товар и довез его покупателю. Примечание: запутанные процессы покупки мы распутаем в следующих статьях.
А покупатель все это время думал, что перед ним мегакомпания со своим складом, курьерской службой и прочей атрибутикой. Наивный.
Выводы
Как мы видим, каждый блок вполне реализуем одним человеком.
И что — минусов нет? Да сколько угодно! Ответственность делится, поэтому случаи service temporarily unavailable придется вписывать в контракт с каждым интерфейсо-реализатором. И да, — самый главный минус — работать все равно придется :)
Страшно? То-то же, и мне страшно. И здесь мы поговорим о том как побороть свои страхи. С помощью… объектно-ориентированного подхода.
Под конец этого ежегодного съезда он выступал перед собравшимися, широким повелительным, великолепным взмахом руки указывал на огромную карту Соединенных Штатов, которая покрывала всю стену
за его спиной, и говорил так:
— Вот он, ваш рынок! Идите и продавайте!
Томас Вулф, «Домой возврата нет»
Один мой знакомый интернет-созидатель весьма ловко зарабатывает на всевозможных потомках баннерной системы. Сайты, реклама, рейтинги цитирования… Однажды я его спросил — а почему бы тебе не смастерить собственный интернет-магазин (далее — «И-М»)? Мол, доходы в разы выше. В ответ он помолчал и сказал — сложно это.
Блоки и интерфейсы
Да, это сложно. Но путь решения проблем на пути становления интернет-магазинации на мой взгляд есть. Это классический «Divide and Conquer» — «Разделяй и властвуй», применяемый, в частности, в объектно-ориентированном программировании. Делим схему на слабозависимые блоки и соединяем через интерфейсы. Реализатора интерфейса впоследствии можно менять по своему усмотрению без воздействия на процесс в целом. Итак, посмотрим на схему ниже.
Здесь мы видим блоки по одну сторону баррикад: Промоутер, Склад, Продавец, Курьер. На другой стороне — Клиент. И, с потугой на нейтральную Швейцарию, — Платежная система.
Что с этими блоками делать?
Во-первых, заставить их поддерживать определенные интерфейсы. Назвался складом — будь добр, реализуй поддержку методов GetItemsList() и ReserveItem(). Да, ребята, да. Время Excel-я прошло, придется ставить сервак, покупать софт и тянуть выделенку. Иначе будут покупать у кого-то другого.
Кстати, для каждого блока это обинтерфейсчивание вполне реализуемо силами одного человека. Даже я лично возьмусь.
Конструируем И-М
Теперь примерим на одного человека возможность созидания И-М.
Итак, вперед выходит новый будущий интернет-торговец. Предположим, что домен RussianVegetables.com он уже купил. Далее он выбирает из списка овощебаз наиболее подходящий ему. Например по ценам (тут есть один маленький бонус, но о нем мы поговрим в следующей статье).
Поехали дальше. Раскручивать будем сами? Если нет, то ищем промоутера, объясняем ему схему и отправляем промоутить.
Итак, к нам пришел покупатель. Он посмотрел список товаров от Склада. И заказал мешок кормового турнепса. При этом он заполнил форму доставки. Кстати, ее писали вовсе даже и не мы сами. Мы просто вставили вызов формочки предоставленной интерфейсом курьера. Оплату покупатель сделал через внешнюю Платежную систему. Мы забронировали мешок турнепса на Складе и пнули Курьера через те же интерфейсы. Курьер пошел, забрал на Складе товар и довез его покупателю. Примечание: запутанные процессы покупки мы распутаем в следующих статьях.
А покупатель все это время думал, что перед ним мегакомпания со своим складом, курьерской службой и прочей атрибутикой. Наивный.
Выводы
Как мы видим, каждый блок вполне реализуем одним человеком.
И что — минусов нет? Да сколько угодно! Ответственность делится, поэтому случаи service temporarily unavailable придется вписывать в контракт с каждым интерфейсо-реализатором. И да, — самый главный минус — работать все равно придется :)