• Какой JS фреймворк выбрать для full-stack?

    @xfg
    Лучшее что сейчас есть это koa или express для http протокола и socket.io для websocket протокола. PHP тоже от full-stack фреймворков движется в сторону микрофреймворков. Сегодня современный фреймворк это роутинг запросов реализованный на концепции мидлваров.

    Проблема спагетти-кода решается не фреймворком, а архитектурой. На сервере это обычно multilayered architecture. Бьете приложение на 4 слоя presentation, application, domain и infrastructure (еще могут называть data access layer или persistence layer). Контроллеры фреймворка куда попадает запрос пользователя это будет ваш самый верхний presentation слой. Слой инфраструктуры лучше собирать из отдельных библиотек, чем завязывать его на фреймворк. В таком случае не придется переписывать весь слой инфраструктуры из-за того, что фреймворк больше не развивается. Application и Domain слои используют Infrastructure слой через интерфейсы, тем самым абстрагируясь от конкретных реализаций. Таким образом вы всегда сможете заменить одну реализацию другой (паттерн Strategy) без изменения вышестоящих слоев. Presentation слой просто вызывает сервисы из application слоя и возвращает результат в html/json/xml/etc клиенту.

    Иногда упрощают до 3 или даже 2 слоев. Например если у вас CRUD приложение, тогда application и domain слои не нужны и вы можете оставить только presentation и infrastructure. Также если ваш application слой не делает ничего, кроме вызова domain слоя, то от него также можно избавиться оставив 3 слоя presentation, domain и infrastructure.

    Примеры реализации можно найти здесь и здесь. Они на Java. На javascript пока не встречал.

    Более подробно тему можно изучить взяв любую книгу на эту тему.

    Meteor не советую. Это не будущее. Это костыль. Они хотели сделать фреймворк для real-time приложений. Но фактически получилась просто платформа для стриминга произошедших изменений в mongo прямо на клиент.

    Sails это попытка сделать full-stack фреймворк. Но весь мир движется в обратном направлении.
    Ответ написан
    3 комментария
  • Какой JS фреймворк выбрать для full-stack?

    @vshvydky
    метеор мне понравился , но его заточенность под монго не совсем привлекла, вроде как есть кастылизация под другие бд, но мне не по душе орм
    по тому мой выбор koa.js jwt socket.io pg-promise (бек), постгрес как бд, на фронт два варианта реакт / реакт редакс либо через CRA с eject конфигурации и ее коррекцией с последующим проксированием через нгинкс либо если требуется SSR то подключение next.js.
    В любом случае каркас проекта и требования к тому что пишут разрабы нужно устанавливать сразу, но если проект без особых заморочек, не думаю что это проблемой может быть.
    Ответ написан
    Комментировать
  • Какой JS фреймворк выбрать для full-stack?

    @Coder321
    Если выберете Angular для фронта то можно посмотреть в сторону nestjs, это ангулароподобный node фреймворк.
    Еще мне понравился Loopback.
    Ответ написан
    1 комментарий