Webix на практике: цифровые решения для агробизнеса и облачный инструмент для быстрой разработки

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

Сегодня мы берем интервью у одного из пользователей Webix, программиста Валерия Кузнецова. Он разрабатывает цифровые решения для автоматизации как ведущих агрохолдингов, так и небольших агрохозяйств. Использование Webix позволило Валерию в сжатые сроки создать эффективный облачный инструмент для разработки — WizXpert. Это решение объединило в себе процессы работы с бэкендом, фронтендом и разработку гибридного мобильного приложения. Интерфейс системы создан на основе Webix UI.

— Здравствуйте, Валерий. Для начала, расскажите несколько слов о себе, своей профессиональной деятельности.

— Программирование — мое призвание. Свою первую программу я написал в 1998 году, в 19 лет. Это была учетная система для местного коммерческого магазина, написана на FoxPro.
После этого я занялся решениями для ювелирной отрасли. У меня был хороший проект. Этот продукт покупали в основном частные предприниматели. Программой до сих пор активно пользуются в Украине и России.

Следующими были CRM-системы для оптовых и розничных магазинов, производства одежды.

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

— Расскажите о своем проекте. В чем его суть?

В концепцию WizXpert заложена суть Webix — скорость разработки решений, модульность и готовый дизайн. В результате получился современный, красивый и надежный продукт.

В инструменте реализован модуль контроля версий и система контроля доступов и ролей.

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

WizXpert хранит заготовленные стандартные UI виджеты Webix для проектов, пустые формы мобильного или web-приложения, динамические стили, темплейты. А сквозной поиск позволяет находить информацию по всем модулям, независимо от их типа.

WizXpert

— Как вы узнали о Webix?

— Мне кто-то о вас рассказал на конференции. Уже и не вспомню точно, кто именно. Это был 2013 год. У вас тогда была версия 2.3.

— Как родилась идея проекта? Почему выбор пал именно на нашу библиотеку?

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

На все было 3 месяца. Первые результаты надо было показать уже через 2 месяца.

Я имею большой опыт разработки и давно присматривался к Webix. Был знаком с его компонентами, но также рассматривал и другие существующие на рынке решения. Всё же Webix мне нравился больше всего, особенно, когда вы перешли на 6-ю версию с material design. Это было очень красиво, эффектно и функционально. Я понял, что здесь я смогу всё сделать быстро, не теряя в качестве продукта и визуально красивом содержании. Так и родилась идея облачной системы, которая объединила бы все три платформы сразу: мобильное приложение, фронтенд и бэкенд. В качестве редактора исходного кода используется open source версия Ace Editor. Для получения зависимостей я добавил в редактор функционал распознавания исполняемых модулей и выделение имен таблиц из SQL запросов.

Планирую создать возможность определять в коде webix-компоненты для создания умного auto-complete и подключения CSS стилей.

— Вы один работали над проектом?

— Реализация системы полностью моя. Но нужно отметить, что участие в разработке принимали еще два человека. Одним из них была моя жена Дарья, бизнес-аналитик. Она подсказала мне, как сделать так, чтобы в системе было легко ориентироваться, выстраивать дерево документов и модулей таким образом, чтобы любой человек мог мгновенно разобраться в коде. Кроме неё, участие принимал наш руководитель Александр Бондик.

— Сколько времени ушло на создание вашей системы?

— 2 месяца, но я непрерывно продолжаю работать над ней. Стараюсь усовершенствовать. Каждый день добавляются новые функции и расширяются возможности.

— Согласны ли вы с тем, что использование Webix реально ускоряет разработку?

— Вы знаете, я просмотрел другие компоненты и почувствовал, что ваша библиотека — это то, что мне нужно. Я согласен на 100%, и даже больше, что Webix ускоряет разработку, всем об этом говорю. Это действительно шедевр. Плюс, красоту никто не отменял. Ваши компоненты уже содержат в себе готовый дизайн.

— Каковы самые сильные стороны библиотеки, на ваш взгляд?

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

— Считаете ли вы Webix удобной библиотекой для создания мобильного приложения?

— Да, весь мобильный интерфейс гибридного приложения – это Webix UI. После столь длительной работы с Webix, впечатления самые положительные. Он не глючный и невероятно прост в освоении. Хорошая документация. Я просто беру компонент и быстро его выстраиваю.

Так как время было для меня решающим фактором, я сделал редактор кода и заготовки из компонентов вашей библиотеки. Позже нашел аналогию редактора с американской разработкой iСloud 9.

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

В конечном счете в системе будет древовидная структура документации. Аналог Сonfluencе. В единой системе можно хранить бизнес-документацию и управлять системой разработки. Заказчики из бизнеса будут иметь доступ только к проектной документации и смогут сразу понимать, как и зачем работает каждый модуль и какова суть проекта в целом.

— Были ли проблемы при использовании Webix?

— У меня проблем с Webix практически не возникало. Единственное, что в карусели (прим. UI виджет JavaScript Carousel), когда я хочу сделать боковой слайдинг страниц, прокручивается сразу несколько. В остальном все было очень удобно: делаю окно, выкладываю компоненты, описываю код. Для учетных систем лучше и не придумаешь. Если встроить визуальный дизайнер кода и подвязывать CSS, скорость была бы еще выше.

За счет чего мы увеличиваем скорость? Совершаем минимум действий, чтобы не нужно было что-то искать. Когда я вникаю в проект, у меня под рукой всегда есть папка с кодом. Здесь же я вижу в консоли отладчика, куда идет запрос. Выбираю нужную часть запроса, вставляю в поиск и сразу нахожу, что это за модуль. Человек даже с небольшим опытом в разработке разберется очень быстро. Мне это было очень важно, так как работы у меня все время очень много, и нужно быстро вспоминать, где лежит та или иная часть кода.

На Webix вообще все пишется очень просто, поэтому всего один день и система готова. Люди на такие проекты тратят года, а тут все за пару месяцев (прим. на разработку инструментария и конечного продукта). Я могу сказать, что мы теперь заняли лидирующую позицию на рынке. Холдинг настолько доволен этим проектом – и его интерфейсом, и скоростью работы, и отсутствием багов.

— Задействовали ли другие библиотеки в работе над проектом?

— Мне пришлось задействовать библиотеки для работы с картами. Решение содержало в себе несколько модулей для работы с картографической информацией. Например, когда человек приезжает в поле, ему нужно определить расстояние до периметра. Эта задача уже была кем-то решена, поэтому я подключал и другие библиотеки. Например, Jquery. В целом, сторонние библиотеки использовались мной по-минимуму.

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

— Вы использовали стандартный дизайн или прибегали к кастомизации?

— В веб-части я использовал стандартный дизайн с минимальными изменениями. Добавил черный в формы. В мобильной версии изменений было больше, так как мне нужно было сделать темную тему. Если честно, мне ваша дарк тема показалась не до конца проработанной. А вот материальная — очень красивая и вписалась идеально. Дело в том, что можно же еще шаблоны вставлять внутрь. Там, где у меня были сложности, я просто вставлял шаблон.

— Как Webix повлиял на ход проекта? Возможно, натолкнул на новые идеи по его реализации?

— Самое главное, что Webix помог воплотить мою идею в жизнь. Такой системы ни у кого нет. Могу сказать, что мышление при работе с библиотекой и вправду меняется. Могу описать это так: Webix — это множество маленьких независимых элементов конструктора, из которых я складываю полноценное эффективное решение.

— Планируете ли использовать Webix в своих новых проектах?

— Конечно! Я планирую дальше развивать только эту систему. Мне она кажется очень удобной. Ведь чем быстрее мы разрабатываем проект, тем быстрее мы зарабатываем деньги. Проект начинает терять в цене сразу после старта разработки. Чем больше затягиваются сроки готовности продукта, тем менее рентабельным он становится. Поэтому мы особенно заинтересованы в том, чтобы все было быстро, а использование Webix гарантирует высокую скорость разработки.

Хочу еще раз отметить, что благодаря мне и Webix, компания, в которой я сейчас работаю, сэкономила невероятные деньги. За счет быстрой разработки мы за 3 месяца выпустили в жизнь полноценное решение контроля качества состояния посевов. Реальные данные помогают оперативно принимать управленческие решения, что в сфере агробизнеса является основой эффективности производства.