Webix продолжает собирать отзывы наших клиентов, чтобы совершенствоваться и искать новые ценные идеи. Сегодня с нами Мальте Суссдорф (профиль в LinkedIn). Мальте — опытный разработчик, тренер по Agile и Scrum. Его текущий проект — Cognovis, который занимается системами управления переводами. Мы рады, что Мальте согласился поделиться с нами опытом.
Привет, Мальте! Приятно познакомиться. Расскажите нам, пожалуйста, о проекте, над которым Вы работаете?
Привет, меня зовут Мальте Суссдорф, и я являюсь разработчиком программного обеспечения с 1992 года. В настоящее время я управляю компанией, которая разрабатывает решение для бюро переводов, позволяющее им вести весь бизнес, от привлечения новых клиентов до поиска фрилансеров, выставления счетов и разработки программного обеспечения для системы управления переводами. Это полностью интегрируемое решение с открытым исходным кодом. Обычно я работаю на стороне бэкенда. Я занимаюсь разработкой бэкенда с 1998 года.
Рис. 1: Приложение с включенным режимом перевода позволяет клиентам изменять отображаемый текст в зависимости от языка.
Как Вы узнали о Webix?
Через Google. В 2015 году мы решили отказаться от классического интерфейса на основе JS. Мы начали использовать Sencha в качестве фреймворка, но позже решили поискать что-то другое. У нас большой опыт работы с различными фреймворками, но мы пришли к тому, что использования лишь одного фреймворка недостаточно, чтобы делать то, что нам нравится. Кроме того, мы не хотим сами разрабатывать компоненты. Мы наткнулись на Webix в поиске и в конечном итоге стали использовать его. Начали с варианта с открытым исходным кодом и поняли, что у вас гораздо больше возможностей в коммерческом продукте, особенно с комплексными компонентами. До сих пор мы их не использовали, но планируем. Движущим фактором получения профессиональной лицензии была возможность использования комплексных виджетов и техническая поддержка. Документация и форум также были весьма полезны.
Какие из виджетов Webix Вы уже использовали?
Pop-ups, date picker, data tables, charts, input selectors; все приложение встроено в Webix Jet. Мы используем компоненты в Jet и пишем на Typescript. В значительной степени мы полагаемся на функциональность бэкенда, поэтому мы автоматически генерируем вызовы из Typescript и имеем интерфейсы, которые позволяют нам подключаться к любому сервису, выполняя код из определений OpenAPI. Это автоматическая генерация кода, что чрезвычайно полезно, так как в данный момент над этим работают только два человека. Мы стараемся быть на шаг впереди, когда дело доходит до генерации кода, и используем уже готовые решения.
Какие критерии были для Вас наиболее важными при выборе библиотеки?
Коммерческая поддержка, простота использования компонентов, Webix UI Designer. Поскольку мы используем Webix Jet, компоненты действительно просты в настройке. Таким образом, мы не используем то, что вы предлагаете внутри, но мы подключаем ваши компоненты, перенаправляем их во внутреннее хранилище, и все отлично работает. Пока Webix продолжает внедрять инновации, мы продолжаем его использовать.
Приятно это знать! Каковы были проблемы с использованием Webix?
Нам нужно было изучить логику, лежащую в основе Webix. Документация по Webix Jet неоднородна. Мы буквально собирали по крупицам информацию о том, как создать Webix SPA с помощью Webix Jet. Какое-нибудь руководство или видео нам бы очень помогло. Большинству приложений необходимо подключиться к бэкенду, мы хотели понять, как это сделать, и как включать такие компоненты, как чат, при отдельном запуске. Наш бэкэнд обладает большим функционалом, поэтому мы хотели связать свой бэкэнд с бэкэндом Webix в интерфейсном приложении. Это сработало и стало важным уроком для нас.
С тенденцией к переходу на микросервисы это может стать серьезным коммерческим аргументом для Webix. Если нужна функциональность, Webix предоставляет много нестандартных решений. И наличие руководства о том, как объединить их с существующим бэкэндом, будет преимуществом.
Я также заметил, что API не документируется автоматически. Если вам просто нужна генерация кода, это не включено в документацию. Интерфейс Webix знает, как общаться с бэкэндом, поэтому было бы хорошо, если бы все, у кого есть собственный бэкэнд, могли его автоматически кодировать, например, используя серверный код, сгенерированный из спецификации OpenAPI.
У Вас есть какие-нибудь идеи по улучшению Webix?
Ну, например, иметь компонент поиска. Мы разработали свой собственный, когда узнали, что у вас его нет, и можем с вами поделиться. Мне не хватало глобального поиска по нескольким бизнес-объектам и отображения этих данных каким-то образом.
Рис. 2: Полнотекстовый поиск в действии, показывающий типы клиентов (значок) и статус (цвет) в результатах поиска слева.
Мне любопытно увидеть Webix Designer, потому что у нас есть система документооборота в бэкэнде, и мы могли бы их связать. Это может стать идеей для дальнейшего развития. Не только создавать и сохранять дизайны, но и иметь серверную часть, которая позволила бы реализовывать разработанный рабочий процесс с использованием моделирования бизнес-процессов. Вы справляетесь со сложными серверными решениями, поэтому у меня есть ощущение, что вы сможете осуществить и такую идею. Это сделает Webix отличным вариантом для организаций, занимающихся бизнес-приложениями.
Рис. 3: Результаты поиска, показывающие тип проектов, а также действия, которые мы можем выполнить, нажав на значок справа.
Где Вы обычно находите информацию по ИТ?
Stack overflow, сайт Webix и форум, открытые ресурсы для бэкенда, курсы Udemy для изучения чего-то конкретного, например, Typescript.
Насколько вероятно, что Вы порекомендуете Webix своим коллегам?
Если мы говорим о стартапах, я бы рекомендовал Webix. Но большинство людей, которых я знаю, зависят от традиционных бизнес-решений, и они очень осторожно подходят к выбору поставщика. Они не хотят вкладывать деньги в изучение нескольких вариантов и обеспокоены тем, останется ли выбранный поставщик на рынке в течение следующих 5 лет. Это вопрос доверия.
Спасибо, Мальте! Было приятно с Вами поговорить!
Если у вас также есть что рассказать нам о Webix, пожалуйста, свяжитесь с нами. Мы договоримся об удобном времени для беседы.