S.Tominoff

Fullstack JavaScript разработчик

catalog.mosaica.ru

Проект на который мы в свое время возлагали большие надежды.

Разработка этого проекта велась непрерывно, в течение достаточно долгого времени, однако сейчас, по всей видимости, наметился перерыв.

Судя по логам - день рождения этого проекта 22 февраля 2013 года. Я предлагаю отойти от моего обычного стиля описания проектов в пользу исторического обзора.

 

1. Голый Bootstrap и AJAX

 

Первоначальная версия полностью базировалась на Twitter Bootstrap 2.3.0 и была разработана, до представления руководству, за 5-6 дней. Вот что у нас тогда получилось:

 


Как видно, все сделано достаточно аскетично

 

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

 

Тогда у нас была проблема с использованием git. Не знаю почему, но мы потеряли много времени на этом, и в итоге, просто расшарили папку с исходниками через Dropbox. (Что было довольно неудобно)

Это были наши первые шаги в адаптивную верстку, повсеместный AJAX и PHP фреймворк YII. Именно здесь мы впервые опробовали сервис “Яндекс Карты”, просто выставляя метку, с помощью “геокодера”, на карте:

 

 

Все было просто. В то время мы разработали несколько принципов, которые стали частью каталога на долгое время.

К примеру, очень долгое время без изменений работал скрипт преобразующий все клики по ссылкам в соответствующие AJAX GET запросы.

 

Самая большая проблема заключалась в синхронизации базы данных – она заполнялась из файлов .DB, используемых программой 2000 года, написанной, судя по всему, на Delphi. Основная проблема была не столько в извлечении данных, сколько в их кодировке. Это довольно странно, но единственная более менее адекватно подходящая кодировка CP-866, правда и с ней исчезают или каракулятся некоторые символы.

 

2. Первые шаги к коммерциализации

 

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

 

Однако, несмотря на это, было сформировано некое техническое задание, согласно которому мы и продолжили разработку каталога.

 

 

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

 

Тут мы добавили привязку компаний к нескольким рубрикам (дерево рубрик, либо поиск с добавлением), добавили роли пользователей (наборщик / редактор) и соответственно интерфейсы для них. А самое главное – мы добавили редактируемые пакеты (те самые, за которые платят клиенты).

 

 

Также, параллельно с этим, велась разработка системы “Интерфейс для работы курьерского агентства”, иначе и не назовешь:)

 

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

 

3. Текстуры, паттерны

 

Третья версия разрабатывалась уже другой командой. Весь состав разработчиков, за исключением меня был обновлен. Наконец-то в нашей команде появился настоящий web-дизайнер, с которым мы здорово переконопатили буквально все. Были добавлены уникальные для рубрик иконки, которые задумывались еще для прошлой версии, было добавлено больше интерактива и завязки на картах Яндекса, были добавлены всевозможные функциональные навороты – например, стало возможно создавать отложенные email-рассылки и прочие фичи. Весь проект был переведен с Bootstrap, на Kube3, всвязи с чем мы потеряли колоссальное количество времени на переверстывание всего что было создано до этого.

 

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

 

 

На этом скрине AJAX'ифицированы только кнопки регулирующие количество показываемых компаний, все остальное это голый html.:)

 

4. MODERN GREEN

 

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

 

 

Этот дизайн очень вдохновил нас на тот момент, мы серьезно переработали код проекта, внедрили AJAX по максимуму. Под этот дизайн было разработано очень много Javascript кода, переработано взаимодействие с YandexMaps, реализован поиск с помощью Sphinx.

 

Затем началась разработка сопутсвующих сервисов – iframe виджет для встраивания и внешняя поисковая строка.

 

Строка поиска разрабатывалась без применения каких-либо библиотек, работает все это при помощи JSONP.

 

Внешний вид встраиваемой строки поиска

 

Дизайн поисковой строки адаптировался под уже внедренный поиск Google. Код встраивания был максимально упрощен, однако у пользователя остаются возможности программного контроля над поисковой строкой. К примеру, пользователь может получить некоторую информацию от объекта виджета, либо переопределить поведение виджета. Пока что API программного управления виджета оставляет желать лучшего, но возможно в ближайшем будущем, станет доступно все, что было задумано.

 

Вторая часть нынешнего API – встраиваемый виджет, разработанный по подобию виджета 2Gis. По-моему, получилось очень даже неплохо.

 

Интерфейс встраиваемого iframe-виджета

 

FUTURE??

 

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

Одним словом - неизвестно, что станет в дальнейшем с этим проектом.

 

 

*   *   *

До меня дошли слухи, что в скором времени проект будет окончательно закрыт.

*   *   *