Как именно деплоить ускорители на бэкенде?

Я не уверен, что задал корректный вопрос, так что поясню. ( этот абзац можете не дочитывать, если вопрос понятен ).Я только студент и заканчиваю один из своих pet-проектов. Я уже начал приглядываться к другим технологиям. После программирования на TS мне было бы интересно написать серверную часть приложения на другом языке. Я начал искать в интернете и после некоторых наблюдений понял, что такие языки как: PHP, Python, Ruby - и другие довольно медленные, и часто в вакансия указывают требование знать к ним "ускорители", например Golang.
Я решил выбрать именно Golang, но встал вопрос, как именно это реализовать. То есть я должен купить ( создать локально ) домен для сервера и сам сервер для ускоряемого языка, а потом ещё один для ускорителя? Или такие приложения разворачиваются на одном сервере?
Мой вопрос может показаться вам глупым или простым, но я не хочу неправильно учиться. Как стоит поступить / что является хорошей практикой.
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 5
phaggi
@phaggi
лужу, паяю, ЭВМы починяю
Евгений Усачев, выберите язык, купите книгу по нему и учите. К примеру, для Python «библией» является «Изучаем Python» Лутца. Выясните такую же библию для Go и - вперед.
Там же, в книге, должно быть написано всё, что вам понадобится для изучения. Будут конкретные проблемы - приносите их сюда.
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Запомните нет ускорителей есть платформы. Каждый язык имеет свои особенности.
Есть скриптовые которые на запрос стреляют один раз и завершают работу. Есть компилируемые. Типа Java и C# они работают постоянно , кэшируют данные соединения с БД и прочее.
Это реально очень краткая выборка из кучи всех технологий.
GO Вообще замечателен это компилируемый язык общего назначения что бы программер не смог накосячить вообще. С другой стороны это ограничивает вас очень сильно (это мое ИМХО)
Ответ написан
Комментировать
Изучай TS, чем плох? Нужно всегда знакомиться с различными языками и технологиями, для общего развития, но распылять свою энергию на всё новое модное это лишнее.

На Golang есть своя специфика работы и не факт, что будет лучше, чем на TS. Возможно, в скорости работы программы где-то выиграешь, но точно не в скорости разработки. Да и нужно дорасти до таких больших размеров проекта, чтобы было целесообразно внедрять. Некоторые полагают, что напишешь проект на Golang и всё будет "летать". Нет, конечно. Разработчика расслабляет, зная что можно написать кое как, "ведь язык то быстрый". А нет, думать всегда надо.

Самый реальный "ускоритель" - это изменение архитектуры ПО, подбор используемых технологий под use-case и оптимизации. Нередко и переписывание кода сильно помогает (ведь старый сильно обрастает менее нужным и порой неоптимален). А языки имеют второстепенное значение. На Ruby, PHP, Python можно строить крупные проекты, оптимизируя. Местами может понадобиться необходимость реализовать узкие места в производительности на чём-то быстром, типа Go.

Добавил:
То есть я должен купить ( создать локально ) домен для сервера и сам сервер для ускоряемого языка, а потом ещё один для ускорителя? Или такие приложения разворачиваются на одном сервере?
Можно развёртывать ПО как на одном сервере, так и на нескольких. Главное, чтобы один компонент не мешал работе другого и у каждого была своя среда исполнения (хост ОС, гостевая ОС или средства контейнеризации типа Podman, Docker, LXC и прочих).
Ответ написан
Комментировать
@rPman
Твое понимание неверное.

Языки программирования python, ruby, php, и go.. это не ускорители, это именно языки программирования, причем в купе с фреймворками (библиотеками), поставляемыми как в стандарте так и разрабатываемые другими людьми (обычно ты не можешь взять библиотеку, написанную на go и использовать на php, хотя никто не мешает в пределах одного проекта их смешивать, просто это неразумно и наверное допустимо только как временное решение для смены платформы).

Т.е. выбрав язык программирования в первую очередь ты тут же ограничиваешь выбор между готовыми решениями и инструментами, которыми ты мог бы пользоваться. В каком то смысле это наверное можно считать определяющим скорость работы решения, но очень косвенно. Напрямую этот выбор мог бы определить скорость и стоимость разработки и затраты на собственно использование (например выбрав майкрософтовские технологии типа asp .net и ms sql ты сразу же ограничиваешь минимальную стоимость за счет лицензий на майкрософтовский сервер и его базы данных, и минимиальные требования к железу)

p.s. по поводу скорости, php и javascript (node) это самые быстрые и эффективные 'языки программирования' из интерпретируемых, причем в каких то случаях лидирует php а в каких то node. Писать эффективный код можно и на c (был такой кейс у меня давно, недолго участвовал в веб проекте, где все было именно на чистом Си), причем наверное самый эффективный, но в бизнесе это так не работает и важным является не скорость исполнения решения, а скорость и затраты на его разработку и поддержку, вот тут всякие c,c++,go,rust и прочая экзотика, не шибко поддерживаемая коммунити становятся не таким привлекательными.

Еще про скорость. Изначальный выбор архитектуры и базовых технологий, на которых будет основываться проект, может оказать большее влияние чем сами эти языки. Например уход от парадигмы http rest - запрос = вызов приложения, к приложению, сочетающее в себе веб сервер, и непрерывным соединениям websocket, может оказаться, особенно на старте, очень выгодным..
spoiler
Помню исключительно для теста писал на php приложение в стиле http rest с использованием php+web-сервер и то же самое на основе асинхронного ReactPHP websocket сервера (протокол общения с клиентом тоже был на сокетах), на очень слабом не серверном железе выдавало несколько тысяч rpc и больше десятка тысяч rpc соответственно (т.е. смена подхода поднимала скорость на порядок, но усложняла масштабирование в будущем, точнее чуть сложнее код пришлось бы писать)

Если говорить про совет, какой язык выбрать, выбирай то в чем лучше разбираешься, как я понимаю TS? или лучше его основу node javascript. Если лично мои рекомендации - используй php, скилы в этих двух языках сейчас наиболее востребованные на рынке веб.
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
Впервые слышу про ускорители.

На бэке, как правило конкретный язык, пайтон там, или руби, или пыха, или что-то там еще не являются самой время затратной частью. Основное время бэкенд ждет ответа от внешних сервисов, баз данных, кэшей, серверов очередей и т.д.
Безусловно, бывают исключения, например какие-то длительный рассчеты я бы на пхп не делал, но это именно исключения, на практике это редко требуется.

То, что действительно ускорят обработку - это архитектура и оптимизация, в особенности БД.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы