Не хочется говорить о высоких материях, Nocode, ML - системах, нейросетях или чем-то подобном, хочется порассуждать вот о чем: у каждого человека, увлекающегося программированием, есть N+ пет-проектов, и их количество растет. Часть из них - это проба пера, новых технологий, алгоритмов, но часть - это попытки быстро решить задачу бизнеса и найти некий business-value, реализовав MVP и попробовать сделать проект на миллион!
Получается, что для подобных задач я и каждый из нас делает плюс-минус одни и те же действия для получения 50% результата, и сами проекты между собой отличаются на вот эти 50% их сути!
О чем это я?
Чтобы попробовать реализовать MVP, допустим, сайта по онлайн-бронированию пёселей ?, мне нужно сделать следующие шаги:
Выбрать язык и фреймворк для бекенда;
Поднять где-то любимую БД - облако, локальный Docker-контейнет или хз где еще;
Подключить ORM для работы с БД;
Написать модели данных, их связи, индексы и т.п.;
Написать банальный CRUD для данных;
Выбрать фреймворк для фронтенда - Vue.js, второй или третий?, React - ну хз..., Angular? или мб взять что-то типа Svelte?, или...
Написать базовую структуру приложения (aka Nuxt, Next и т.д.), раскидать модели, утилиты, хранилища, ассеты и т.п., настроить пайпы для сборки;
Связать каким-то образом бек + фронт, научить их общаться на одном языке;
Поднять каналы - онлайн общения: Websocket, Server-Sent events, Polling и т.д.;
Начать писать бизнес-логику на беке, параллельно приклеивая фронт;
Подключить 100500 сторонних сервисов для эффективной работы - кеширование, распределение, CI/CD, мониторинги, аналитики, онлайн-сервисы, такс-трекинг, автоматизация разработки и т.п.
Почему бы не сделать софт, который бы пропускал шаги 1 - 8 и высвобождал кучу времени для реализации самого важного, ради чего MVP и задумывалось.
Что я имею ввиду?
Представьте некую "Fullstack CLI", которая задавая вопросы сама собирает приложение, пишет конфиги, модели, docker-файлы, собирает CRUD API, фронтенд, линтинги, настраивает деплой, выход в продакшн и т.п. и в конце выдает готовое приложение для запуска и деплоя...
...Но!
Дальнейшее общение с приложением проходило бы там же, в CLI консоли и я просто говорил бы, что мне нужно сделать, подключить или выключить, и CLI сама бы делал все за меня...
...И
Лишь в исключительных случаях, когда мне потребуется писать бизнес логику или что-то специфичное мне бы потребовалось открывать любимую IDE и писать код, используя понятный и доступный API, который выдала мне CLI. Я бы тут же в Swagger посмотрел весь CRUD API, в каком-нить Docs-generation почитал о приложении, которое для меня собрала CLI
Зачем?
Таким образом мы решаем проблему "Серийных программистов", которые создают задачи, на решение которых требуется 5 минут. Но если 100500 программистов потратят дополнительно по 5 минут, то при средней цене разработчика в ~$20 в час мы получаем экономию $167 500 за 5 минут. А это бюджет неплохого стартапа, который в очередной раз перевернет мир.
И кто-то скажет: "Зачем, если уже есть...". Возможно, что-то подобное и есть, я о нем не знаю просто. Существуют CLI для индивидуальной технологии. Допустим, для бекенда есть Nest CLI, для фронта есть Vue (React, Nuxt, etc.) CLI, но нет CLI, которые выдают в результате готовое рабочее приложение, которое покрывало бы потребности 99% MVP для no-name проекта, без необходимости тратить часы и дни на его базовую наладку и конфигурацию.
Что дальше?
Я начинаю писать подобную CLI и буду с радостью делиться успехами с вами. Проект будет находиться в Open-source и каждый сможет привнести свой вклад в проект)
Считаю, что такой проект нужен всем нам! :-)
Буду рад предложениям и критике!