Существует множество веб-фреймворков, из которых можно выбирать, и даже больше вариантов, когда вы их комбинируете. Я хочу взглянуть на сравнение двух фреймворков, Node.js и Laravel, которые, на мой взгляд, являются наиболее продвинутыми веб-фреймворками. И я хочу отметить один момент: не сравнивайте Laravel и Node.js так, как будто один лучше другого, а сравнивайте их с тем, какой набор инструментов является лучшим для работы или проблемы, которую вы пытаетесь решить.
Заявление об ограничении ответственности
Во-первых, несколько заявлений об отказе от ответственности. Во-первых, когда я говорю о Node.js, я имею в виду всю экосистему Node.js. Я знаю, что называть Node.js фреймворком неправильно, но ни один фреймворк в Node.js не подходит большинству из PHP. Но в этом и состоит великолепие Node.js! Вам не нужен большой фреймворк, потому что все очень модульное; выбирайте и вытягивайте то, что вам нужно для вашего приложения. Таким образом, я думаю, что в этом смысле сравнение Node.js и Laravel работает. Во-вторых, я определяю веб-фреймворк как базовую базовую структуру, на которой вы создаете приложение. Таким образом, веб-фреймворк обычно состоит из системы маршрутизации и обработки запросов, помощников, уровня абстракции базы данных, некоторой формы создания шаблонов и представлений рендеринга и обработки сеанса. В-третьих, я могу привести аргументы между Node.js и Laravel, которые на самом деле являются аргументами JavaScript и PHP. Я говорю, ребенка нельзя выливать водой из ванны. Опять же, мы рассматриваем два разных инструмента и то, что они могут предложить. В-четвертых, этот пост не является исчерпывающим. Этот пост представляет собой набор идей, которые я пытаюсь изложить в связной форме, а значит, не в виде отточенного текста.
Сходства между Node.js и Laravel
Во-вторых, я хочу изучить, чем похожи Node.js и Laravel:
- менеджер пакетов
- Npm для Node.js
- Композитор для Laravel
- маршрутизация
- Express.js для Node.js (или другие)
- В Laravel есть своя маршрутизация
- RESTful-маршрутизация
- Sails.js для Node.js (или многие другие)
- Встроенный в Laravel
- создание шаблонов
- вы можете выбирать из большого количества движков шаблонов для Node.js, многие из которых также имеют реализации на стороне клиента.
- Laravel использует шаблоны Blade, но также есть поддержка Twig.
- неблокирующий / на основе событий
- это заложено в Node.js
- Reactphp для Laravel
- веб-сокеты
- Socket.io для Node.js
- Ratchet для Laravel
- ORM
- драйверы базы данных: MongoDB, MySQL и т. д.
- они оба очень сопоставимы; просто найдите драйвер для базы данных по вашему выбору
- пространство имен
- внедрение зависимости
- ввод данных
- они оба используют динамические слаботипизированные языки (некоторые не согласны), что означает, что переменные могут изменять тип во время выполнения, и язык будет определять тип переменных, т.е. добавление строки 2 и целого числа 2 приведет к целому числу 4 .
- интерфейсы
- помощники
- практически все, что есть в npm, можно установить в качестве помощника в Node.js (например, см. Underscore.js)
- в основном все, что есть в composer, может быть установлено как помощник в Laravel, но ряд помощников уже предоставлен
Сильные стороны Слабые стороны Возможности и угрозы (SWOT)
Первоначально опубликовано на laravelfeed.com.