[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]Salvador Ortiz Garcia wrote:
Cualquier sistema en Web que se respete requiere el uso de otras tecnologías. Si bien J2EE es una de ellas, y muy popular, es efectivamente la más ineficiente (lease "se arrastra"), pues las "ventajas" de java se acaban en cuanto lo usas en el servidor. De los progresos recientes en PHP no puedo opinar, pues lo abandoné por las limitaciones que le encontré en su momento. ;-)
Se ha puesto muy bonito y muy rápido...
Lo que si te puedo recomendar ampliamente es usar perl, ya que lo están conociendo, y si su proyecto es grande aprovechen para no adquirir vicios, van algunas recomendaciones: - No hagas CGIs, usa mod_perl! - No uses CGI.pm!- Separa por completo el código (la lógica de tu aplicacion) del diseño (CSS y HTML)
Esto aplica para el lenguaje que sea, incluso aplica para los CGIs.
No lo uses para imprimir HTML, deja que los diseñadores hagan su trabajo.
Lo mismo.
De todos los motores de templates te recomiendo que prefieras los más estúpidos porque son los más amigables para los diseñadores. Si tu motor de templates no te permite editar el template en dreamweaver o al hacerlo se te rompen los templates muy fácilmente entonces no te sirve, búscate otro.(No hagas cosas del estilo: print "<TABLE><TR><TD>$dato"... ) Usa algún motor de templates, hay muchos
Los manejadores de templates inteligentes te permiten meter macrocódigo dentro del template pero eso sólamente sirve para estorbarle a los diseñadores o para que los diseñadores rompan tu código y tengas que trabajar doble.
Si tus consultas se comienzan a complicar es preferible que programes un driver acelerado que esté optimizado para que en las funciones más complicadas puedas aprovechar al máximo el SQL de tu manejador aunque rompas compatibilidad. Cuando quieras moverte a otro manejador sólamente necesitas traducir el driver acelerado pero no el resto de la aplicación....- De las bases de Datos Usa conexiones persistentes cuando se requiera. Si la base es pequeña y/o no requires demasiada concurrencia usaMySQL, en caso contrario utiliza PostgreSQL. En cualquier caso usa DBI, para que puedas cambiar de RDBMS.
Si no requieres toda la funcionalidad de SQL, DB de Berkeley es _mucho, mucho_ mas eficiente. - Estudia los detalles del protocolo HTTP (cosas como cuándo POST, cuándo GET o HEAD) y sé amable con los cachés:
Son tus mejores amigos.También debes ser amable con las bases de datos ya que son un recurso natural difícilmente renovable... Toma en cuenta que replicar una base de datos no es tan fácil como replicar los servidores de web que se conectan a la base de datos....
No quieras generar todo el contenido cada vez. (El contenido dinámico tiene lapsos de vida muy distintos!) Respeta los GETs condicionales.
¿Qué son esos? ¿Qué hace que unos GETs sean condicionales y otros no?
Cuando usas algunos tipos de templates que trabajan en memoria en vez de trabajar a la salida se te facilita mucho calcular la longitud de tu documento antes de escupirlo.... Otra manera de conocer la longitud de tu documento es controlando el output buffer, eso se puede hacer muy fácilmente en PHP, pero me imagino que en mod_perl también se debe poder porque el output buffer es una propiedad del servidor Apache.Pon a tus entidades headers completos: Content-Length, Expires, etc.
PHP te parsea todo su ambiente quieras o no quieras y te lo entrega dentro de los arreglos $_SERVER, $_GET, $_POST, $_COOKIE, $_REQUEST, $_ENV, etc..... que son globales en todos los niveles.- No te pongas a parsear a mano los "requests", usa las bibliotecas.
¿Pero no se supone que el servidor Apache (sobre todo en las versiones 2.x) es muy eficiente para manejar contenido estático? El KHTTPD está fuera de los kerneles 4.6.x-test porque al ser tan eficiente el Apache 2 ya no vale la pena usarlo...- El contenido estático (imagenes, estilos, etc.) mantenlo por separado y preferentemente despachalo con, por ejemplo, TUX.
- No uses cookies para mantener las sesiones, usalas para las "preferencias" y configuración de los usuarios.
¿Y con qué mantienes las sesiones en vez de cookies?
- Implementa algún sistema de autentificación centralizada, separado de las bases de datos de la aplicación.
¿LDAP?Hay sistemas de autentificación muy buenos que están pegados a la base de datos. La necesidad de un manejador de autentificación centralizada existe solo cuando vas a integrar muchos servicios distintos con el mismo conjunto de usuarios.
Saludos.
-- Sandino Araico Sánchez -- Lo que no mata engorda. _______________________________________________ Ayuda mailing list Ayuda en linux org mx Para salir de la lista: http://mail.linux.org.mx/mailman/listinfo/ayuda/