Почему Rails по-прежнему лучше, чем SPA в большинстве случаев
Ага. Давай испачкаем руки. Простые страничные приложения — это красиво сказано, но это не то, что нужно всем.
Это спорно. Все сегодня знают только, как сказать MERN — Mongo, Express, React и Node — когда дело доходит до выбора технологического стека для нового приложения. Сегодня это очень модно, и это действительно очень могущественный комбинация фреймворков. Не поймите меня неправильно.
Но это все же не лучший выбор для всех. Я говорю вам, почему:
Одностраничное приложение — это еще одно приложение.
Для меня самое большое предостережение от использования SPA заключается именно в том, что SPA — это отдельное приложение. У вас будет множество компонентов, вызовов API, связей и состояний, которые нужно генерировать и поддерживать.
Это больше кода. Это новое приложение. Есть много компаний, которым просто не нужен этот дополнительный уровень сложности и затрат (поскольку вы пишете больше кода) в обмен на незначительные улучшения UX.
И если вы решите что-то изменить в своем бэкэнд-приложении (что часто происходит в продуктах, которые еще не настолько зрелые)… вы меняете совершенно другое приложение во внешнем интерфейсе.
React прекрасен, но он требует, чтобы вы знали, что происходит
React — это сложный код ES6. Это требует, чтобы вы точно знали, что там происходит. Все манипуляции с состоянием, вызовы API и программные перезагрузки, которые выполняет фреймворк, могут усложнить начало работы новым разработчикам (новичкам в вашем коде), поскольку написанный код не обязательно будет самым простым для чтения.
В то же время, из-за того, что Rails настолько самоуверен, большинство приложений работают на аналогичных основаниях и предположениях. Обычно они создаются схожим образом, и это дает разработчикам больше гибкости для более быстрого внесения изменений.
SQL очень быстрый
Иногда люди начинают говорить, что SQL не так эффективен, и что будущее за No-SQL. Просто неправильно говорить, что SQL недостаточно быстр — при правильном использовании (то, что должны уметь делать все порядочные ученые-компьютерщики) сила SQL по-прежнему хороша и сегодня.
Я работал с базами данных с сотни таблиц с миллионами записей в каждой. И это сработало как волшебство — потому что оно было хорошо сконструировано. Все дело в том, как вы организуете информацию, как она будет расти и как вы хотите получить к ней доступ. Для многих приложений (особенно тех, которые требуют больших объемов отчетов) SQL очень удобен для извлечения данных без особых усилий.
Я также работал раньше с бизнес-пользователями, которые знали, как использовать SQL, и могли выполнять простые операторы выбора в копиях базы данных приложения для очень сложного анализа, который они выполняли. Я бы никогда не увидел, чтобы они могли запускать этот анализ в базах данных, не основанных на таблицах.
SQL с его объединениями, индексами и нормализациями — прекрасный шаблон, применимый к большинству информационных систем, с которыми я когда-либо сталкивался в своей карьере.
Active Record по-прежнему прекрасен
Продолжая разговор о базе данных, ActiveRecord, ядро Rails, по-прежнему удивительно. Если убрать всю остальную часть фреймворка и оставить только серверную часть, Rails по-прежнему будет очень полезен именно благодаря ActiveRecord и тому, как быстро вы можете с его помощью создавать и обрабатывать сложные данные.
Если вы все работаете в SPA, создание серверной части с помощью Rails — огромный инструмент для рассмотрения.
Turbolinks тоже очень быстрый
Если вам не нужен ультра-гладкий и безупречный UX (что часто бывает, я вижу это), вы, вероятно, можете позволить себе мягкую и быструю перезагрузку страницы. Просто не беспокоясь обо всех асинхронных вызовах и различных состояниях пользовательского интерфейса, которые могут быть без обновления серверной части (что иногда является проблемой в SPA), это огромный рост производительности для разработчиков. Особенно на ранних стадиях развития
У Rails удивительное сообщество, и просто удивительно, что вы можете найти в Stack Overflow, когда сталкиваетесь с какой-либо странной ошибкой во время кодирования. Удивительное сообщество готово помочь вам. Вы также получаете это с JS-стеком, но сообщество Rails очень зрелое и способно быстро решить любую из тривиальных ошибок (98% из тех, с которыми вы столкнетесь).
TL;DR
Rails по-прежнему великолепен, даже по сравнению с более поздними вариантами. Ключевым моментом является использование правильного инструмента для решения правильной проблемы. Полностью на Rails, Rails только для серверной части или любой другой подход.