No-Code: разработка IT-продуктов «без разработки»

Подход No-code, насколько я его успел понять, состоит в том, что множество готовых технологий и сервисов, которые наконец-то, используя другие специальные инструменты и сервисы (No-Code Development Platoform или Low-Code Development Platform), можно относительно легко, без привлечения разработчика, связать друг с другом и научить работать как единое целое.

Я видел прекрасные реализации No-Code подхода со стороны пользователя — например, в сообществе Buddhist Geeks огромное количество разных процессов (уведомления, сообщество, приглашения на события, организация и проведение событий, добровольные взносы и др.) реализованы через несколько сервисов: Zoom, рассылки, календари, сервисы для сбора donation (процесс напоминания о котором тоже автоматизирован, конечно же), Mighty Networks, наверняка что-то еще. Для меня как для пользователя всё работает бессшовно и прозрачно. Все бизнес-процессы автоматизированы, для этого используется множество готовых технологий.

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

Я сам давно пользуюсь всевозможными сервисами автоматизации вроде IFTTT (про который писал впервые в 2011), ботами в мессенджерах, Automator на компьютере и шорткатами в телефоне. Сейчас пару дней играю с n8n — одним из самых продвинутых по функциональности сервисов для построения No-code продуктов с открытым кодом. Это конкурент Zapier и IFTTT, который ты хостишь самостоятельно. Он поддерживает десятки сервисов, webhooks и так далее.

Что я могу сказать про такой no-code? Отсутствие кода — это условность. Вместо кода вы используете элементы, которые можете настраивать, устанавливать условия их работы и логические взаимоотношения между ними. Отладка этой логики ничем не отличается от разработки. Я значительную часть времени читал документацию по API продуктов и получал к ним доступы, настраивал Docker и устанавливал пакеты, пытался получить сертификат для локального сервера, настраивал прокси и раутинг…

Если это не разработка, то это точно что-то очень недалеко от неё ушедшее: я много гуглил всевозможные ошибки и попадал в issues в Гитхабе или на StackExchange — всё то же самое, что и при написании кода. Так что отсутствие возможности просто взять и быстро поправить код руками, наоборот, начинала подбешивать. (Справедливости ради, можно настройки копировать как текст — это длинный и нудный json, который не очень весело редактировать руками, но можно, если очень захочется.) Думаю, над большими и сложными проектами через такой GUI работать значительно менее удобно, чем в текстовом редакторе.

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

Лего, из которого можно строить современные no-code приложение, крайне разнообразно. Тут и машинное обучение через сервисы вроде Google Vision API или Amazon Rekognition, и великолепные инструменты построения гибких реляционных баз данных Airtable, где за час можно построить оптимальную для вас CRM, или CMS, или Kanban-доску, которая сразу же будет работать в продакшне для всей вашей команды, а структуру можно трансформировать налету, и стриминговые сервисы, и — скоро — какой-нибудь GPT-3 (хайп вокруг которого, кажется, все-таки преувеличен — это всего лишь модель, то, что она выдает точные ответы на вопросы, не говорит о том, что оно угрожает рабочим местам разработчиков).

А еще не покидают воспоминания о легендарном выступлении Брата Виктора The Future of Programming (слайды), где он говорит из прошлого о ненаступившем настоящем, в котором мы применяем прямую манипуляцию данными, компьютеры программируют не процедурами, а целям и ограничениями, где нет никаких API, а системы сами обучаются взаимодействию друг с другом. Пересматриваю это выступление и понимаю, на каком раннем этапе всё ещё находится наше технологическое взросление.

(А ещё хочется покряхтеть, что No-code — это как веб два ноль — ничего нового, скорее маркетинговый термин. Zapier и IFTTT существуют по 10 лет, язык визуального программирования для детей Scratch появился в 2007, многие технологии, которые сейчас называют No-Code, далеко не новые. Сейчас скорее появилось критическое количество бизнесов, реализующих подход, люди про них узнают и начинают использовать, и поэтому понадобился новый термин, который обозначает тренд массового применения этих технологий.)

Хотите обсудить содержимое заметки? Напишите мне email или сообщение в твиттере. Я отвечаю на все вежливые сообщения, и готов дополнить заметки ценными дополнениями.