link - html title attribute style
¿Debería HTML coexistir con el código? (14)
En una aplicación web, ¿es aceptable usar HTML en su código (lenguajes sin guiones, Java, .NET)?
Hay dos subpreguntas principales:
- ¿Debería usar código para imprimir HTML, o de lo contrario crear directamente HTML que se muestra?
- ¿Deberías mezclar código dentro de tus páginas HTML?
- Intento evitar el uso de código para imprimir HTML "directamente" . Es difícil mantener, editar, agregar estilos, etc. En algunos casos, como generar un correo electrónico HTML en el código, creo un archivo de texto o HTML con marcadores como, [nombre], [código de verificación], etc. Cargo esto del código y reemplazar esos marcadores. De esta forma, puede editar el estilo del correo electrónico sin volver a compilar su código. La separación de "presentación" y "lógica" es una buena práctica en mi opinión.
- Mezclar el código dentro de HTML generalmente no es una buena práctica en las mismas razones que se mencionan en el n. ° 1. Sin embargo, uso código en HTML para cosas como cadenas dinámicas simples que se muestran varias veces en una página o páginas. Creo que esto es mejor que crear múltiples controles de servidor para establecer los mismos valores exactos. Como esto no es un código "lógico" mezclado en el HTML, creo que está bien.
El HTML que compone la vista debe enviarse al navegador de alguna manera. En .net, cada control de servidor emite su propio marcado HTML como parte del ciclo de vida de la página. Entonces sí, está bien usar HTML en el código del lado del servidor.
Tal vez deberías intentar seguir el patrón de ASP.net. Cree un conjunto de controles que representen los elementos de la interfaz de usuario y haga que sean responsables de emitir su propio HTML en función de su estado.
El objetivo es mantener la lógica de visualización separada del resto del código. En cualquier sitio complejo, tendrá código mezclado con su HTML, pero el código debe ser solo para fines de visualización. No debería hacer ningún cálculo complejo.
Por ejemplo, las plantillas contendrán loops y condicionales. Además, es probable que tenga una biblioteca de rutinas específicas de HTML, como imprimir una lista de <opción> basada en un objeto de lista.
Imagine que estaba escribiendo una aplicación que tiene dos modos de salida: HTML y otra cosa. ¿Cómo lo escribirías para evitar duplicar el código? Eso probablemente te indique en la dirección correcta.
En general, es mejor mantener la presentación (HTML) separada de la lógica (código de "back-end"). Su código está desacoplado y es más fácil de mantener de esta manera.
Es fugly, y no escribe seguro. Pero la gente lo hace sin consecuencias. Prefiero usar un DOM o, como mínimo, clases diseñadas para escribir HTML usando semántica segura. Además, no es tan bueno mezclar UI con lógica ...
Estoy de acuerdo con todos los demás en que debe intentar lo más que pueda para separar el marcado HTML / XHTML de la lógica de la aplicación. Sin embargo, a veces es necesario generar HTML / XHTML en la lógica de la aplicación por varias razones.
En estos casos, lo que he estado tratando de hacer es asegurar que la cantidad mínima de código de presentación esté mezclada con la lógica de la aplicación y trate de migrar todo lo demás al código de presentación. No vale la pena que en algunos casos haya situaciones en las que pueda mover todo a la capa de presentación, pero puede ser un poco más fácil generar el marcado como parte de la lógica de la aplicación. En esos casos, la mejor opción es seguir la ruta que tenga más sentido en términos de tiempo.
Lo ideal es que intente separar las preocupaciones entre su código de presentación (UI) y su código de dominio (lógica comercial).
La razón por la que debes evitar combinar estas dos preocupaciones (en cualquier dirección) es simple ...
Solo tendrá una razón para cambiar un fragmento de código. ya sea por cambios estructurales / de diseño en su diseño html o por el cambio de las reglas de su negocio, solo debe realizar el cambio en un solo lugar.
En menor medida, aunque muchos puristas estarían en desacuerdo, al rociar código HTML a través de su código de dominio o viceversa, está creando ruido para el próximo desarrollador que venga a leerlo / mantenerlo.
No creo que haya ninguna excusa para generar HTML dentro de la lógica de su negocio. Ni siquiera lo haga cuando sea solo una "solución rápida" o cuando "vuelva atrás y lo solucione más tarde", porque eso nunca sucede.
Para reiterar mi posición de otras preguntas, usar alguna lógica de control (condicionales, bucles) dentro de HTML para construirlo está bien. NO haga ningún masaje de datos o lógica comercial en el HTML. Tienes que ser disciplinado, pero vale la pena. El mantenimiento es mucho más fácil si sus preocupaciones (como la lógica y la pantalla) están separadas.
No, si desea construir un software bueno y sostenible, y lograr un acoplamiento flexible.
Odio cuando los desarrolladores imprimen () un montón de html. Es completamente innecesario y se ve feo en cualquier editor de texto que muestre las cadenas de impresión / eco en rojo.
Si necesito métodos que generen HTML, generalmente los aíslo en una clase HtmlHelpers. De esa forma mantienes un cierto nivel de separación. El Framework ASP.NET MVC hace esto con bastante éxito.
Si quiere decir imprimir HTML en su código, entonces no. A menos que tenga una buena razón para no hacerlo, debe usar plantillas
Incluso si piensa que no necesita esto ahora, siempre hay una buena posibilidad de que lo necesite más adelante. Tal vez quiera dar salida en un formato diferente al HTML, o si desea una presentación diferente para la misma información. Por lo general, necesita estas cosas más adelante, por lo que es mejor usar una desde el principio.
Siempre que su código de escritura de HTML esté separado de la lógica de su aplicación, y se garantiza que el HTML estará bien formado de alguna manera, debería estar bien.
El único código que debe mezclarse en las páginas basadas en marcado (es decir, las que contienen HTML literal) es el código utilizado para formatear el HTML (por ejemplo, un bucle para escribir una lista).
Hay intercambios, ya sea que coloque el código con el HTML o use código puro para escribir el HTML utilizando literales entre comillas.
Si entiendo correctamente la pregunta, me pregunta si es una buena práctica combinar el marcado con el código de fondo. No. Mientras esto se hace comúnmente, sigue siendo una mala idea.
Debe leer sobre el paradigma de MVC , así como sobre las preguntas existentes sobre el tema, tales como ¿Cuál es la mejor manera de migrar una aplicación web desordenada existente a MVC elegante? y Mejores prácticas para refactorizar ASP clásico?