Как устроен bizwood.ru, часть 1
Apr. 14th, 2011 07:20 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Бизвуд ещё вовсю делается, но об основных моментах уже вполне можно писать. Извольте.
Идея Бизвуда мне пришла в голову чуть меньше двух лет назад, весной. Тогда к нам в офис с небольшим промежутком времени пришли два предпринимателя – один строил дома из лиственницы и жаловался, что возит её из Сибири, а второй – что не знает, куда эту лиственницу продать. Между ними при этом было километров двести – и они друг о друге ничего не знали. И узнать им было неоткуда.
Собственно, идея очевидна – сделать торговую площадку. Я порылся в сети и понял что рынок пуст (имеющиеся торговые площадки все страдали огораживанием и закрытостью). Фичи в первом соображении были такие:
- все предложения с чёткой ценой
- возможность голосования и рейтингования за предложение (типа отзывов на Я-маркете)
- геотэггинг – возможность отбора предложений по удалённости
- оплата – за строчку в месяц
- легкий поиск без всякой регистрации
Я сделал вкладку в OneNote и нарисовал первый черновичок (датирован 25 мая 2009, явно под влиянием Я-маркета):
Мы с Леной пообсуждали это – и я на какое-то время про идею забыл.
Вернулся я к идее уже поздней осенью – зарегистрировал домен и сел подбирать платформу, имея в голове довольно смутные предположения, что же я от неё вообще хочу.
Платформа всё не находилась под это подходящая, даже под смутные предположения, и я сделал подход с другой стороны. Начал рисовать. Второй подход к снаряду, абсолютно идиотский, выглядит так:
Примерно тогда же выписались уже гораздо более чётко фичи, что я хочу. Главные добавки были такие:
- каналы связи в провинции узкие, поэтому всё должно работать очень быстро – значит нужен AJAX
- для нормального отбора и поиска нужны разные представления для разных типов продукции (скажем, критерии отбора домов и досок совершенно разные)
- делать навороченный отбор как в Я-маркете не надо – люди так не ищут
Стало понятно, что готовой платформы нет. Даже серверного фреймворка, приемлемо покрывающего мои запросы, нет.Также стало понятно, что при имеющихся скиллах мне самому проект не провернуть, а нанимать и управлять командой программеров нет ни времени, ни денег.
И я решил серьёзно прокачать скиллы веб-разработчика. Вселенная, как известно, изобильна – в ответ на моё желание мне повалились небольшие и разные проекты, на которых можно было вполне поточить зубки.
Первым был zlobot.ru. После него стало понятно, что если я не буду применять какую-то библиотеку для отображения, я просто погрязну в интерфейсе. Пришлось изучить несколько библиотек и я остановился на jQuery. Не из соображений скорости и фич – тогда и побыстрее, и побогаче были фреймворки, а из соображений темпов развития библиотеки. Я не ошибся – сейчас жэкваери уделывает всех.
Потом стало понятно, что у меня существенные пробелы с организацией серверной части. То-есть, я довольно смутно понимал, как организовать эффективное хранение, поиск и выборку. Пришлось много читать.
Как выяснилось, потенциально highload-системы устроены совсем иначе, чем я себе представлял. Например, стало ясно, что упрощать себе жизнь и делать запросы к базе с использованием JOIN – это нэ. Надо изначально проектировать систему так, чтобы по-возможности избегать джоинов и всяких таких потенциально медленных штук.
Потом встал вопрос биллинга – тоже пришлось много читать.
Потом встал вопрос сериализации данных для передачи – как раз примерно тогда я сделал выбор в сторону JSON, а не XML. Несмотря на проработанность XML-технологий и мой огромный опыт в их использовании (на сегодня – почти 10 лет), XML для транспортных целей не подходит – на коротких данных он избыточен, слишком много разметки.
Пришлось изучать технологии, связанные с JSON.
Потом мне стало понятно, что будущее – за управление пальцами. Поэтому все мои подходы к дизайну многоуровневых пользовательских интерфейсов с навигацией, завязанной на выбор из дропдаунов, полное говно.
И я стал их пересматривать. Первый пробный камень – Калькулятор на наш сайтег (это уже май 2010). Вот про него: http://ermouth.livejournal.com/435471.html До этого я писал калькуляторы, которые выглядели примерно так (это 2005 год):
На мои новые соображения по дизайну пользовательских интерфейсов под пальцы изобильная вселенная откликнулась появлением Макса Немудрого с предложением написать онлайн-калькулятор для его новой типографии. Как говорится, почувствуйте разницу:
Главный момент здесь – никаких дропдаунов, чекбоксов и радио-баттонов, они все заменены на псевдолинки, в которые удобно тыкать пальцем (ну и они требуют одного нажатия, а не двух как дропдауны). Ещё момент – типовые значения рядом с полями ввода (см. поле для ввода тиража). И ещё момент – динамически обновляющаяся спецификация сразу под названием, которая позволяет понять что это за продукт, не просматривая весь интерфейс. Я такое и раньше применял – но не в публичных проектах.
Под эту считалку у меня написалась бета-версия новая библиотечки, которая рендерит интерфейс по JSON-описанию. Сейчас я её с модификациями использую повсеместно.
На сегодня всё, продолжение будет.
no subject
Date: 2011-04-14 03:29 am (UTC)Хорошо рассказываешь. Вообще мне нравится твой UI. На запад не хочешь?
no subject
Date: 2011-04-14 03:39 am (UTC)Теоретически хочу -- больше возможностей. Но я хочу на своих условиях, а не на типовых условиях работодателей.
no subject
Date: 2011-04-14 03:49 am (UTC)Ты рисуешь очень все в струе, но по-другому. Продолжай, не скатись в техподдержку.
no subject
Date: 2011-04-14 05:34 am (UTC)JOIN'ы плохо, да. Вообще, в универах учат, как нормально нормализировать базу. В реальной работе нужно в точности обратное знание :) Как правильно денормализировать :)
no subject
Date: 2011-04-14 06:53 am (UTC)no subject
Date: 2011-04-14 07:09 am (UTC)зато уже правда севера про меня написала. уж не знаю, гордиться или плакать о_О
no subject
Date: 2011-04-14 07:21 am (UTC)А добавление материалов как реализовано? Админ ручками прописывает или пользователь сам из личного кабинета?
no subject
Date: 2011-04-14 07:25 am (UTC)там всё же на деньги процесс завязан, поэтому я тут не тороплюсь -- лучше протестить по-хорошему.
no subject
Date: 2011-04-14 08:56 am (UTC)no subject
Date: 2011-04-14 09:17 am (UTC)предположим, ты зарегался без привязки к компании и оставил частное объявление "куплю". дальше возможно два варианта -- твой запрос виден всем и твой запрос виден только компаниям.
первый вариант -- плохой. прямая дорога к получению спама и непроверенных предложений. твой запрос будут видеть все, в тч поисковые системы. то-есть, по сути, это попытка создать поверх торговой площадки анонимный форум. идея так себе -- отбрасываем.
второй вариант -- твой запрос виден только компаниям и не виден поисковикам и вообще снаружи. значит, предполагается, что в компаниях сидят специальные люди, которые мониторят запросы в реальном времени, иначе с хуя ли тебе ждать сутки-двое-неделю, пока кто-то твой запрос найдёт. если тебе надо, ты и сам найдёшь.
чтобы посадить отдельного человека мониторить запросы, предприниматель должен понимать, что они есть -- эти запросы. мало того, их должно быть много, чтобы отбить вложения в этого человека. а запросов по факту нет.
частные объявления о покупке стало быть отвалились. поразмыслив таким манером я порылся в свое время в сети -- и убедился, что так думаю не один я. если услуга/продукт конкурентны, частные запросы на покупку не работают. твоих криков в космос никто не услышит.
теперь смотрим корпоративные объявления о покупке. например, лесозаводы могут круглый год закупать пиловочник и озвучивать на него цену. они собсно так и делают. но чтобы видеть такие предложения, надо быть участником биржи и платить мне денежку -- иначе мне нет никакого смысла это поддерживать. стало быть, такие запросы будут видны только корпоративным пользователям.
такая модель куда интереснее, чем частные объявления -- она предусмотрено, но пока не реализована. и вряд ли будет реализована быстро -- сначала нужно создать тягу из обычных пользователей, которые что-то ищут, и заинтересованных компаний, которые что-то продают.
no subject
Date: 2011-04-14 09:30 am (UTC)no subject
Date: 2011-04-14 09:51 am (UTC)no subject
Date: 2011-04-14 11:06 am (UTC)Как же я отвык от них. Какой ужас. Т.е. вместо того, чтобы пробежаться глазами по содержимому и принять решение, читать внимательно или нет, читателю нужно рассчитывать, что автор сам позаботился о том, чтобы самое интересное *для тебя* вынести в первые пару абзацев, а потом нужно принять чёткое решение и кликнуть или не кликнуть... бррр.
Нет, я не против катов, на здоровье. Пока у меня включено авторазворачивание, всё отлично :)
no subject
Date: 2011-04-15 04:46 am (UTC)а чекбоксы и радиогрупы чем не устроили? в общий стиль не вписались?
no subject
Date: 2011-04-15 09:23 am (UTC)