Pregunta:
Estoy comenzando un nuevo proyecto y tratando de decidir si debo usar un marco de Javascript (como vue.js o react) y crear una API de Ruby on Rails, o usar Ruby on Rails para renderizar páginas del lado del servidor y esparcir javascript en el páginas (potencialmente aprovechando Stimulus.js).
Actualmente me siento muy cómodo usando RoR para generar una aplicación web y solo recientemente comencé a usar un marco JS.
Mi pregunta es, ¿qué beneficios obtiene al usar un marco JS en comparación con la representación del lado del servidor? Tengo problemas para definir una línea para cuando se debe usar el lado del cliente en comparación con la representación del lado del servidor.
Por ejemplo, en entornos de conexión a Internet deficientes, ¿el lado del cliente funciona mejor que el renderizado del lado del servidor? Mi suposición es que debido a que todos los datos se llaman en la carga inicial de la página, permite que la aplicación se ejecute en el lado del cliente con poco o ningún acceso a Internet hasta que se requiera la necesidad de persistir algo en la base de datos.
Creo que entiendo cómo funciona la implementación básica y el flujo para la representación del lado del cliente, pero no estoy seguro de por qué lo necesitamos y qué beneficios proporciona sobre la representación del lado del servidor con javascript.
Gracias,
Respuesta:
Al igual que con cualquier otra pregunta para adoptar una tecnología, depende de la tecnología. Depende de sus requisitos. Depende de los requisitos futuros o de la hoja de ruta del producto. De alguna manera también depende de las diversas habilidades de su equipo.
En términos generales (muy ampliamente), los frameworks JS harán el trabajo pesado cuando se trata de vincular sus datos a su marcado. Por lo general, tiene un modelo de datos y tiene algún margen al que le gustaría vincularlo. Puede lograr esto en JS usted mismo si lo desea, pero un marco lo atenderá la mayor parte del tiempo.
Algunos marcos de JS también se ocupan del enrutamiento para ayudar con la noción de una 'aplicación de una sola página'.
Hay muchas más ventajas, específicas del marco.
Dicho esto, soy muy consciente del impacto que puede tener un marco JS cuando es excesivo. No solo hay un período de tiempo en el que sus desarrolladores pueden necesitar mejorar sus habilidades y ganar algo de experiencia para aprovechar al máximo el marco, sino que un marco a menudo puede hacer cumplir, o al menos alentarlo, a trabajar dentro de su paradigma. y convenciones, sean las que sean. No es necesariamente una desventaja, si necesita esa estructura en su solución (por eso lo menciono en respuesta a las 'ventajas').
I'm having trouble defining a line for when client side should be used compared to the server-side rendering.
– Repase sus requisitos y, tal vez como parte del proceso de estimación, piense con un poco más de detalle cuál sería su enfoque para abordarlos. Si se encuentra reinventando la rueda en función de lo que puede ofrecer un marco JS, elija un marco JS. Si no está seguro de lo que puede ofrecer un marco JS, investigue más. Parece que ha elegido algunos buenos marcos como punto de partida para la investigación.