shallow root_path rails new mvc create concern and ruby-on-rails django routing url-mapping

ruby-on-rails - root_path - scaffold ruby on rails



Django, Rails Routing... ¿Punto? (6)

Soy un estudiante de desarrollo web (y universidad), así que mis disculpas si esto suena ingenuo y ofensivo, ciertamente no lo digo de esa manera. Mi experiencia ha sido con PHP y con un proyecto pequeño en el horizonte (un calendario de turnos glorificado). Tenía la esperanza de aprender uno de los marcos de mayor nivel para aliviar la carga del código. Hasta ahora, miré a CakePHP Symfony Django y Rails.

Con PHP, las URL se asignaron de manera muy simple a los archivos y "funcionó". Fue rápido para el servidor e intuitivo. Pero con todos estos marcos, existe esta tendencia a "arreglar" las URL haciendo que se asignen a diferentes funciones y encaminen los parámetros a diferentes variables en diferentes archivos.

El libro "The Rails Way" que estoy leyendo admite que este es un perro lento y es la causa de la mayoría de los dolores de rendimiento en proyectos grandes. Mi pregunta es "¿por qué tenerlo en primer lugar?" ¿Existe un punto específico en el paradigma url-maps-to-a-file (o mod_rewrite en un solo archivo) que requiera expresiones regulares y esquemas de enrutamiento complicados? ¿Me estoy perdiendo algo al no usarlos?

¡Gracias por adelantado!


Además, los enrutadores son como mod_rewrite , pero mucho más flexibles. No están vinculados a expresiones regulares y, por lo tanto, tienen más opciones para diferentes tipos de rutas.


Depende de qué tan grande es tu aplicación. Tenemos una aplicación bastante grande (más de 50 modelos) y no nos está causando ningún problema. Cuando lo haga, nos preocuparemos por eso entonces.


  • Las URL deben ser fáciles de recordar y decir. Y el usuario debe saber qué esperar cuando vea esa URL. Asignar URL directamente al archivo no siempre permite eso.
  • Es posible que desee utilizar diferentes URL para la misma, o al menos similar, información que se muestra. Si su servidor lo obliga a utilizar 1 url <-> 1 mapeo de archivos, necesita crear archivos adicionales con todas sus funciones redirigidas a otro archivo. O usas cosas como mod_rewrite que no es más fácil que las asignaciones de URL de Rails.
  • En una de mis aplicaciones uso URL que se ve como http://www.example.com/ algunas cosas adicionales / . Esto también se puede hacer con mod_rewrite , pero al menos para mí es más fácil configurar las urls en el proyecto django y luego en cada instancia de apache en la que ejecuto la aplicación.

solo mis 2 centavos ...


Las URL de Django también son muy personalizables. Con frameworks de PHP como Code Igniter (no estoy seguro acerca de Rails) forzado en la estructura / class / method / extra / URL. Si bien esto puede ser bueno para proyectos y aplicaciones pequeños, tan pronto como intentes hacerlo más grande / más dinámico te toparás con problemas y tendrás que reescribir parte del código del framework para manejarlo.


Almacenar el código de la aplicación en el árbol de documentos del servidor web es una preocupación de seguridad.

  • una configuración incorrecta podría revelar accidentalmente el código fuente a los visitantes
  • los archivos inyectados a través de una vulnerabilidad de seguridad son inmediatamente ejecutables por solicitudes HTTP
  • los archivos de copia de seguridad (creados, por ejemplo, por editores de texto) pueden revelar código o ser ejecutables en caso de una configuración incorrecta
  • los archivos antiguos que el administrador no pudo eliminar pueden revelar una funcionalidad no deseada
  • las solicitudes a los archivos de la biblioteca deben ser negadas explícitamente
  • Las URL revelan detalles de implementación (qué lenguaje / marco se utilizó)

Tenga en cuenta que todo lo anterior no es un problema, siempre y cuando otras cosas no salgan mal (y algunos de estos errores serían graves incluso solos). Pero algo siempre sale mal, y es bueno contar con líneas de defensa adicionales.


La mayor parte ya se ha cubierto, pero nadie ha mencionado el SEO todavía. Google pone mucho peso en la URL en sí, si esa url es widgets.com/browse.php?17, eso no es muy amigable con el SEO. Si su URL es widgets.com/products/buttons/, eso tendrá un impacto positivo en el ranking de su página por botones