Имею опыт в бэкенде, писал на laravel(php), там архитектура MVC, файлы все разделены, всё красиво. Решил поучиться node, посмотрел как человек пишет на нём код и заметил, что всё в одном файле: и перенаправления, и функции. Конечно, я могу за надобностью сам разделить всё вручную, но делают ли так в NodeJS?
WapSter, десять архитекторов сотворят десять вариантов архитектуры и каждый может быть по-своему правильным. Только чтобы въехать в архитектурные решения, новому человеку в команде потребуется помощь и время. Ценность фреймворков для бизнеса в предопределенной архитектуре, которую они так или иначе навязывают, что намного ускоряет адаптацию новых членов команды.
Много знаете best practices для Express и иже с ним?
Посмотри на nestjs - там вполне opinioated архитектура.
Правда если понравится nest - не понятно, зачем вообще нода (ибо можно тогда на какой-нибудь из "более взрослых" языков перейти. Типа того же C# + asp net core)
Kentavr16, потому что JavaScript не язык и если бы не монополия в браузерах, давно бы загнулся. А все настоящие программисты пишут на Java и C#. Что вы как маленький, ей-богу.
Kentavr16, потому что nestj 1-в-1 копирует архитектуру всяких spring/aspnetcore (энтерпрайзовых) фреймворков, и если строгая типизация и такая архитектура кажутся комфортными - лучше перейти на тот же asp net core и получить значительную прибавку к производительности и честные типы
VolgaVolga, Java всё ещё не имеет и не будет иметь самых больших фич котлина:
1. Встроенных возможностей по написанию разных DSL
2. Полного null-safety на уровне стандартной библиотеки
3. Из коробки доступной компиляции под JS и Native
4. Everything is expression
5. immutable by default
Ну это бабка надвое сказала. На Хабре была статья матерого дотнетчика, ради эксперимента написавшего на коленке модуль на Node и не увидевшего разницы с аналогичным вылизанным и оптимизированным модулем на .NET .
Василий Банников, бенчмарки имеют значение только в строго определенной ситуации. В Netflix заметили увеличение производительности переписанного с Java на Node, но не берутся утверждать, что их пример можно экстраполировать на все проекты.
Kentavr16, насчет языков, это, конечно, стеб - надеюсь, вы поняли.
Все они используются в энтерпрайзе, на всех пишут сложные и серьезные проекты. В умелых руках - все балалайка.
VolgaVolga, случаи "в крупной компании переписали какой-то сервис с X на Y" почти всегда будут приводить к росту производительности независимо от выбранных X и Y, тк:
1. Перед переписыванием, видимо, были очевидные проблемы с X
2. Y тщательно выбирался исходя из задачи и даже вероятно писались бенчмарки перед тем как начать полноценное переписывание.
3. При переписывании, наверняка, также происходил рефакторинг, переработка архитектуры, переход на новые версии всего что было (ведь врядли в условном 2023 будут с Java 11 переходить на Nodejs 4)