Не хочется говорить о высоких материях, 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 и каждый сможет привнести свой вклад в проект)
Считаю, что такой проект нужен всем нам! :-)
Буду рад предложениям и критике!
Комментарии (10)
SergeiMinaev
02.01.2023 18:05В компаниях, штампующих однотипные проекты, давно есть свои заготовки. Для себя я тоже как-то сделал заготовку пустого проекта с django+vue.
Если пилить прям полноценную CLI, боюсь, вы утонете в требованиях сообщества.
Ravy Автор
02.01.2023 18:43Кажется, что именно для этого и нужен Habr - делится мнениями и отрезвлять воспаленные умы)
Про *hipster не слышал, почему-то не попадался на глаза, но в целом, это ровно то, о чем я подумал в ночь 1 Января)
Всем спасибо, думаю, тема закрыта раньше времени)NiPh
03.01.2023 10:32Посмотрите ещё на boilerplate + ваша_основная_технология, почти наверняка на github найдется репозитарий который содержит стандартный преднастроенный фреймфорк с окружением, в котором останется только начать писать код.
Разверну мысль - по сути для меня такой бойлерплейт например по ключевым словам symfony+mariadb+react и будет нужной конфигурацией, которую я возьму и буду пользовать. Или то же самое но с redis. Или то же самое но с vue. Boilerplate найдется почти под любые запросы.
evoq
03.01.2023 01:37+1Я недавно начал искать ровно то, что вы делаете. Мне кажется очень близко то, что я нашёл - это Phoenix framework. Вряд ли вы сможете сделать что-то ещё более юзер-френдли, но при этом очень гибкое и мощное. Скорее всего будет то же колесо, причём сильно хуже, тк фреймворку этосц много лет. Поизуйчайте его, пожалуйста, и скажите попал ли я в точку или нет. В нем генерация схемы бд, страниц и api в одну команду каждая
boopiz
для примера mvp статьи давно придумали cms. ничего думать не надо.
janvarev
CMS - это ужасно немодно, немолодежно и небезопасно! Как же вы реализуете уникальный дизайн с анимацией, если все CMS темы заточены под функциональность и похожи друг на друга? А polling через сокеты для быстрой доставки
никому не нужныхоповещений в браузер? А как же упаковка в Докер для эффективного развертывания в Кубере на 100500 пользователей? /sarcasmpfffffffffffff
Headless cms