• Зачем делают backend на разных языках?

    Nipheris
    @Nipheris Куратор тега C++
    Подскажите зачем пишут backend на нескольких языках?

    Почему-то никто не сказал главный аргумент - в больших проектах понятие бэкенда весьма условно. В больших проектах уже нет одного веб-приложения, которое написано на одном языке и выполняется на одном-двух серверах. В больших проектах бэкенд - это уже набор сервисов, зачастую разнородных, иногда даже не общающихся между собой, а работающих непосредственно с клиентом (гуглите микросервисную архитектуру). Пример из нашей компании:
    - веб-приложение на джанге, отдающее html-контент - тут авторизация юзеров, хранение пользовательских настроек и данных;
    - сервис данных чарта - написан на Erlang для предельной стабильности и предсказуемости, а также из-за легковесных потоков (в BEAM неплохой вытесняющий планировщик);
    - сервис расчёта фин. индикаторов - написан на Java, данные отдаёт через сервис на Эрланге;
    - сервис сканирования бирж - написан на Go (много новых сервисов на нём пишем).
    - и ещё несколько более мелких сервисов.

    Каждый из этих сервисов - это даже не отдельные люди, это целые команды со своей историей, со своими требованиями к надёжности и производительности и со своей культурой в конце-концов. Сервисы очень крупные, даже если что-то не устраивает и хочется переписать на другой платформе (например, с Эрланга на Го), никто не будет этого делать просто потому что хочется, это огромные деньги и куча человеко-лет.
    Ответ написан
    Комментировать
  • Обьсяните пожайлуста разницу между REST API и SQL-запросами?

    @oleg_ods
    Если совсем просто.

    SQL - язык запросов. Можно отправить любой запрос. Включая DROP, CREATE, ALTER и прочую мерзость(неприятно когда структуру базы меняют без Вашего ведома).

    REST API - можно сделать обертку только(!) над нужными SQL-запросами и дать к ним доступ с помощью HTTP эндпоинтов.
    Ответ написан
    1 комментарий
  • Обьсяните пожайлуста разницу между REST API и SQL-запросами?

    Viji
    @Viji
    DevOps Engineer
    фронтэнд --> REST API запрос к ---> backend приложение ----> SQL запрос (query) к ----> Базе данных

    напрямую нельзя так
    фронтэнд --> запрос к ----> Базе данных


    REST API - протокол http
    SQL запрос (query) - протокол tcp (как правило)

    Бакэенд нужен для security и кроме того твой браузер не умеет делать запросы к базе напрямую
    Ответ написан
    8 комментариев