[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: [Ayuda] Sus comentarios cgi's



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.

       (No hagas cosas del estilo: print "<TABLE><TR><TD>$dato"... )
     Usa algún motor de templates, hay muchos

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.

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.

 - De las bases de Datos
     Usa conexiones persistentes cuando se requiera.
     Si la base es pequeña y/o no requires demasiada concurrencia usa
MySQL, en caso contrario utiliza PostgreSQL. En cualquier caso usa DBI, para que puedas cambiar de RDBMS.

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....

     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?

     Pon a tus entidades headers completos: Content-Length, Expires,
     etc.

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.

 - No te pongas a parsear a mano los "requests", usa las bibliotecas.

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.

 - El contenido estático (imagenes, estilos, etc.) mantenlo por
   separado y preferentemente despachalo con, por ejemplo, TUX.

¿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...

 - 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/



[Hilos de Discusión] [Fecha] [Tema] [Autor]