Жёлтое — Вакуум — Облако

в 18:29, , рубрики: Анализ и проектирование систем, высокая производительность, Облачные вычисления, облачные сервисы, Разработка веб-сайтов, хабро-самоубийство

Последние несколько лет я, по непонятной причине, стараюсь подтолкнуть людей к расширению профессионального кругозора. Я убежден, что в современном мире невозможно занять достойное место, занимаясь узкоспециализированной деятельностью – только узкоспециализированной деятельностью (за редкими исключениями).

Есть, например, ребята, которых называют «кодеры» — они ничего не хотят знать о предметной области, заботятся только о качестве кода, о производительности, о правильной структуре данных.

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

Соответственно, у кодера есть ограничение по местам работы – подходит чистая ИТ-компания или предприятие с большим и разношерстным ИТ-отделом.

Универсал имеет немного больше возможностей – он умеет понимать язык пользователей, почти все диалекты. Но универсал, как правило, не умеет говорить на языке бизнеса (этот язык отличается от диалектов пользователей). На схожую тему уже есть статья, повторяться не буду.

Но сегодня – не об этом, сегодня – о технологиях.

Недавно я вылез из уютного желтого домика и обнаружил, что в мире много задач определенного класса, которые лично я совсем не умею решать. Звучат задачи примерно так: создавать бизнес-приложения высокой доступности. Проще говоря, веб-приложения для бизнеса.

Конечно, раньше я слышал о таких приложениях, я ведь ИТ-директором работал. Компании нужен был сайт, компания хотела и облачную CRM, и доступную из любого места систему управления задачами и проектами, и интернет-магазин. К сожалению или к счастью, я всегда умел уходить от самостоятельного решения таких задач с помощью известного всем приема – найти подрядчиков или готовое решение по модели SaaS. В итоге, компания тратила огромные деньги, не получая достойного результата. Но об этом позже. Единственное исключение в этом списке – система управления задачами и проектами, которую я сделал на 1С в тонком клиенте, но гордиться тут нечем.

Еще сидя в уютном желтом домике, я вместе со своими ребятами поковырялся в Битриксе и его интеграции с 1С. Нашли одну удобную для себя нишу: оказалось, что внутри Битрикса скрывается база данных на MySQL, и с ней вполне-таки можно работать через механизм внешних источников данных 1С. Можно и писать, и читать, и создавать таблицы.

В голове зародилась мысль, что на этой простейшей технологии можно построить неплохие, полезные и эффективные решения. Например, мы переделали свой «слайдер» для корп.портала в битриксе, на которой стоял уже настоящий слайдер (который листается пальцем на телефоне), а в его слайдах выводятся графики по показателям из 1С средствами Google Charts. Выглядело забавно, реализовывалось элементарно, и весьма симпатично смотрелось на телефонах руководителей – масштабировалось до фулскрина, понимало поворот экрана, листалось, не требовало обмена данными и установки мобильного приложения, правильная авторизация есть в коробке Битрикса.

Я даже поговорил со знакомыми вебщиками (битриксоидами и обычными) о том, насколько востребованы у заказчиков интеграции Битрикса и 1С, хотел плотно заняться этой темой вместе с ними. Никто же не мешает, например, вместо таблиц с показателями гнать в Битрикс таблицы с данными – те же документы или справочники, чтобы реализовать, например, личные кабинеты поставщиков. Интеграция простая, понятная 1Снику, можно реагировать на события системы, ставить произвольные фильтры, использовать схемы компоновки и т.д.

Но что-то как-то не пошло, вебщики не проявили интереса к моей гениальной технологии, ну да ладно.

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

Можно было еще долго закрывать глаза на этот пробел в своих знаниях, но я вроде других учу быть честными с собой, признавать наличие колхоза в себе, чтобы получить стартовый толчок в развитии. Решил и сам воспользоваться своими рекомендациями, признал свою никчемность в разработке веб-приложений для бизнеса (не считать же веб-приложением опубликованную через IIS базу 1С) и пошел в падаваны к джедаям этой темы.

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

Первое, что бросается в глаза при разработке веб-приложений – бесчисленное количество инструментов и технологий. Это языки программирования, фреймворки, форматы передачи данных, среды исполнения и отладки, нотации и правила разработки, доступные к использованию СУБД и т.д. Перечислять и анализировать не буду, вы и сами все это знаете.

Второе бросается в глаза не сразу, а после нескольких месяцев общения с клиентами, действующими и потенциальными, но повергает меня, как 1Сника, в шок: почему такая огромная масса технологий, такое невероятное количество специалистов, создают такой унизительно маленький спектр решений для бизнеса? Речь, в первую очередь, не о готовых решениях, а о платформах и технологиях их создания (я же 1Сник старой закалки :)).

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

А для бизнеса что?

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

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

Есть еще разного рода коммуникаторы – плагины и платформы для организации обратной связи. Например, на сайтах такое окошко, которое назойливо просит ввести номер телефона, чтобы кто-то потом перезвонил. А я, блин, интроверт.

Более крупная тема – системы управления задачами и проектами в облаке. Таких систем масса, обычно распространяются по модели SaaS, соответственно — не кастомизируются, плохо интегрируются (в смысле возни больше, чем пользы). В качестве учетной системы для задач годятся, но великой пользы тоже не приносят.

Что еще? А, да, сервисы. У 1С, например, много сервисов, наподобие директ-банка, поиска контрагентов по ИНН, электронного документооборота, проверки контрагентов по базам и т.д… Поставляются также как SaaS, но встроенная в учетную систему клиента часть может кастомизироваться. Полезные, конечно, штуки в жизни, но переворота в бизнесе не сделают.

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

Есть, конечно, и готовые решения – у всех крупных западных ERP примерно в одни и те же годы появилась веб-морда. Джедаи говорят, что она построена на устаревших на данный момент технологиях, но я пока не готов это обсуждать. Меня, повторюсь, смущает недостаточная кастомизируемость готовых решений от больших вендоров. Это – готовые решения, как Бухгалтерия базовая. Построить с их помощью небольшое решение для малого или среднего бизнеса за разумные деньги невозможно. Да и стоимость лицензий конская.

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

Они хотят работать с дилерами, клиентами, поставщиками в единой базе, через веб. Они не хотят содержать еще какую-то систему, гонять туда-сюда данные и работать в разных интерфейсах (исключение дружно делают для малышек БП, ЗУП и КА, как без них-то).

Они (почти все, как ни странно) хотят возможности работать офлайн, или при разрыве соединения (это, увы, еще беда в наших колхозах), при этом не хотят держать базу на клиенте и выполнять обмены, обрабатывая потом коллизии. Хотят, как электронной почте, которая спокойно живет в телефоне при отсутствии интернета – можно смотреть все письма, можно писать новые (без отправки, разумеется) – а при появлении соединения все это само собой синхронизируется с облаком. Такими они хотят видеть и свои приложения.

Почти все, чего хотят клиенты в части бизнес-логики, легко реализуется на платформе 1С. В ней есть практически все необходимое для решения учетных и аналитических задач.
Например, справочники, в которых легко можно разложить взаимосвязанную нормативно-связанную информацию. Или документы, которые правильно (ну, или хотя бы привычно) отражают события хозяйственной жизни предприятия. Регистры накопления, в которых правильно лежат остатки и обороты в нужной аналитике. Отчеты, которые вкупе с СКД дают невероятный простор для кастомизации работы аналитиков.

Но на 1С правильные веб-приложения для бизнеса не делают, по двум основным причинам: скучная желтая морда и неудовлетворительная производительность при большом количестве подключений (включаем сюда все аспекты производительности – объем пожираемых ресурсов, блокировки, стоимость и вообще, необходимость лицензий, и т.д.).

Если абстрагироваться и представить себе, что у 1С правильная морда и нет проблем с тысячами одновременных пользователей (это такой мысленный эксперимент), то получится идеальная платформа для создания бизнес-приложений высокой доступности.

Посудите сами. Представьте в рамках мысленного эксперимента, сколько вам нужно времени для создания интернет-магазина в конфигурации УТ 10.3? Если не думать об интерфейсе и производительности, то вроде затраты на такую задачу будут от нуля до нескольких часов. Просто делаем правильный RLS (пользователь видит все документы, относящиеся только к нему), запускаем пользователя в систему, и… все! Зашел, оформил сам для себя заказ покупателя, выбрал номенклатуры (фотки, цены и остатки видно в форме выбора), провел документ, и наслаждайся жизнью.

Конечно, надо будет кое-что подкрутить для самообслуживания. Например, оплату. Или авторезервирование с выдачей дат доставки. Но, согласитесь, для 1Сника такие задачи – плюнуть и растереть. Тем более, что они все уже решены.

Можно еще и разделение данных добавить, тогда вообще кайф будет.

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

Для организации системы управления проектами и задачами вообще ничего делать не нужно – просто запускаешь людей в свою 1С: Документооборот 2 и правильно настраиваешь профили. Хотя, наверное, нет… Помер 1С: Документооборот 2. RIP.

Если так рассуждать, то почти любая из известных мне задач для «бизнес-приложений в вебе» может быть решена с помощью платформы 1С.

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

Некоторые ребята выкручиваются, разделяя 1С и веб на разные приложения, и организуя связь посредством http-сервисов. Это очень увлекательное занятие, но суть теряется – мы опять имеем два слабо связанных приложения, и в веб-части придется еще раз описывать бизнес-логику, хранить данные, рисовать формы и отрабатывать события.

Причем, с высокой вероятностью можно сказать, что в веб-части системы либо получится скучная поделка, либо придется провести адскую работу.

Почему адскую? Теперь это уже понятно: потому что там нет платформы 1С с ее структурой данных. Там нет справочников и документов, нет регистров накопления, нет отчетов. Есть голая БД, пустые формы, никаких объектов, примитивные события, всемогущий javascript и, как упоминалось в начале, бесчисленное количество доступных технологий низкого уровня (для создания объектов и компонентов высокого уровня). Например, react.js.

Говоря проще, чтобы создать веб-приложение для бизнеса, как на 1С, придется сначала написать веб-платформу 1С. Хотя бы кусочек – справочник там, документик небольшой, отчетик, диаграммку. Поведение этих классов хоть минимальное придумать и запрограммировать.

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

Есть, конечно, люди, которые такую работу покупают. Много таких проектов в государственном и муниципальном секторе, в сфере ЖКХ (типа личных кабинетов потребителей э/э, воды и т.д.), электронные дневники для школ. О качестве таких приложений можете судить сами, вы ими, наверное, пользуетесь раз в месяц. Это, конечно, не бизнес-приложения, и зачастую делаются не за «свои» деньги, но думаю, упомянуть их стоило.

Итоговая – дилемма:

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

Как решать будем?

Автор: nmivan

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js