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

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

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

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

    @pfg21
    ex-турист
    тот же контактик был написан на php.
    когда встала проблемма тормознутости php был написан инструмент kphp по переводу php в С++ с последующей компиляцией.
    скорость работы пот очетов админов контактика выросла в два (!!) раза, для высоконагруженного сайта это очень много, в том числе и в денежном эквиваленте.
    фейсбук тоже сделал подобное штуковину. это про пыха.

    а вообще каждый инструмент удобен в том варианте использования, для которого он изначально задуман.
    какой-то язык упрощает/убыстряет написание в нем рабочего кода, берет на себя кучу тонких нюансов.
    какой-то предоставляет функционал качественной проработки кода, но требует долгого ковыряния и многих знаний.
    Ответ написан
    4 комментария
  • Зачем делают backend на разных языках?

    Adamos
    @Adamos
    C++, Java, Go, PHP, Python.
    Это популярные в вебе языки, выстроенные по принципу "сначала самый эффективный, но сложный в разработке и поддержке код, в конце - самый легкий в написании и правке, но наименее эффективный".
    Нет никакого смысла писать весь проект на С++ - затраты будут дикими, и тебя просто обгонят конкуренты, состряпавшие работающий чуть хуже аналог из говна и палок.
    Нет ничего страшного в проекте на Python - пока он не ложится под нагрузкой, и переписать часть сервиса на С++ оказывается дешевле, чем покупать новые сервера.
    Вот так и получается смешение языков. Благо принципы эффективного общения отдельных сервисов друг с другом давно известны, и что у сервиса "под капотом" - совершенно не играет роли в общей архитектуре.
    Ответ написан
    4 комментария
  • Зачем делают backend на разных языках?

    Stalker_RED
    @Stalker_RED
    Пишут, наверняка не с нуля, а дорабатывают какое-то существующее решение.
    Яндекс как-то рассказывал, что они сперва пишут на чем побыстроее-попроще, типа питона или даже перла, а когда (если) модуль дорастает до определенного порога, переписывают на что-то более производительное.
    Ну и разные команды разработчиков могут больше уметь в тот или иной язык.

    Язык это не идол для поклонения, а инструмент. Можно же построить дом одним лишь топором, но обычно строители используют десятки инструментов, потому что ими быстрее и удобнее.
    Ответ написан
    4 комментария
  • Зачем делают backend на разных языках?

    @InoMono
    Возьмем например Дропбокс.

    Изначально был написан на Python - это быстрее для прототипирования.
    Потом был переделан на Go - для предсказуемости и скорости. Но зачем переделывать полностью? Многие куски на Python существуют там до сих пор. И работают.
    И маааалюсенький кусочек был переделан на Rust - для ускорения самого узкого места.

    Вот вам и 3 языка работающих одновременно в Дропбоксе на бэке.

    Или имеется в данный момент свободен тот или иной специалист, который лучше знает тот или иной язык. Ему поручили - он сделал на том, что лучше знает, чтобы сделать быстрее и качественнее.

    Или такова была особенность задачи. Пример с комбинацей Rust/Go выше приведен. Где то может быть лучше один язык, где то другой.

    А если мы вспомним, что проект не только пишется, а еще и готовые компоненты применяются - то автоматически к любому почти проекту добавляются С/С++ те что в БД к примеру и пр. и пр. SQL - тоже язык бэкенда. И пр. и пр.

    Вы преувеличивайте значение языка. Это всего лишь инструмент программиста. Такой же как клавиатура. Опытный программист за долгие годы изучает не меньше десятка языков, а кто то и намного больше. Ничего такого в этом нет.
    Ответ написан
    Комментировать
  • Парсинг данных, какой язык практичней?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    regex - минимум!
    Дальше - любой язык.

    Задача: Быстрота, Надежность, Многопоточность, что бы выдерживал большое количество обращений в секунду.
    Не DDoS'те ресурсы!!! Уважайте друг друга и избежите бана! Парсите всегда с интервалом и в один поток!

    Классика PHP так как скрипт будет на сервере я думаю при многократном обращении в секунду будет долго обрабатывать. Допустим парсят ежесекундно 500 человек по ( хххх mb) данным. Небольшая ли нагрузка для PHP как долго он будет справляться с задачей?
    Я бы посоветовал вначале ПОСТЕПЕННО всё скачать, чтобы не напрягать ресурс-донор.
    А уже после - спокойно распарсите у себя на сервере.
    Попробуйте HTTrack
    Ответ написан
    6 комментариев
  • Парсинг данных, какой язык практичней?

    Stalker_RED
    @Stalker_RED
    Все равно какой язык вы выберете. Тот, который лучше знаете в данный момент, или тот, который хотите изучить в процессе. Все равно вы упретесь не в скорость парсера, а в ширину канала. Ну или вас забанят за слишком большую нагрузку на сервер.
    Ответ написан
    9 комментариев
  • Парсинг данных, какой язык практичней?

    @pantsarny
    на любом, котором сможешь.
    php пойдет, есть многопоточный curl, много кода в нете, php-fpm работает стабильно.
    Ответ написан
    Комментировать
  • Парсинг данных, какой язык практичней?

    @ynblpb_spb
    дятел php
    Мне кажется стоит обратить внимание на javascript движки для парсеров, типа phantomjs и casperjs
    С их помощью вытаскивание данных со страницы становится проще в десятки раз
    Многопоточность работы с этими приложениями уже реализовывайте на любом языке и складывайте в удобном формате в БД или куда-то еще.
    Ответ написан
    6 комментариев
  • 1С интеграция по API возможно ли?

    fosihas
    @fosihas
    Автоматизации учета на 1С.
    https://its.1c.ru/db/v8311doc#bookmark:dev:TI000000014
    «1С:Предприятие» является универсальной системой автоматизации деятельности предприятия. Это среда разработки и исполнения, включающая в себя набор инструментов, механизмов и сервисов, обеспечивающих все необходимое для разработки прикладных решений, их работы, администрирования и обслуживания. За счет своей универсальности система «1С:Предприятие» может быть использована для автоматизации самых разных участков экономической деятельности предприятия: учета товарных и материальных средств, взаиморасчетов с контрагентами и др.


    Все в ваших руках. Меняйте, разрабатывайте как хотите.
    Не стоит зацикливаться на типовом решении УТ.
    Есть большая кучка отраслевых решений позволяющих реализовать Купи-Продай так сказать альтернатива типовой.
    Ну или пишите свою))
    Ответ написан
    2 комментария
  • Настройка Visual Studio Code?

    tomnolane
    @tomnolane
    профессиональный разработчик
    самые основные:
    Auto Close Tag - авто закрытие тегов
    Auto Rename Tag - переименование парных тегов
    Beautify - разжатие кода (из minify в стандартный вид)
    highlight-mathing-tag - подсвечивание парных тегов (нужно настроить в конфиге, чтобы поярче было)
    html snippets - сниппеты как в сублайме
    insert <br> tag - вставка тега новой строки через шифт+enter
    PHP Debug - деббагер для php (нужно настраивать)
    Debugger for Chrome - JS дебаггер
    vscode-icons - иконки для VSC
    minify - сжатие кода
    css auto prefix - автопрефиксы
    Insert Numbers - полезное расширения для вставки чисел определенного формата во множество мест с инкрементом
    ================
    ещё некоторые, которые я добавил и пользуюсь:
    apache Conf (для подсветки .htaccess)
    AutoFileName - дополнение пути (например для "requere" в node.js)
    Bookmarks - делать закладки в коде
    Bracket Pair Colorizer - подсвечивать парные скобки (квадратные, фигурные, прямоугольные, круглые) очень удобно
    gitignore - добавляет .gitignore файл под проект (node.js, docker, yii2, laravel и т.д.)
    GitLens — Git supercharged - показывает гит-коммиты в коде (и автора коммита, удобно в командной разработке)
    HTML Class Suggestions
    Live Server - открывает браузер, где в режиме "онлайн" видишь изменения в html
    Markdown Preview Enhanced - тоже самое, что и Live Server, но только для страниц с markdown разметкой
    Material Icon Theme - для красоты VSC)
    Monokai Dark Soda - моя любимая тема разработки
    MySQL Syntax - для подсветки синтаксиса sql
    PHP Intellisense -
    Quick gitignore - добавляет файл/директорию в gitgnore
    Regex Previewer - помогает в регуляркой
    SQL Server (mssql) - для работы с sql server
    SVG Viewer - просматривать SVG картинки
    Todo Tree - делать заметки, удобно
    Remote FS - для удаленного подключения по FTP (удобно, если несколько серверов), пример конфига:
    { 
        "remotefs.remote": {"site": {
            "scheme": "ftp",
            "host": "1************01",
            "username": "ad**********ain",
            "password": "Lv************xF",
            "rootPath": "/"
          },
          "site2": {
            "scheme": "ftp",
            "host": "17**********1",
            "username": "a*****************m",
            "password": "************O",
            "rootPath": "/"
          },
          "moy-yandex": {
            "scheme": "ftp",
            "host": "a***********u",
            "username": "a***************mone",
            "password": "1***************W",
            "rootPath": "/"
          }
      }


    UPD
    Есть ещё хорошее приложение: Gremlins. Он подсвечивает невидимые символы в коде. Но его нужно немного "допилить", чтобы показывал невидимый символ юникод u+feff (образуется часто, когда кодировка страницы UTF-8 with BOM)
    собственной как допилить я сам же описываю в своем вопросе: тут

    что касается сннипетов для php: бывает такое, что они не срабатывают и тут две причины: пользователь достаточно быстро жмет TAB (VSC не успевает ещё понять, что пользователь закончил ввод) и когда достаточно долго работаешь в VSC без перезагрузки последнего.

    ИМХО: рано или поздно эта проблема решиться. VSC стремительно развивается и такая проблема будет решена (до этого чтобы быстрее было - лучше написать сюда об этом)
    Согласен с Artem , с тем, что Brackets имеет некоторые вещи лучше и оптимизированнее, чем VSC, и я для Front-end чаще работаю в Brackets (в большей части из-за возможности видеть online изменения тут же в браузере). Но главный минус Brackets от VSC - при большой кол-во плагинов он очень-очень тупит, также мне не нравится работа Brackets-ftp.
    Послесловие:
    VSC ещё учится и становится лучше. Рано или поздно он обгонит и Sublime, Atom и другие IDE - это вопрос времени, потому что: 1) он open source 2) финансирует и ведет разработку Microsoft 3) бесплатен!!! и последнее камень в огород всем крупным IDE
    Ответ написан
    2 комментария
  • Apache в Open Server не могу понять как же это сделать?

    morihaos
    @morihaos
    На 99% вопросов уже есть ответы в инетке...
    Привет,
    Все просто. Идете сюда:
    httpd.apache.org/docs/2.4/mod/core.html#serveradmin
    и сюда
    httpd.apache.org/docs/2.4/mod/core.html#servername
    читаете и вставляете свои значения.
    Ответ написан
  • Сайты на локальном сервере как реализовать?

    Bobrodon
    @Bobrodon
    Обычный землянин
    Ответ написан
    Комментировать
  • Сайты на локальном сервере как реализовать?

    @Serzio
    Javascript пофиг на каком сервере работать. Когда дойдете до PHP - все само станет на свои места. Про денвер забудьте, он устарел. xampp или Open Server.
    Пройдите начальный курс по PHP, там общая компьютерная грамотность обычно на первом занятии преподается.
    Ответ написан
    Комментировать
  • Сайты на локальном сервере как реализовать?

    @crast
    Laragon Apache, MySQL (PostgreSQL и MongoDB), PHP, Node.js
    Ответ написан
    Комментировать
  • Это скрыты код сайта?

    Это просто index.php. А вам нужно в директории движка найти папку с шаблонами. Она может называться по-разному: templates, layouts, views. В общем, суть в том, что это просто файл движка, а вам нужен именно файл шаблона с HTML-кодом.
    Ответ написан
    Комментировать
  • Это скрыты код сайта?

    slo_nik
    @slo_nik
    Доброе утро.
    Ну почему же?
    В коде подключается несколько файлов, например require_once "inc/functions.php".
    Вот с этого файла Вы и видите код.
    Заходите в директорию "inc", ищите файл "functions.php", открывайте в редакторе и читайте код.
    И в браузере Вы видите результат работы подключаемых файлов)))
    Ответ написан
    5 комментариев
  • Сайты на локальном сервере как реализовать?

    PavelMonro
    @PavelMonro
    Это не так. И денвер давно устарел. Смотрите лучше в сторону Open Server
    Ответ написан
    1 комментарий