ℹ️ #ВопросОтвет #ПилюСтартап (ч.1)
На днях подписчик канала задал вопрос: "А на каком технологическом стеке работают стартапы?"
Ответ, как бы он не был банален - на любом. И на самом деле нет большой разницы какой у вас стек, когда вы стартап, но есть несколько основных правил, которые я вывел для себя.
Целевая аудитория
Прежде всего определитесь в какой области ваш стартап и какая ЦА и есть ли вообще в той проблеме, что вы хотите решить боль?
Сделать это можно даже не создавая стартап, как таковой. Для проверки теории нужен проект или нет, можно сделать на коленке лендинг на той же Тильде и пустить на него трафик любым способом, будь то сарафан или посты на хабр/ТГ/stackoverflow и т.д. Если есть свободные финансы (тысяч 10 на проверку теории будет за глаза), то можно пустить рекламу на ФБ/Google Adwords
Пару слов про backend
Когда вы убедитесь, что ЦА есть и трафик на самом деле идет (можно оставить кнопку "зарегистрироваться"" и просто собрать email'ы с сообщением), можно переходить к реализации. Используйте тот стек, который вы знаете, хотя я склонен верить, что для быстрого запуска веб-приложения нет ничего лучше PHP/NodeJS для бека и базы MySQL/Postgres. По очень простым причинам: недорогих разработчиков на php и js вы найдете даже, если не будете искать, а для запуска и выживания в первые два года проекта нанимать крутых перцев с хайлоад опытом у вас просто не будет возможности. А также потому что они вообщем-то и создавались для этого, чтобы делать быстро веб-проекты и многое прощать. И нет это не призыв к говнокоду, хотя для запуска вы будете его писать и много, но кто же в этом себе признается?) И да есть много прекрасных языков разработки: Go, Python, Java, Dart, Ruby и прочие Rust'ы, но сделать на них быстро бекенд для веба, да еще чтобы не жрал как не в себя, да еще чтобы память не контролить, да еще чтобы имел огромное число готовых модулей... ну такое, для всего нужен свой инструмент и для MVP веба это извините, но PHP или NodeJS в связке с простейшими в настройке и обслуживании MySQL/PG
Frontend
Что использовать на фронте? Лично я фанат VueJS, но сколько бы я не пытался найти на фрилансе более менее сносных ребят в свой проект на Vue это была боль (может не там искал, но 4 команды просто откровенно налажали). В итоге пришлось многое изучить самому и допиливать по ходу действия пьесы. По факту же куда проще найти того кто склепает фронтовую часть на Angular/React/JQuery + Bootstrap подобный css фреймфорк
Комбайн
Не давайте вариантов изобретать что-то разработчику (или себе если вы сами разработчик), используйте комбайн фреймворки (если PHP то Laravel, Symfony) или если достаточно опыта соберите свой комбайн из микрофреймворка (ZendExpressive, который теперь Laminas супер удобный, так как поддерживает все что связано с PSR и модифицируется фактически на лету). Нужно чтобы ваш комбайн мог делать всё, буквально всё я не шучу. В ближайший год скорее всего вы не получите такую нагрузку, чтобы что-то стало работать медленно, а если хайпанете и к вам повалят толпы регистраций, то в любом случае упадете и будете многому учиться. Основное развитие всегда происходит в условиях боевых действий, когда что-то отваливается и вам надо днями и ночами чинить, оптимизировать и вообще шевелить извилинами, даже когда хочется тупо закрыть все и убежать.
Тесты
Было бы круто, конечно, код покрывать сразу тестами, но если вы один, то к сроку разработки можно смело докинуть еще месяца полтора-два... Хм а достаточно ли у меня большое покрытие, пойду еще покрою. А потом он покрыл еще немного, пока от проекта ничего не осталось. Первые тесты начните писать в тот момент, когда уже запуститесь и будете править баги, не раньше. Почему? Потому что читайте следующий пункт. Ну а если мы рассматриваем веб-проект на PHP, то советую интуитивно понятный Codeception, который поможет и юнит и функциональные тесты напистаь.
Единственное что точно стоит сделать и это не займет много времени, так это прикрутить к проекту линтеры и код-сниферы (опять-таки если php то phpstan, phpcs с максимальными правилами жесткости)