Правильный ли выбор в сторону Serverless в моей ситуации?
Приветствую! У меня стоят две сопутствующие задачи:
- я хочу изучать программирование и веб-разработку
и при этом:
- я хочу как можно скорее начать реализовывать свой пет-проджект;
Для реализации моего проекта по сути я могу использовать любой инструмент: Node.js, Laravel, Django, Spring, Golang и тд.
Браузерный Javascript я знаю уже достаточно неплохо, также умею работать с промисами и лямбда функциями.
И мне по сути для создания проекта нужно теперь выбрать мощный инструмент для бекенда с невысоким порогом вхождения, учитывая мои знания. Сначала я был даже готов изучить дополнительный язык (например Go или PHP), так как сам язык выучить не долго - долго изучать инструменты которые требуются для написания программ на нем, и из этого следует, что преимущество в выборе Node.js по причине, что я уже знаю javascript не существенное.
Но потом я больше изучал фреймворки, и пришел к выводу что все таки на Node.js делать приложения просто будет легко, но также я еще положил глаз на Vert.x, потому что мне он показался таким же простым как нода, только более мощный и при этом с меньшим количеством библиотек которые только путают и мешают выбрать единый путь, короче более серьезный что-ли. Но ведь помимо изучения фреймворка, я должен буду еще разбираться с тем как конфигурировать сервер, делать его безопасным, как работать с менеджером пакетов, как деплоить проекты, какие зависимости выбрать и как их настроить, как работать с докером,и так далее.
Эти знания конечно полезны и даже необходимы веб-разработчику, но мне важно в ближайшее время именно научится писать бизнес-логику и сделать свой продукт, реализовать свою идею.
И сейчас я пришел к идее, что я могу сделать свой пет-проджект в облаке, на функциях.
Конечно придется разобраться с тем, как это устроено, но я ожидаю, что это займет меньше времени, и создаст меньше проблем. Так вот мой вопрос: справедлив ли мой вывод?
Или serverless таит в себе больше проблем для новичка, чем изучение и написание проекта с использованием фреймворков и последующим деплоем?
Вообщем-то, serverless это хороший выбор для MVP или пет-проджекта?
P.S. (А, и важно к этому добавить, что все это применительно к тому, что я знаю только Javascript. То-есть по факту я только и могу, что функции писать сейчас, ну и псевдо классы в виде прототипов. Но опыта работы с ООП языками как Java/C# у меня нету.)
Иван Шумов
@inoise Куратор тега Amazon Web Services
Solution Architect, AWS Certified, Serverless
Справедливого вывода не будет. В Serverless огромное количество подводных камней не все на нем можно сделать. Кроме того Serverless требует понимания как устроен мир с принципе чтобы эффективно его использовать. В принципе, есть успешные примеры как это работает, на примере ACloud Guru. Но надо понимать что если плохо просчитать то Serverless может оказаться очень дорогим.
В любом случае я бы советовал познакомиться с этими подходами на примере курса The Complete Serverless от тех же ACG
Спасибо за комментарий! Но вы хотя бы согласны с утверждением, что изучение стандартного инструментария веб-разработчика будет отнюдь не легче и не быстрее, и сулит большей вероятностью наговнокодить и выстрелить себе в ногу? Я просто пытаюсь выбрать такие инструменты на своем пути новичка сейчас, которые быстрее меня приведут к более менее качественному завершенному продукту.
И если сервис можно сделать не в стиле ООП, не изучая Java, не изучая Spring, не изучая как упаковывать и деплоить свой проект, то разве это не более быстрый путь?
А качество бизнес-логики и там и там будет уже зависеть от моих индивидуальных качеств. Наговнокодить я и в том же спринге смогу с лихвой я думаю. А облака хотя бы берут работу по настройке серверов и окружения на себя - хоть в этом я точно не напартачу.
Написано
Иван Шумов
@inoise Куратор тега Amazon Web Services
Максим, выстрел в ногу будет в любом случае. Говнокод толе будет в любом случае. Вопрос скорее в том какие цели преследуются. Если цель стать хорошим разработчиком то Serverless будет отсутствовать на пути до конца. Если запустить проект то он может рассматриваться как опция.
Иван Шумов, Я согласен, что говнокод будет. Я имел ввиду, что он в любом случае будет как в облаке так и в монолите на фреймворке) Но во фреймворке у меня больше простора для действий и больше обязанностей, а значит и количество мест где я могу ошибиться больше).
За ссылку спасибо, уже ознакамливаюсь. В целом облачные технологии, мне еще и кажутся интересными.
Написано
Иван Шумов
@inoise Куратор тега Amazon Web Services
Максим, а в Serverless будет много конфигураций, несколько десятков сервисов, постоянный мониторинг биллинга (не получилась ли лишняя тысяча долларов вчера), выбор вендоров, сетевые издержки и невозможность обработать огромные объемы данных дешево) Обязанностей только же, просто они другие. А ошибки будут более явные и они будут бить не по самолюбию, а по кошельку)
Написано
Иван Шумов
@inoise Куратор тега Amazon Web Services
Максим, Да я сам их люблю, более того, у меня есть примеры как люди без технической подготовки делали проекты на serverless. Просто я сразу хочу обозначить риски. Если есть необходимость то я могу отдельно рассказать поверхностно про мир Serverless сегодня. Он-то уже большой, но хватает важных моментов. С одной оговоркой - в Serverless я амбаcсадор AWS)